docs(handoff): visual evidence for workbench TruncatedCell (#749/#750) (#753)

Add a handoff brief with five screenshots captured by driving the real
vite-preview build with Playwright (mocked API), confirming the
full-content reveal works across the originally reported proposal queue
table, the trace propagation edges, and the trace selection rails — with
the row staying unselected on reveal (stopPropagation holds).

Verification only; no code change. Records the harness gotcha that a
role-by-name query resolves to the row, not the icon trigger.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Shay 2026-06-14 17:37:35 -07:00 committed by GitHub
parent 0cb01ee3f1
commit 3fb50b1ae3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 68 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

View file

@ -0,0 +1,68 @@
# Workbench `TruncatedCell` — visual evidence (2026-06-14)
Visual confirmation that the full-content reveal for truncated table cells
(PRs **#749** and **#750**) behaves correctly in the real built workbench UI.
These shots were captured by driving the production `vite preview` build with
Playwright, mocking the workbench API (`{ ok: true, data }` envelope) with data
shaped to mirror real responses — long opaque ids, `exemplar_corpus…` sources,
long pipeline stage names, and long prompt excerpts — so the truncation +
reveal affordance actually triggers. No code changed; this is verification only.
## What `TruncatedCell` provides
Every truncated data cell keeps its compact display but attaches one
hover/focus-revealed trigger that opens an accessible popover with the **full
value** (selectable) plus **one-click copy**; long/structured values also offer
"Open full view" into a modal. The reveal trigger calls `stopPropagation`, so it
never selects the surrounding row.
Coverage:
- **#749** — columnar tables: proposal queue, eval wrong=0 case ledger,
CORE-Logos contents, proposal artifacts.
- **#750** — trace propagation edges + every single-column selection rail
(trace stage/turns, runs, replay, packs, logos, contemplation, demos) and
proposal detail/chain hashes.
## Proposal queue (the originally reported table)
Cognition Queue, accepted filter — truncated `proposal_id` and
`exemplar_corpus…` source cells, mirroring the reported screenshot.
![Proposal queue table with truncated id and source cells](assets/workbench-truncated-cell/proposals_table.png)
Clicking a cell's reveal icon opens the popover with the **full** `proposal_id`
(`6ea18d4e5e9f1c2a3b4c5d6e7f8a9b0c1d2e3f40`) and a Copy button. The row stays
unselected (right panel still shows the placeholder) — `stopPropagation` holds.
![Proposal id cell reveal popover with full value and copy](assets/workbench-truncated-cell/proposals_reveal.png)
## Trace route — edges + selection rails (#750)
Full Trace view: the truncated **Turn Timeline rail** (left), the **stage rail**
with long stage names (middle), and the **Propagation edges** table (right).
![Trace route showing turns rail, stage rail, and propagation edges](assets/workbench-truncated-cell/trace_full.png)
Reveal on a propagation **edge** — the right-aligned `to_stage` cell
(`align="end"`) opens a popover with the full long stage name + copy.
![Propagation edge cell reveal popover](assets/workbench-truncated-cell/trace_edge_reveal.png)
Reveal on the **selection rail** — a Turn Timeline row's prompt opens a popover
with the full multi-line prompt text + copy, without selecting the row.
![Turn timeline rail cell reveal popover with full prompt](assets/workbench-truncated-cell/trace_rail_reveal.png)
## Verification notes
- Built from `origin/main` after #749 + #750 merged.
- Popovers reported `data-state: open`; rail/edge reveals left the row
unselected (`aria-current` count 0) — matches the `stopPropagation` unit test.
- The reveal trigger is a 16×16 icon button (`button[aria-label^="Show full"]`),
distinct from the row's own click target.
- One harness gotcha worth recording: `getByRole("button", { name: /show full …/ })`
resolves to the **row** (its computed accessible name absorbs the child
trigger's `aria-label`), not the icon — target the trigger by attribute
(`button[aria-label="Show full …"]`) when driving these cells in tests.