feat(webui): CHAT-02 Console, read-only conversation view (#1507)

History opens a seat's conversation from the Waiting card, table row
and inspector. It pages the whole branch through the CHAT-02 board
routes, renders untrusted text inert, polls with the follow cursor, and
marks every switch (branch, newer, reconcile, gone). The WebUI proxy
passes only the two conversation routes' queries upstream.

Dewey authored it. Filbert asked for changes on r1 (24b046af) and
approved r2 (d06de6a7) in review 160dd68d. A relaunch shows 'newer',
not 'reconcile', a deviation from brief 2.3 item 6 that Filbert
accepted.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-09-26 18:05:11 -05:00
co-authored by Claude Opus 5.5
parent 3a209eeafe
commit c9e771cf59
34 changed files with 1669 additions and 26 deletions
+34
View File
@@ -3192,3 +3192,37 @@ never opened on the Discord side, as expected. Row 25 is live: records,
approval request, button, and the approval recorded in SetSpark. The
service-side approver validation gap went to the SetSpark lead (see
DEFERRED).
## 2026-09-26: CHAT-02 Console (#1507, row 5, Dewey, Filbert, Sage)
The WebUI can now show a seat's conversation, read-only, through the two
CHAT-02 board routes. History opens it from the Waiting card, the table
row and the inspector. The view pages through the whole branch without
clipping. Untrusted text is set only with textContent, and control and
bidi characters are drawn as visible marks. On the last page it polls
with the follow cursor and replies through the existing /api/reply path.
The WebUI proxy passes only the two conversation routes' query strings
upstream.
Review: Filbert asked for changes on revision 1 (24b046af). The blocker,
B1: after a reconcile, "Reload conversation" reopened on the default
branch without saying so. Revision 2 (d06de6a7) keeps the branch, adds a
`gone` marker when that branch no longer exists, and takes notes N1 to
N3. Filbert approved it in review 160dd68d, with 188/188 including two
probes of his own. Sage checked the ten pins on the staged index: webui,
conversation, control-board and seat tests 186/186 serial. The eight
suites are green, and the chat-00, chat-01 and chat-01c checks exit 0.
Dewey's mutation runs caught 17 of 17.
Deviation from brief §2.3 item 6, accepted by Filbert (who wrote the
item) and recorded by Sage: a relaunched seat shows the `newer` marker
("Open the newest session"), not `reconcile`. The relaunch writes a new
session file, while the old one stays readable, so nothing needs
reconciling. Item 6's wording was too narrow.
Also in this commit: Filbert's CHAT-02 backend reproduction scripts,
referenced by his backend review (a5beb6d9), and Darkwing's two
test-only route notes. Filbert's idsDigest note waits in
agents/dewey/work/chat-02/FOLLOWUPS.md. Still due: a WebUI restart,
because the running proxy predates these routes, then the brief §4 live
check.