NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Themeable Flutter widgets for AI chat: streaming markdown bubbles, tool-call cards, a composer, and optional OpenRouter/Gemini providers.
Last release 2 months ago
30 Jul 2026
Too new to tell
only 2 dated releases
Nearly every release is documented
notes for 2 of 2 stable releases
Nothing withdrawn
no release was ever pulled
2 months old
2 releases · first in 2026
One column per month.
`ChatController` — streams could keep delivering tokens after stop(), removeMessage() or dispose(); unfinished tool calls are now reliably marked canc
ChatController — streams could keep delivering tokens after stop(), removeMessage() or
dispose(); unfinished tool calls are now reliably marked cancelled and subscriptions torn down in all
three paths.ConversationController — loading initialConversations whose messages already existed in the live
ChatController could duplicate them; now guarded.ChatInputBar — guarded against double-submit, fixed the character counter not updating when
maxLength is set, and attachments are now cleared via onRemoveAttachment on send.MarkdownView/MarkdownParser gained an isStreaming flag that
optimistically renders unclosed **/_/~~/` spans and pending table headers while a reply is
still arriving, instead of showing the raw markers until the closing token lands.ChatBubble/MessageList can show how long a reply took
(ChatMessage.responseTime) and an "Interrupted" caption for messages ended by stop()
(ChatMessage.wasStopped).GeminiProvider — added image attachment support (inline data and file-data parts).ChatScreen — added showHistory and historyDrawerBuilder to customize or suppress the history
drawer.ChatMessage/ToolCall — copyWith now distinguishes an omitted argument from an explicit null,
so error/input/output can be cleared intentionally.pubspec.yaml gained a screenshots: carousel entry for the pub.dev
package page.`ChatController` — conversation state with streaming, cancellation, retry and tool-call bookkeeping. Supports a managed send() API backed by an AgentR
Initial release.
ChatController — conversation state with streaming, cancellation, retry and tool-call
bookkeeping. Supports a managed send() API backed by an AgentResponder, and a manual API
(beginAssistantMessage / appendToken / upsertToolCall / completeMessage) for responses that
interleave text with tool calls.ConversationController — manages which Conversation is loaded into a ChatController. New chat,
switch threads, rename, pin, delete, and search across titles and message bodies, grouped by recency.MessageEditor.
ChatController.editMessage discards everything after the edited message and regenerates, since replies
to the old wording no longer belong to the thread. Disable with allowEditing: false.ChatMessage, ToolCall, Attachment, Citation, Conversation, with copyWith, value
equality and status lifecycles.ChatScreen — a complete prebuilt chat surface. Pass conversations: and it gains a
ChatHistoryDrawer and a new-chat action.MessageList — auto-scroll that stops following when the user scrolls up, message grouping, and a
jump-to-latest button.ChatBubble — markdown body, attachments, tool calls, citations, status and actions (copy,
regenerate, feedback, edit), laid out in a single row beneath the bubble.CodeBlock — syntax highlighting, language label, copy button, and collapsing for very long
snippets.ChatInputBar — a themeable composer; every control shares controlSize so it stays a true capsule
with no dead space around its icons.MarkdownView — headings, lists, task lists, tables, blockquotes, code, links, images and autolinks,
built to stream: it caches its previous parse and re-parses only the trailing block on each append,
keeping rebuild cost linear across a streamed reply.SyntaxHighlighter — Dart, JavaScript, TypeScript, Python, JSON, SQL and shell, with a sensible
fallback for unknown languages.AgentAvatar, CitationChip, CitationList, AttachmentPreview, SuggestionChips,
ChatEmptyState, MessageActionBar, ThinkingBubble, ChatHistoryDrawer.AgentColors, AgentTypography, AgentSpacing, AgentRadii, AgentMotion,
composed into AgentThemeData with light(), dark(), glass() and fromTheme() variants.AnimatedAgentTheme — cross-fades between themes instead of snapping.AgentTheme.motionOf. Semantics labels on every interactive
element.package:agent_ui_kit_providers/providers.dart)OpenRouterProvider and GeminiProvider — stream a real model's replies straight into a
ChatController. asResponder() adapts either to the managed send() API; sendMessage() drives the
manual API so tool calls the model requests surface as real ToolCalls. Neither executes tools itself —
reporting a result back is the host app's job via controller.upsertToolCall.AgentProvider, ProviderEvent/TextDelta/ToolCallEvent, AgentProviderException — the shared base
types behind both providers.http), imported separately from
lib/providers.dart. The UI layer (widgets, theme, markdown, controllers, models) has none.Your coding agent can read these notes before it upgrades. Set up the MCP server →