Show live model reasoning progress and fix channel verification

Merged
ES
6d ago
+755-45

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.rs covering live display, token provenance, completion summaries, and late/failed events.
  • Traced the implementation from AgentEngine streaming 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.