Skip to content

Release notes · Chat UI

Chat UI Release Notes ​

Changelog for @cognipeer/chat-ui. For usage, see the Chat UI documentation.

All notable changes to Chat UI will be documented here.

[0.6.0] - 2026-10 ​

  • Chat messages can now show model reasoning directly in the conversation in a collapsible Thinking block.
  • The reasoning view is available in context with the assistant reply instead of requiring a separate surface.
  • Reasoning effort options are now supported for chat requests.
  • This release adds visible reasoning support without changing the normal upgrade process.
  • No migration or special upgrade step is required for this release.

[0.5.0] - 2026-10 ​

  • You can now choose the model for each conversation instead of relying on an implicit default.
  • The selected model is carried through conversation actions such as sending, editing and regenerating replies.
  • Each assistant reply now shows which model produced it, making model choice visible in the conversation flow.
  • Model changes are surfaced in the chat UI rather than hidden in request handling.
  • No migration or special upgrade step is required for this release.

[0.4.0] - 2026-10-10 ​

Approvals, runs, usage limits, an opt-in portal experience and an embeddable chat. Everything new is additive and either opt-in or driven by the server, so a chat against a server that never pauses looks and behaves as before. Most features need @cognipeer/agent-server 0.3.0 or later. See What's New in 0.4.0 and Migrating to 0.4.0.

Added ​

  • Approvals and questions. ToolApprovalCard and QuestionCard render under the assistant message when the agent pauses. Approve, deny with a reason, remember a tool for the chat, edit the arguments against a JSON Schema (allowArgumentEdit), answer questions, see deadlines, and find the cards again after a reload. New useChat values: pendingActions, awaitingAction, isResolvingAction, canResolveActions, answerableQuestion and resolveAction. See Approvals and Questions.
  • Runs that outlive the page. A conversation opened while a turn is still running follows it, a dropped connection after the server took a message is no longer an error, and Stop cancels the run on the server. A notice under the answer says why it ended (stopped, limit, steps used up, interrupted). See Running Turns and Stop.
  • Usage limits. A meter, a "limit reached" notice, a closed composer while the limit is used up, and raise-and-continue with allowBudgetContinue and allowBudgetEdit. See Usage Limits.
  • History. Status badges (Working, Waiting for you, Limit reached), keyboard-operable rows, and opening a conversation selects its agent.
  • Uploads. Drag and drop, paste, image thumbnails, files without text, fileTransport: "upload" and "upload-on-select" with progress and retry, per-conversation limits from the agent, and expired or unreadable files marked. See File Uploads.
  • Portal experience (opt-in). Message actions (copy, regenerate, edit), feedback with reasons, rename, pin and bulk delete, starters and a welcome message, deep links, an AI label and legal links, announcements, a terms gate, export and background alerts. See Portal Experience.
  • EmbedChat. A postMessage handshake, an in-memory session, events for the host page and host-page tools. See Embedding the Chat.
  • Internationalization. Any locale through customMessages, nested ChatI18nProviders and localized server error codes. See Internationalization and Error Codes.
  • Accessibility. Labelled controls, a live message log, announced and focused cards, a keyboard map and reduced motion. See Accessibility.
  • Theming. success, danger, warning and info colours with tints, and themeColors accepts every colour key.
  • ComposerState (open, blocked, cancel, answer, following, budget_paused, readonly) and an agent that drives the composer through AgentInfo.capabilities.

Changed ​

  • stop() now stops the run on the server for a transport that can cancel, and keeps the text so far as a message marked stopped. Before, it only detached the browser.
  • A failed request with a known code shows a localized message. Match on error.code, not error.message.
  • Chat honours an enclosing ChatI18nProvider.

[0.3.0] - 2026-10-07 ​

Added ​

  • ChatTransport interface and a transport prop on Chat, useChat and useChatHistory, so the chat can talk to backends other than @cognipeer/agent-server
  • Transports for agent-sdk (AgentSdkTransport), OpenAI Chat Completions (ChatCompletionsTransport), the Responses API (ResponsesTransport) and A2A (A2ATransport). See Transports
  • ThreadStore with MemoryThreadStore and LocalStorageThreadStore, used by the transports whose backend keeps no conversations
  • getHeaders (async, called before every request) and fetch options, so a token can be renewed between requests and cookie or proxy setups work

Changed ​

  • baseUrl is optional when transport is given
  • The SSE reader accepts event: lines, CRLF line endings and multi-line data:

[0.2.0] - 2026-08-01 ​

Added ​

  • Answers now show inline citation markers that link claims to their sources — readers can trace supporting material directly from the message content without leaving the conversation flow

Fixed ​

  • Generated file attachments now appear as soon as a response finishes instead of waiting for a later refresh
  • Long generated filenames stay readable when truncated, so file extensions remain visible and similar exports are easier to tell apart

[0.1.4] - 2026-07-10 ​

Fixed ​

  • File attachments from the stream.done event now appear immediately instead of requiring a refetch — StreamDoneEvent gained an optional files field, and useChat includes event.files on the assistant message it builds
  • Long filenames no longer hide their extension when truncated — ChatMessage now splits the base name and extension before truncating, so e.g. a .docx and a .pdf export of the same document stay visually distinguishable

[0.1.3] - 2026-03-06 ​

Changed ​

  • Housekeeping release — version bump only, no functional changes beyond what shipped in 0.1.2

[0.1.2] - 2026-02-16 ​

Added ​

  • Full internationalization (i18n) support: useI18n hook and ChatI18nProvider, with English and Turkish locale files wired into ChatHistory, ChatInput, ChatMessage, ChatMessageList, MessageActions, and ToolCall
  • Agent name display and conversation title handling in chat components

Changed ​

  • useChatHistory loading logic now guards against duplicate initial loads in React Strict Mode, adds options to control loading-indicator visibility, and supports a silent refresh

[0.1.1] - 2026-02-13 ​

Added ​

  • ChatProvider and context hooks for React-controlled chat state management
  • Theme presets and an extended Message type (citations, optional agentId)
  • Streaming support for "thinking" events, with improved message rendering
  • Build verification script

Changed ​

  • Standardized chat header height and button styles for consistency
  • useChatHistory now uses a stable client reference and improved conversation-loading logic

Fixed ​

  • Debounce helper now uses ReturnType for the timeout variable instead of a Node-specific type

[0.1.0] - 2025-01-01 ​

Added ​

  • Initial release
  • Chat component with full features
  • ChatMinimal component without history
  • ChatMessage, ChatMessageList components
  • ChatInput with file upload support
  • ChatHistory sidebar component
  • ToolCall and ToolCalls components
  • useChat hook for custom implementations
  • useChatHistory hook for history management
  • AgentServerClient for direct API access
  • Dark and light theme support
  • Custom theme colors via props and CSS variables
  • SSE streaming support
  • File upload with drag-and-drop
  • Tool call visualization
  • Markdown rendering
  • TypeScript types
  • React 18+ support

Studio · Pulse · Console · Agent SDK and more — the Cognipeer documentation hub