v1.23.0 — protocol visibility in the live TUI
Highlights
- Protocol ribbon on every tab (Ctrl+P):
◆ Ph 2: Cross-Review (R02) · Delivered 1/3 · Waiting: agy, hermes · Next: consensus— with [STALE]/disk-fallback/reconciled-age honesty markers and a 3-line expanded view (Pipeline / Delivery / System). - Tab activity glyphs: braille spinner (output flowing), · (running silent), ✓ delivered, ✗ failed, x killed, - skipped, ! STALE — fed by tail-cursor growth plus a 2s stat cache for unvisited tabs.
- Narrator lines woven into every transcript (── 12:43:51 codex wrote round-02/codex.md ──) with a bounded replay ring; /narrate cycles protocol → verbose → off.
- Buffered-agent placeholder: a silent agy tab now shows declared buffering, liveness, byte counters, and its own recent activity instead of a blank pane (new
buffers_stdoutagent flag, TOML-configurable). - Protocol tab (/protocol or /status): PIPELINE 0-8, DELIVERY matrix, SIGNOFFS, NEXT; /refresh forces a reconcile.
- Home: per-idea phase chip + attention badge.
- Status line:
ph=2:xrev-r02 wait=agy,hermesreplacesround=…. - Driver: new
run.phaseevent after every phase-changing cursor commit; cursor-save errors are no longer discarded;driver.RebuildDetailexports phase evidence in one disk pass.
All disk reconciliation is event-driven + 15s/60s timers — nothing runs on the 250ms tick; phase never regresses without two agreeing reconciles (virtio-fs discipline).
Designed and reviewed via Parley Deck (parley-deck/ideas/tui-protocol-visibility/, PR #45).