Render the structured view in the web client #140

Closed
opened 2026-09-03 10:36:23 +01:00 by naps62-yolo · 0 comments
Collaborator

The transcript surface, alongside the existing xterm attach view. Design reference:
the published mockup (artifact 88ecd690), built on the tokens already in
web/src/styles.css.

Layout is a transcript column and a rail. The rail carries plan, turn stats,
context and worktree. The composer is sticky at the bottom of the column.

Hierarchy is the point. The approval is the only lifted element on the surface —
border, tint, shadow, buttons — because it is the only thing the user owes a
decision on. A user turn is a tinted block with an accent rail. Agent prose is
plain text with no container at all. Tool calls are single bordered rows carrying
glyph, name, argument and duration, expanding to show output or a diff. Making
everything a card is the specific failure this is avoiding.

Diffs render coloured hunks in their own overflow-x: auto container. Long tool
output scrolls in its own container; clipped text is a bug.

State comes from the projection. The client renders reduced_state and rows as
received — no folding of raw events, no client-side turn tracking.

Depends on: #137, #139

The transcript surface, alongside the existing xterm attach view. Design reference: the published mockup (artifact `88ecd690`), built on the tokens already in `web/src/styles.css`. Layout is a transcript column and a rail. The rail carries plan, turn stats, context and worktree. The composer is sticky at the bottom of the column. **Hierarchy is the point.** The approval is the only lifted element on the surface — border, tint, shadow, buttons — because it is the only thing the user owes a decision on. A user turn is a tinted block with an accent rail. Agent prose is plain text with no container at all. Tool calls are single bordered rows carrying glyph, name, argument and duration, expanding to show output or a diff. Making everything a card is the specific failure this is avoiding. Diffs render coloured hunks in their own `overflow-x: auto` container. Long tool output scrolls in its own container; clipped text is a bug. State comes from the projection. The client renders `reduced_state` and rows as received — no folding of raw events, no client-side turn tracking. Depends on: #137, #139
naps62-yolo added this to the Structured view milestone 2026-09-03 10:36:23 +01:00
naps62-yolo added the difficulty/hardarea/webtype/feat labels 2026-09-03 10:36:23 +01:00
naps62-yolo added a new dependency 2026-09-03 10:36:29 +01:00
naps62-yolo added a new dependency 2026-09-03 10:36:29 +01:00
naps62-yolo added a new dependency 2026-09-03 10:36:29 +01:00
This repo is archived. You cannot comment on issues.
1 Participants
Due Date
No due date set.
Reference: naps62/maestro#140