Ship the web thread viewer #201
- AtlantisPleb opened this issue 2d ago
-
A Author 2d ago First slice closed as completed: merged to main and pushed as e874b6a (WAL receipt seq 300). Every thread now has a URL: /threads (owner-only shell list — objective as title, spend from thread.usage, no transcript reads for listings) and /threads/{id} (typed transcript: turn.user with steered badge, collapsible turn.reasoning, tool.ran with kbd name/status/bounded JSON, markdown-rendered turn.assistant with usage line; unknown or malformed events degrade to a neutral raw row). Live updates via a new Threads.subscribe/1 PubSub topic broadcast after commit, with the attach-before-snapshot protocol and monotonic event-id dedup. Foreign/unknown ids 404 identically. THREAD-001 amended for the viewer (never holds a plaintext token). 13 new tests; 81 thread-suite tests pass. Steering, approvals, and transparency-tier visibility remain separate work (the steering issue in the delivery sequence, and #205).
- closed this as completed 2d ago
Outcome
Every thread gets a URL on openagents.com, viewable live: transcript, reasoning, tool calls, and budget, over the same projections the CLI consumes. Read-only first; steering and approvals are separate later work.
Contract
afterSequencewith monotonic-sequence dedup.Source
docs/2026-08-24-coder-first-cloud-complements.mdsections 3 and 4.1, adopting the T3 Code projection protocol (openagents/docs/teardowns/2026-07-27-t3-code-server-projection-consistency-architecture.md).