UX pass: Variant B — cockpit-bar workbench - #1
Merged
Merged
Conversation
Implements the approved SlotScope Workbench B mock: the full measure loop (compile → deploy → call → step → read named accesses) now works on one screen at ≥75rem, with storage never leaving the screen while stepping. Layout (top to bottom): header (unchanged; settings already lived there) · 56dvh three-pane face — Source (contracts picker + DIAG · n toggle dock into the pane header; the diagnostics strip expands inside the pane and auto-opens on errors), Assembly (unchanged), and the new Probe pane (Storage | Trace segmented modes; Trace auto-entered when a call completes, Forensics tab auto-selected on a revert) · full-width cockpit bar (steppers, scrubber, cursor facts, outcome — fixed height, visible in both probe modes) · slim execute strip (address chip, Deploy/Redeploy, Abort, compact per-function call forms with honest disabled reasons) · lower grid reduced to Share (URL field permanently rendered — no more layout shift) and Challenges. The probe pane's Trace mode pins the LIVE STORAGE STRIP above the detail tabs: one mini 32-byte band per touched slot, owner-hued static cells, hatched padding, and the bytes written up to the cursor filled amber with a caption naming slot, byte range, resolved label, and new value. Amber narrows to the PROVEN changed range (old→new byte diff); a first-touch write honestly claims the whole word. Keccak-derived slots render as derived bands with their resolution label in the cell title. Detail tabs: Accesses (default; unchanged observation rows) / State (unchanged machine panes) / Events / Forensics. Mechanically this is a state lift, not a rewrite: ExecutePane's logic moved verbatim into useExecutionSession(); ExecuteStrip, CockpitBar (reusing TraceScrubber), ProbePane, LiveStorageStrip, and ForensicsView are thin composition over the existing tested components (ObservationList, MachineStatePanes, EventsPanel, StorageGrid, RuntimeStorage). TracePane and ExecutePane are deleted. Gates: 209 unit + 57 e2e green (axe both motion modes, reduced motion, 200% zoom, forced colors), token discipline clean, benchmark PASS. Part of: slotscope-bnq Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Two reserved-hue violations from the design review, both against our own rule that owner hue is identity and pin cyan is pinned state: - The = exact pill wore --ss-color-owner-b, so an exact resolution next to an owner-b chip read as ownership. Resolution pills now use a dedicated neutral tier (--ss-color-res-fg/-border, from the mock's res chips) — the border style and the = / ≈ / ? mark carry the status, exactly as the design language demands. - COLD chips wore pin cyan and read as pinned. Cold/warm is already text; the chip drops to the label tier. Also: the probe header's CALL # now counts every executed call since deploy (a failed replayed call no longer skews the index the way the success-only session log could). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Owner
Author
|
Review fixes landed in 83abd62: resolution pills moved off owner-b onto a dedicated neutral res tier (border style + mark carry status), COLD chips off pin cyan onto the label tier, and the probe header's CALL # now counts every executed call since deploy. 57 e2e green, token gate clean. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the approved
SlotScope Workbench B.dc.htmlmock per the implementation prompt: the full measure loop (compile → deploy → call → step the trace → read named accesses) works on one screen at ≥75rem, and the storage picture never leaves the screen while stepping.What changed
Storage | Tracesegmented modes,role="tablist"). Trace mode auto-enters when a call completes; a revert auto-selects the Forensics tab; manual flip back any time.title/aria-label, hatched padding, keccak-derived slots as labeled derived bands. Bytes written up to the cursor fill amber with a caption naming slot ·[hi:lo]· resolved label · new value · step. Amber narrows to the proven changed byte range (old→new diff); a first-touch write honestly claims the whole word.gas · steps · returns). Cursor keeps driving the assembly-row + source-range highlights.Vault @ 0x… · local · cancun), Deploy locally/Redeploy, Abort, compact per-function forms; unsupported types disabled with the honest reason inline.DIAG · ntoggle in its header; the diagnostics strip expands inside the pane, auto-opens on error-severity diagnostics, shows byte ranges and "(whole file)".useExecutionSession();ExecuteStrip,CockpitBar(reusingTraceScrubber),ProbePane,LiveStorageStrip,ForensicsVieware thin composition over the existing tested components.ExecutePane.tsxandTracePane.tsxdeleted.Honesty notes
Selector / test changes (as required by the prompt)
Contractsremoved → assert theContractcombobox (same accessible name, now in the source pane header)compile.spec.ts,lifecycle.spec.tsDiagnosticsis toggle-gated → specs openDIAG · 0first when no errors (errors auto-open it, so error-path specs unchanged)compile.spec.ts,lifecycle.spec.tsProbe; the inner static grid keeps landmarkStoragelandmark-uniquefix; no spec change neededStatetab → specs click it firsttrace.spec.ts(X5, replay-consistency)Events · ntab → specs click it firstevents.spec.ts,a11y-v1.spec.tssemantics.spec.ts(S5)execution-outcomemoved to the cockpit bar (same testid, same text facts)Redeployafter first deploy (Deploy locallyon fresh state — specs unchanged)DIAG · 0instead of the always-open diagnostics regionscripts/benchmark-report.tsNew testids:
cockpit-bar,live-storage-strip. Unchanged and load-bearing:trace-pane,trace-cursor-facts,trace-stack/memory/io,trace-observations,events-panel,revert-forensics,jump-to-revert,deployed-address,share-url,share-size,migration-badge,byte-diff,keccak-flow*,storage-record, all stepper/scrubber aria-labels.Verification
tokens.css)🤖 Generated with Claude Code