Ship the web thread viewer #201

Closed AtlantisPleb opened this 2d ago 1 comment

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

  • Snapshot-to-live protocol: attach the live subscriber before reading the snapshot, read snapshot and sequence in one transaction, deliver snapshot then buffered events then an explicit synchronized marker, resume by afterSequence with monotonic-sequence dedup.
  • Shell/detail projection split: thread list rows read a denormalized shell, never transcripts; token streams must not starve shell updates.
  • Client data states distinct from connection state: empty, cached, synchronizing, live.
  • Visibility follows the thread owner and, later, transparency tiers.

Source

docs/2026-08-24-coder-first-cloud-complements.md sections 3 and 4.1, adopting the T3 Code projection protocol (openagents/docs/teardowns/2026-07-27-t3-code-server-projection-consistency-architecture.md).

  1. AtlantisPleb opened this issue 2d ago
  2. A AtlantisPleb 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).

  3. closed this as completed 2d ago
Sign in with GitHub to comment on this issue.