Changelog
Highlight releases only
This changelog tracks selected highlight releases, not every patch. The published package is at 0.0.52 — see the entry below for the notable additions since 0.0.19.
#0.0.52
#Classified errors and Retry
- New structured
AgentErroron theAgentcontract:agent.error()now returns anAgentError(orundefined) carrying a machine-readablekind(connection|auth|server|interrupted|aborted), aretryableflag, an optional HTTPstatus, and the originalcause. Both adapters normalize raw failures throughtoAgentError(). - New
agent.retry()action re-runs the last request and clearserror. The built-in<chat-error>primitive (auto-rendered by<chat>) shows cause-specific copy and a Retry button whenevererror.retryableis true. - New exports from
@threadplane/chat:AgentError,AgentErrorKind,toAgentError,isAbortError,AGENT_ERROR_MESSAGES, plusChatErrorComponentandextractErrorMessage. See Error Handling.
#Thread routing
- New
injectThreadRouting()helper binds an app-owned active-thread signal to the Angular Router — restoring the thread id from the URL on load, stamping changes back into the URL, and treating a bare URL as the welcome state, with nolocalStorage. See Thread Routing.
#Subagent cards
<chat-subagent-card>now renders the subagent's full transcript — every message as streaming markdown, with reasoning and the subagent's own tool-call cards — instead of only the latest message. Cards are inline and persistent, auto-expand while running, and collapse on completion. See ChatSubagentCard.
#TypeScript DX
- Strict-safe, fully typed authoring surface for client tools,
view, andask, plus typed agent dependency injection. New type helpers exported from@threadplane/chat:ToolArgs,ViewProps,AgentRef/createAgentRef, and theStandardSchemaV1inference aliases.
#0.0.49
#Citations
- New
<chat-citations>primitive renders a message'scitationslist, withchatCitationCardTemplatefor per-citation card customization andCitationsResolverServicefor resolving[^id]markers against the citation list. Adapters populateMessage.citations;@threadplane/langgraphexposesextractCitations().
#A2UI
- New A2UI surface rendering:
<a2ui-surface>plus thea2uiBasicCatalogof catalog components (text field, checkbox, button, multiple choice, slider, date/time, card, row, column, list, modal, tabs, and more) for agent-driven generative UI. Compose custom catalogs withwithViews.
#Layout compositions
- New layout compositions:
<chat-sidenav>(collapsible side panel),<chat-popup>(floating launcher), and<chat-sidebar>(docked rail). See Layout Modes.
#Agent contract
- New
regenerate(assistantMessageIndex)action on theAgentcontract. Discards the assistant message at the given index and everything after it, then re-runs against the preceding user message. Surfaced as the(regenerate)output on<chat>.
#0.0.19
#Reasoning
- New
<chat-reasoning>primitive renders model reasoning content as a "Thinking…" / "Thought for Ns" pill, default-collapsed once streaming completes. Auto-rendered by<chat>whenMessage.reasoningis populated. - New
Message.reasoningandMessage.reasoningDurationMsoptional fields on the shared agent contract. Both adapters populate them:@threadplane/langgraphfrom{type:'reasoning'}/{type:'thinking'}content blocks,@threadplane/ag-uifromREASONING_MESSAGE_*events.
#Tool-call templates
- New
chatToolCallTemplatedirective registers per-tool-name templates inside<chat-tool-calls>. A literal"*"registers a wildcard catch-all. <chat-tool-calls>[grouping]="'auto'"(the default) auto-collapses sequential same-name tool calls into a labeled strip ("Searched 5 sites"). Pass[grouping]="'none'"to opt out.- The legacy single-
<ng-template>fallback inside<chat-tool-calls>is removed in favor of the named-template registry. Consumers wanting a catch-all usechatToolCallTemplate="*". <chat-tool-call-card>defaults to collapsed whencomplete. Pass[defaultCollapsed]="false"for always-expanded.- New status pill (running spinner / done check / error glyph) with consistent visual chrome.