Skip to Content
Card SDKChangelog

Card SDK changelog

Changes to @neurosquad/card-sdk and the card contract it speaks, newest first. The same list ships with the package as CHANGELOG.md.

Three versions matter to a card author:

  • SDK / contract version (SDK_VERSION) — the headings below. New methods and events arrive in minor versions.
  • Wire protocol (CARD_PROTOCOL_VERSION, still 1) — a card built for a newer protocol is refused by an older app with PROTOCOL_MISMATCH.
  • NeuroSquad version — the host. Check card.host.supports('<method>') before using a newer method, or set minAppVersion when the card can’t work without it.

NeuroSquad versions below are the first public release that has the change.

Unreleased

Host change, NeuroSquad 0.1.264. A card whose page process dies on its own — usually the computer running out of memory — is reloaded automatically instead of staying a grey rectangle; the new frame starts with launch: 'reloaded'. After three such reloads within 10 minutes the card shows The card stopped working with Reload. Nothing to change in your card; keep what must survive a reload in storage.

1.2.0 — 2026-10-04

Needs NeuroSquad 0.1.264 or newer.

Added

  • card.agents.timeline(agentId, since, until?): one arrow-connected AI agent’s model requests (completion time; send time where the agent’s log records it; tokens; tool calls), its status as consecutive spans, and its turns — what the official Agent Pulse card draws. requestTimes is start-end, end or none; at most 2000 requests (the newest, with truncated).
  • Types AgentTimeline, AgentRequestSpan, AgentTurnSpan.
  • Mock host: the agentTimeline option and setAgentTimeline().

Compatibility. Same permission and scope as agents.usage — usage.read and an arrow to an AI agent; no new permission. 60 calls a minute per card. An older app answers METHOD_NOT_FOUND: check card.host.supports('agents.timeline').

1.1.0 — 2026-10-04

Needs NeuroSquad 0.1.264 or newer.

Added

  • card.agents.usage(agentId, since, until?): one arrow-connected AI agent’s run inside a window — model requests, tokens by kind, prompts, working and elapsed time, cost (rounded up, with costPartial), model and provider. What the official Run Stats card shows. The timing comes from the app’s own status history, so it is right even while your card was paused.
  • Type AgentUsage.
  • Mock host: the agentUsage option and setAgentUsage().
  • Contract types for the verified cards catalog (VerifiedCatalog, VerifiedEntry, validateVerifiedCatalog and friends), new in the package since 1.0.0.

Behaviour

  • A token count that isn’t reported is null, never 0 — a number the agent’s log doesn’t carry, an agent CLI with no readable usage log (Amp, Cursor: usageReadable: false), a zero cache count from the user’s own model server, a zero cache write outside the Anthropic API. Show it as “not reported”.
  • A model with no known price — a model on the user’s own server included — has costMicroUsd: null, never 0.
  • prompts leaves out a finished turn without a single model request (a status blip).

Compatibility. Permission usage.read (already in 1.0; it now also unlocks this method for agents connected by an arrow). Not connected — NOT_CONNECTED; a shell — INVALID_PARAMS. 60 calls a minute per card. An older app answers METHOD_NOT_FOUND: check card.host.supports('agents.usage'). The protocol stays 1, so cards built with 1.0.0 run unchanged — to upgrade, bump the dependency to ^1.1.0 (or ^1.2.0); no code changes are needed.

Host changes within contract 1.0

Released between SDK 1.0.0 and 1.1.0, with no SDK version change; listed because they can change what a card sees.

  • 0.1.253, 0.1.230, 0.1.160, 0.1.141, 0.1.138 — more manifest name values are reserved: the tool families of the Graphify, Memory, Context7, Code Graph, RTK and caveman plugins, the canvas wiring tools (canvas_connect, canvas_disconnect, canvas_list), agent_set_model and neurosquad_models. A manifest with such a name fails validation.
  • 0.1.214 — fs.* refuses writes to more files that run code on the next push: GitLab, Jenkins, CircleCI, Buildkite, Travis, Bitbucket, Drone, AppVeyor and Azure Pipelines configs. For a workspace in WSL, workspace.path is this computer’s view of it; for an SSH workspace it is empty and fs.* answers UNAVAILABLE. usage.summary rounds costs up, so a tiny priced cost never reads as 0. neurosquad-card dev needs developer mode on.
  • 0.1.128 — agents.lastReply works for every agent CLI with a readable transcript, not only Claude Code, and an agent’s built-in reply port sends the final answer for all of them.
  • 0.1.125 — the verified cards catalog.

1.0.0 — 2026-09-25

Needs NeuroSquad 0.1.123 or newer. First public release: connect() and the typed Card with the whole API, the manifest and its JSON Schema, permissions, React bindings, the optional UI kit, the mock host and the neurosquad-card CLI.

Building on a newer method but want the card to install on older apps too? Leave minAppVersion out, check card.host.supports() and show a short “update NeuroSquad to use this view” message when it’s missing.