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:
@@ -38,6 +38,19 @@ bytes. Do not expose either unauthenticated server through a public proxy.
|
||||
with a warning. There are no automatic action retries.
|
||||
- Palette and appearance use the existing brand tokens and persist in this
|
||||
browser when local storage is available. No settings screen is added.
|
||||
- History opens a read-only conversation view for a seat, from its Waiting
|
||||
card, its table row or its inspector (#1507, CHAT-02). It shows the whole
|
||||
branch with nothing clipped. Tool calls, tool results and thinking start
|
||||
collapsed. Session text is always shown as text: Markdown stays as source,
|
||||
and terminal controls, bidi controls and marks show as visible symbols. Reply in the view
|
||||
uses the same board reply path as the inspector.
|
||||
- The view checks for new entries on the same ten-second refresh, and Pause
|
||||
stops it. It never switches on its own. A fork, a newer session for the seat
|
||||
or a rewritten file each shows a marker with a button to open the other
|
||||
history. Reloading after a rewrite keeps the branch the view was on; if that
|
||||
branch is gone, the view opens the latest one and says so. Session lists
|
||||
older sessions for the seat. Only repository Pi seats
|
||||
have history; other harnesses say so.
|
||||
|
||||
Drafts and receipts stay in page memory, including across refresh, inspector
|
||||
changes and a stale registration. Reloading or closing the page loses them.
|
||||
@@ -47,11 +60,13 @@ delivery may be unknown: inspect the seat before sending again.
|
||||
|
||||
## Data and boundaries
|
||||
|
||||
GET `/api/board` and POST `/api/seen` and `/api/reply` proxy only the existing
|
||||
board paths. POST bytes and upstream status/JSON are preserved. GET `/api/config`
|
||||
returns the configured board URL for the page's error message. No scanner,
|
||||
registration, session reader or transport is implemented here. No control-board,
|
||||
seat, fleet, comms or root package files are changed.
|
||||
GET `/api/board`, `/api/conversations` and `/api/conversation`, and POST
|
||||
`/api/seen` and `/api/reply` proxy only those board paths. Only the two
|
||||
conversation routes carry their query string; the board validates it. POST
|
||||
bytes and upstream status/JSON are preserved. GET `/api/config` returns the
|
||||
configured board URL for the page's error message. No scanner, registration,
|
||||
session reader or transport is implemented here. The session reader is
|
||||
`packages/conversation`, served by the board.
|
||||
|
||||
Console's shared CSS, Console CSS, brand.js and local Manrope fonts were copied
|
||||
unchanged from `agents/dewey/work/wui/`. Font license and source URLs accompany
|
||||
@@ -67,6 +82,7 @@ or mockup session hierarchy is presented as live data.
|
||||
node --test packages/webui/tests/
|
||||
node --test packages/control-board/tests/ packages/seat/tests/ packages/ledger/tests/ packages/mosaic/tests/
|
||||
WEBUI_EVIDENCE=/tmp/webui-evidence node --test packages/webui/tests/browser.test.mjs
|
||||
WEBUI_EVIDENCE=/tmp/webui-evidence node --test packages/webui/tests/conversation.test.mjs
|
||||
```
|
||||
|
||||
Node's test runner and installed `/usr/bin/chromium` are required. Set `CHROMIUM`
|
||||
@@ -83,6 +99,13 @@ on 330 rendered samples across ten palettes and three modes. Layouts are checked
|
||||
at 320, 390, 768, 1440 and 2560px. Horizontal scrolling is intentional within the
|
||||
dense table; the page itself must not overflow.
|
||||
|
||||
Conversation tests run the real board routes over temporary repository-layout
|
||||
session files. They cover full-length answers, collapsed tools and thinking,
|
||||
hostile content rendered inert, malformed-line and reconcile markers, forks, and
|
||||
the return flow: a send from the view, a tool call and a delayed result while a
|
||||
draft is typed, a peer message, a 4.5-million-character answer split into
|
||||
continuation parts, and a relaunch mid-turn.
|
||||
|
||||
No root CI workflow is configured for this package. These local tests are not a
|
||||
claim of CI, deployment, live-seat delivery or user acceptance.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user