mirror of
https://github.com/cogwheel0/conduit.git
synced 2026-08-27 11:31:42 +00:00
Brings the chat streaming experience closer to upstream Open WebUI. - Model name: extract/display Open WebUI modelName (camel+snake), thread through the durable payload, preserve across streaming-error handling and server-snapshot adoption (incl. empty placeholders and empty-server-value edges). - Optimistic state: preserve locally-streamed assistant content/follow-ups when adopting a server snapshot, scoped to the streaming tail; metadata-union keeps local-only fields; consolidated streaming-error teardown (fail-by-message-id). - Fade caching: cache the opacity-1 span tree per content change and fade only the suffix via AnimatedBuilder (no per-frame markdown rebuild); widget spans only fade when fully past the boundary; surrogate/LaTeX/code offset alignment preserved. - Sidebar indicator: socket-driven active-chat set, optimistic setActive on task_ids with last-task-aware + token-guarded setInactive (incl. delayed done-recovery path), clear on logout. - Socket resume: reopening an in-flight chat streams token-by-token over the shared Socket.IO events envelope (REPLACE/APPEND, foreign message_id binding, nested-id extraction, chat-scope guard), with the 1s task poll demoted to a fallback that resolves the server message by the bound foreign id. Verification: build_runner + flutter analyze clean; affected suites green (new coverage for fade caching, active-chats sync, resume binding/finalize races, metadata preservation). Reviewed via Greptile (iterated) and CodeRabbit; Macroscope correctness check passing. |
||
|---|---|---|
| .. | ||
| services | ||
| theme | ||
| utils | ||
| widgets | ||