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.
ToolApprovalCardandQuestionCardrender 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. NewuseChatvalues:pendingActions,awaitingAction,isResolvingAction,canResolveActions,answerableQuestionandresolveAction. 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
allowBudgetContinueandallowBudgetEdit. 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. ApostMessagehandshake, an in-memory session, events for the host page and host-page tools. See Embedding the Chat.- Internationalization. Any locale through
customMessages, nestedChatI18nProviders 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,warningandinfocolours with tints, andthemeColorsaccepts every colour key. ComposerState(open,blocked,cancel,answer,following,budget_paused,readonly) and an agent that drives the composer throughAgentInfo.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
codeshows a localized message. Match onerror.code, noterror.message. Chathonours an enclosingChatI18nProvider.
[0.3.0] - 2026-10-07
Added
ChatTransportinterface and atransportprop onChat,useChatanduseChatHistory, 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 ThreadStorewithMemoryThreadStoreandLocalStorageThreadStore, used by the transports whose backend keeps no conversationsgetHeaders(async, called before every request) andfetchoptions, so a token can be renewed between requests and cookie or proxy setups work
Changed
baseUrlis optional whentransportis given- The SSE reader accepts
event:lines, CRLF line endings and multi-linedata:
[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.doneevent now appear immediately instead of requiring a refetch —StreamDoneEventgained an optionalfilesfield, anduseChatincludesevent.fileson the assistant message it builds - Long filenames no longer hide their extension when truncated —
ChatMessagenow splits the base name and extension before truncating, so e.g. a.docxand a.pdfexport 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:
useI18nhook andChatI18nProvider, with English and Turkish locale files wired intoChatHistory,ChatInput,ChatMessage,ChatMessageList,MessageActions, andToolCall - Agent name display and conversation title handling in chat components
Changed
useChatHistoryloading 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
ChatProviderand context hooks for React-controlled chat state management- Theme presets and an extended
Messagetype (citations, optionalagentId) - Streaming support for "thinking" events, with improved message rendering
- Build verification script
Changed
- Standardized chat header height and button styles for consistency
useChatHistorynow uses a stable client reference and improved conversation-loading logic
Fixed
- Debounce helper now uses
ReturnTypefor the timeout variable instead of a Node-specific type
[0.1.0] - 2025-01-01
Added
- Initial release
Chatcomponent with full featuresChatMinimalcomponent without historyChatMessage,ChatMessageListcomponentsChatInputwith file upload supportChatHistorysidebar componentToolCallandToolCallscomponentsuseChathook for custom implementationsuseChatHistoryhook for history managementAgentServerClientfor 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

