Chat · Getting Started

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 AgentError on the Agent contract: agent.error() now returns an AgentError (or undefined) carrying a machine-readable kind (connection | auth | server | interrupted | aborted), a retryable flag, an optional HTTP status, and the original cause. Both adapters normalize raw failures through toAgentError().
  • New agent.retry() action re-runs the last request and clears error. The built-in <chat-error> primitive (auto-rendered by <chat>) shows cause-specific copy and a Retry button whenever error.retryable is true.
  • New exports from @threadplane/chat: AgentError, AgentErrorKind, toAgentError, isAbortError, AGENT_ERROR_MESSAGES, plus ChatErrorComponent and extractErrorMessage. 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 no localStorage. 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, and ask, plus typed agent dependency injection. New type helpers exported from @threadplane/chat: ToolArgs, ViewProps, AgentRef / createAgentRef, and the StandardSchemaV1 inference aliases.

#0.0.49

#Citations

  • New <chat-citations> primitive renders a message's citations list, with chatCitationCardTemplate for per-citation card customization and CitationsResolverService for resolving [^id] markers against the citation list. Adapters populate Message.citations; @threadplane/langgraph exposes extractCitations().

#A2UI

  • New A2UI surface rendering: <a2ui-surface> plus the a2uiBasicCatalog of 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 with withViews.

#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 the Agent contract. 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> when Message.reasoning is populated.
  • New Message.reasoning and Message.reasoningDurationMs optional fields on the shared agent contract. Both adapters populate them: @threadplane/langgraph from {type:'reasoning'} / {type:'thinking'} content blocks, @threadplane/ag-ui from REASONING_MESSAGE_* events.

#Tool-call templates

  • New chatToolCallTemplate directive 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 use chatToolCallTemplate="*".
  • <chat-tool-call-card> defaults to collapsed when complete. Pass [defaultCollapsed]="false" for always-expanded.
  • New status pill (running spinner / done check / error glyph) with consistent visual chrome.