Show live model reasoning progress and fix channel verification
Merged
ES
6d ago+755+755+012345678901234567890123456789-45-45-01234567890123456789
Summary
- Fix deployment-channel verification instructions. Production and development are validated separately because the Cargo features are mutually exclusive.
- Show live model activity in both the TUI header and conversation activity line: elapsed duration, provider/model, estimated reasoning-token progress, and provider-reported usage when available.
- Add compact completed-invocation summaries in the requested style, e.g.
Thought for 13s, 234 tokens. - Keep raw model reasoning out of the event/UI boundary. The SSE accumulator emits numeric-only progress; provider usage metadata is labelled by provenance and estimates are marked with
~. - Mark stream progress events as ephemeral, throttle replaceable updates, publish invocation start/finish events synchronously, and guard against delayed progress reopening settled invocations.
- Clear live state on failures and add regression coverage for SSE progress, token provenance, completion, late events, and failed streams.
Verification
- Added
reasoning_content_emits_numeric_progress_without_exposing_text_in_chunks. - Added
tests/tui_model_stream_progress.rscovering live display, token provenance, completion summaries, and late/failed events. - Traced the implementation from
AgentEnginestreaming chunks through the runtime event bus and TUI bridge to the view model and both rendered activity surfaces. - GitHub Actions were queued for the latest branch head when last checked. Cargo checks and tests have not been executed locally in this environment; the PR remains a draft pending CI results.
Privacy and accounting
This shows elapsed time and content-free reasoning progress, not private hidden chain-of-thought. Provider-returned token metadata is distinguished from the character-based estimate; where the provider supplies neither, the UI reports token counts as unavailable rather than inventing them.