You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tracking issue from a full package audit. Thesis: this package already has the features (streaming, markdown, LaTeX, RTL, agents/actions, voice, rich widgets) — the differentiator for "go-to" status is trust: every documented knob works, no leaks, deps honest, docs match code. The dominant theme across the issue history is documented parameters that silently do nothing (#40, #30, #18, #20, #9, #38, #24, #28, #3, #6).
Status (updated 2026-09-03): Everything checked below has shipped, most of it through v2.17.0 (live on pub.dev). Current state: analyze --fatal-infos clean, 434 tests green (426 package + 8 example, the latter now running in CI for the first time), pub publish --dry-run clean, confirmed 160/160 pub points. See the comment below for a detailed progress update since the last one.
✅ Phase 0 — Trust & correctness
Dead FileUploadOptions.fileDisplayBuilder (fileDisplayBuilder #40) — now threaded to MessageAttachment.
AiContextController.watchNotifier listener leak → removed on dispose; returns a disposer.
ContextAwareChatController disposes the sub-controllers it creates.
TextPainter disposal on bubble-measure & ghost-overlay hot paths.
CI SDK matrix — resolved the dev/consumer floor discrepancy (see below) and, as a bonus, the matrix's floor leg found the documented Flutter floor was ALSO wrong for two unrelated dependency reasons; corrected to >=3.35.0.
Example gallery: a demo screen per feature, plus a live web demo (deployed via GitHub Pages, auto-redeploys on push).
Doc/code drift CI check — tool/check_doc_drift.dart, wired into CI.
Phase 3 — Feature leadership
Brand theme presets CustomThemeExtension.chatgpt()/.claude()/.gemini() (+dark:) — the README headline as a one-liner (+test).
First-class composite "thinking → streamed answer" message API (Thinking bubble.. and Response #37). (Pattern documented in cookbook; a dedicated factory is the next step.)
Full attachments lifecycle: built-in lightbox/preview/multi-file/progress (builds on fileDisplayBuilder #40).
Polished default renderers for the tool-call/agent surface.
Phase 4 — Ecosystem
Provider adapters (OpenAI / Anthropic / Gemini / Ollama) as examples or sibling packages — wire a stream into ChatMessagesController in ~10 lines, keeping heavy deps out of core.
Audit + implementation generated with Claude Code.
Tracking issue from a full package audit. Thesis: this package already has the features (streaming, markdown, LaTeX, RTL, agents/actions, voice, rich widgets) — the differentiator for "go-to" status is trust: every documented knob works, no leaks, deps honest, docs match code. The dominant theme across the issue history is documented parameters that silently do nothing (#40, #30, #18, #20, #9, #38, #24, #28, #3, #6).
Status (updated 2026-09-03): Everything checked below has shipped, most of it through v2.17.0 (live on pub.dev). Current state:
analyze --fatal-infosclean, 434 tests green (426 package + 8 example, the latter now running in CI for the first time),pub publish --dry-runclean, confirmed 160/160 pub points. See the comment below for a detailed progress update since the last one.✅ Phase 0 — Trust & correctness
FileUploadOptions.fileDisplayBuilder(fileDisplayBuilder #40) — now threaded toMessageAttachment.AiContextController.watchNotifierlistener leak → removed on dispose; returns a disposer.ContextAwareChatControllerdisposes the sub-controllers it creates.TextPainterdisposal on bubble-measure & ghost-overlay hot paths.SmartChatInputremoves listeners on dispose..pubignoretrims internal logs/dirs/images;pubspecscreenshots:(verified 494 KB archive, heavy/internal files excluded).>=3.27/ Dart>=3.6(root cause of 报错,SDK^3.5.3;flutter_gen_ai_chat_ui: ^1.3.0 #7/Error: The method 'withValues' isn't defined for the class 'Color'. #12).✅ Phase 0.5 — "Every parameter is wired" sweep
customBubbleBuilderdocs drift (customBubbleBuilder Invalid settings #18/customBubbleBuilder isn't defined #30): addedMessageOptions.bubbleBuilder(4-arg, wrapsdefaultBubble) + README fix.scrollController(The parameter scrollController didn't use #20): confirmed wired.Phase 1 — Quality gates
InputOptions.sendButtonTooltipon the icon-only send button (+test).pub publishworkflow.labeledTapTargetGuidelinecompliance.>=3.35.0.Phase 2 — Developer experience & docs
doc/cookbook/) with recipes for the recurring questions (Thinking bubble.. and Response #37, I want to keep the WelcomeMessage permanently. How can I achieve that? #8, reverse order of messages #19, Custome welcome message builder overlay issue #22, streaming, stop-generating, attachments fileDisplayBuilder #40, theming, RTL); all snippets verified against the API; linked from README.tool/check_doc_drift.dart, wired into CI.Phase 3 — Feature leadership
CustomThemeExtension.chatgpt()/.claude()/.gemini()(+dark:) — the README headline as a one-liner (+test).Phase 4 — Ecosystem
ChatMessagesControllerin ~10 lines, keeping heavy deps out of core.Audit + implementation generated with Claude Code.