core/docs/handoffs/workbench-truncated-cell-visual-evidence-2026-06-14.md
Shay 54e6bfc0d0
docs: reorganize docs landscape
Implements the 4-phase documentation reorganization master plan.

- Consolidation: Merged brief/, handoff/, planning/, and decisions/ into briefs/, handoffs/, plans/, and adr/ respectively (101 ADRs relocated)
- Root Cleanup: Relocated HANDOFF-gpt55-*.md and key top-level docs (runtime_contracts.md, etc.) to canonical folders. Added superseded alerts.
- Indices & Navigation: Created docs/README.md navigation document, docs/sessions/README.md index, docs/adr/README.md index
- Note: Also includes prior commit adding ADR-0200+ corpus hygiene governance (ADR-0225, dependency map, backfilled cross-references)
2026-06-30 16:59:36 -07:00

3.4 KiB
Raw Blame History

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

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

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

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

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

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.