From e70cb6e8e4039fa240f92ac091dcc34ab4f04c22 Mon Sep 17 00:00:00 2001 From: halaprix <6533433+halaprix@users.noreply.github.com> Date: Wed, 29 Jul 2026 10:13:26 +0200 Subject: [PATCH 1/2] =?UTF-8?q?feat(ux):=20Variant=20B=20=E2=80=94=20cockp?= =?UTF-8?q?it-bar=20workbench?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .beads/interactions.jsonl | 1 + .playwright-screens/strip-closeup.png | Bin 0 -> 9171 bytes .playwright-screens/variant-b.png | Bin 0 -> 208280 bytes apps/web/e2e/a11y-v1.spec.ts | 4 +- apps/web/e2e/compile.spec.ts | 11 +- apps/web/e2e/events.spec.ts | 5 +- apps/web/e2e/lifecycle.spec.ts | 3 +- apps/web/e2e/semantics.spec.ts | 3 +- apps/web/e2e/trace.spec.ts | 2 + apps/web/src/app/App.tsx | 184 ++++++---- apps/web/src/app/app.css | 340 +++++++++++++++++- apps/web/src/cockpit/CockpitBar.tsx | 49 +++ apps/web/src/execute/ExecuteStrip.tsx | 122 +++++++ ...ExecutePane.tsx => useExecutionSession.ts} | 277 +++----------- apps/web/src/probe/ForensicsView.tsx | 68 ++++ apps/web/src/probe/LiveStorageStrip.tsx | 207 +++++++++++ apps/web/src/probe/ProbePane.tsx | 172 +++++++++ apps/web/src/storage/StorageGrid.tsx | 6 +- apps/web/src/storage/ownerChip.ts | 5 + apps/web/src/trace/TracePane.tsx | 69 ---- scripts/benchmark-report.ts | 8 +- 21 files changed, 1153 insertions(+), 383 deletions(-) create mode 100644 .playwright-screens/strip-closeup.png create mode 100644 .playwright-screens/variant-b.png create mode 100644 apps/web/src/cockpit/CockpitBar.tsx create mode 100644 apps/web/src/execute/ExecuteStrip.tsx rename apps/web/src/execute/{ExecutePane.tsx => useExecutionSession.ts} (53%) create mode 100644 apps/web/src/probe/ForensicsView.tsx create mode 100644 apps/web/src/probe/LiveStorageStrip.tsx create mode 100644 apps/web/src/probe/ProbePane.tsx create mode 100644 apps/web/src/storage/ownerChip.ts delete mode 100644 apps/web/src/trace/TracePane.tsx diff --git a/.beads/interactions.jsonl b/.beads/interactions.jsonl index 344589c..6f2c92f 100644 --- a/.beads/interactions.jsonl +++ b/.beads/interactions.jsonl @@ -77,3 +77,4 @@ {"id":"int-c41493d4db55c60870fbed5d3b4e195e","kind":"field_change","created_at":"2026-07-28T23:27:54.965894418Z","actor":"halaprix","issue_id":"slotscope-pe7.12","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Docs + evidence + gates green (release:verify, both benchmarks); deployed to production."}} {"id":"int-70a07e495b05b829ee58102fb0b5cba5","kind":"field_change","created_at":"2026-07-29T00:05:10.765764819Z","actor":"halaprix","issue_id":"slotscope-pe7.13","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Codex reviewed v1.0 (9 findings), fixes verified in two follow-up rounds; final residual (prose pins) closed — all runtime items confirmed FIXED by the external verifier."}} {"id":"int-74d2e61abae11dd74f5866942307a3e0","kind":"field_change","created_at":"2026-07-29T05:47:53.640204834Z","actor":"halaprix","issue_id":"slotscope-zhv","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Stale copy replaced with per-reason honest explanations; e2e asserts the mapping wording and the absence of version claims."}} +{"id":"int-78d92a08ad438bc04c0142e555c53902","kind":"field_change","created_at":"2026-07-29T07:12:36.373056725Z","actor":"halaprix","issue_id":"slotscope-tkd","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"v2 identity applied (band+record, resolution treatment on runtime surfaces, contrast promotions, chassis lock restored); inventory doc written for the next design round; 209 unit + 57 e2e green."}} diff --git a/.playwright-screens/strip-closeup.png b/.playwright-screens/strip-closeup.png new file mode 100644 index 0000000000000000000000000000000000000000..aa3ed691382bc698dff8209aadfc7bd66071f499 GIT binary patch literal 9171 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%0DWKD|C!cX)TF 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 ^TVZz+OjBKQ?n_VBYdX1%FMd?c z+G%s`&o$=u23XG)1HQ_daR8*+TG%UfN36L1*wrK{Py=PrHz)4!c)PuSRMPe~|LGL| zl>+C!dOXHPoW1|hDg35j6HOB@(PPqz6&J<&=#_nl-hRu6#@~n#HZM5rX8BP7S?S=7V9F&2H z1qh6w){yKaypi4L}o%@F~?ZwsL z?7GbB@@cU~KQz+Ow*kx0xAT{|p|s!YSzU4)<`Ybgfue6rhUnVS;89+&YDgIaCNkOv zH36Qa6rq5B*;X#1uM0lQi0b^$yOul3MG(%gPxlE>K=v^hM%~!DTDd{OU zw%`6qDWOLOz#~;sOn0P%&PmKn0|0=Vss~g=|8>|9_cif6*R1jC?GOPQyVXb>tz^H+ zsFed3U>$>odScmwLe`gMau)}8YhQq?Yh?*-4L>zo!Q8bK+6@W2BzFI%22fs8M>&%V z*v|6DLB*xk)3vN!;9EYD*TbX7D?Or#i$80j4DjUxd*OeD1IrG@h({mxIehgQ`U^K)Ss#@iNP|!Xx(?2r@sKKukje zUuGkH=^IMkiT}|8D&a}n;n$}YBP>VtotFyW`xHHhC)x-Ra2PT>Tcq*DduP9bJcZ<+xB0diKG^|wCi1ulw9P}6sh8@j(m7n41H@`cQh#8 zAPsOhT^xKd*!4X;x`sx?z4()9;BUvg>a6!7f8nC^IeJNcA<(eBPD$Vf@pLc;CJQ~C z8*H>ra;t(gk8|6{rrshc>7jPM0{JO6Ur5R$Rc=pc;m@L_#aJs%dfkJLx`w)iXY7Mb zwWV_VV5q*~_NiHyga7R1`BQyTsl}hUgA_Q(F6T5-@_fqwCG%;8vI1ks-zASuKn!zJ zwAF-FODwqn9|r02yNs9WV_K89*hA_B@UVq#ofFtx^${%3tqu6LHb}P^$||ec-?J5e zwBUL49F$-1DUT`=D45E(fB$;x4~jbccbd+ zJF~PN+g`2l%>~?M?@L6zK80O$jQ2}=UoFiFO2gHJ(2>(XD#y2x3WEJkbSkc`J;t7sp^-YsQBjo54p zCjifm3S^Vvl3>Nt!A-jZruK}{o30YVE*k55Nw`2PJ@PZmUeamQvFwh(!J+L){Nxl` zG)-V+&Pq1aD`hKHqddhA_DPQtRwZTR3&i8w%+LQ;R8W6*jMt$s_?L(1a%hB7S7Nc; zHHJDT2mQI36EdI8FCFOC++PA8Ov^jVLU_fr4J&3G+o`(ux7UJ8gsUq=l|wJ%D08Q=ZFs;T~bC?dCl-+=WEFz^4;iH)#u46DpT~ z!*@S#%Ydto$#t{|Vb7jynzTlnJSI0; z|3bBZEqJ*3OpN2bZ*p{(Gn9-tR^UzIyB|sq6Wh17n+#lqyv)t*@VKN0>FCqc2VL^53bNH`qzr$uaTGAhbhVpBauk)H1)74ELl4x* z4*9>oV^#riFQHTe?3B_1e9ijG%D30J{nySEL*)<_cn|lTpVt#|q+KTFM6YP2ogaE= z7cl!Hjo6K7*7JYQpOs6(r=i-vn;%

eDfPr}vOStI;d)z6yO1TX}5Gusc29kh+(* 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 Math.max(...window.__frameGaps.slice(1))); @@ -52,7 +54,7 @@ test('compiles the public fixture twice with a responsive main thread', async ({ // Second compile must reuse the same worker generation. await page.getByRole('button', { name: 'Compile' }).click(); - await expect(page.getByRole('region', { name: 'Contracts' })).toContainText( + await expect(page.getByRole('combobox', { name: 'Contract' })).toContainText( 'Main.sol:PackedInheritance', { timeout: 60_000 }, ); @@ -83,9 +85,8 @@ test('invalid source returns solc diagnostics and no artifacts', async ({ page } await page.locator('.cm-content').fill(invalidSource); await page.getByRole('button', { name: 'Compile' }).click(); + // Errors auto-open the diagnostics strip; no artifacts means no picker. const diagnostics = page.getByRole('region', { name: 'Diagnostics' }); await expect(diagnostics).toContainText('error 9574', { timeout: 60_000 }); - await expect(page.getByRole('region', { name: 'Contracts' })).toContainText( - 'No contract artifacts.', - ); + await expect(page.getByRole('combobox', { name: 'Contract' })).toHaveCount(0); }); diff --git a/apps/web/e2e/events.spec.ts b/apps/web/e2e/events.spec.ts index ca3ea93..f0450f7 100644 --- a/apps/web/e2e/events.spec.ts +++ b/apps/web/e2e/events.spec.ts @@ -18,8 +18,11 @@ test('emitted events decode in the panel and link to their step (V5)', async ({ await page.getByLabel('set argument v (uint256)').fill('9'); await page.getByRole('button', { name: 'Call', exact: true }).click(); + // The probe pane auto-enters Trace mode; events live behind their tab. + await expect(page.locator('[data-testid="trace-pane"]')).toBeVisible({ timeout: 60_000 }); + await page.getByRole('tab', { name: /Events · 1/ }).click(); const panel = page.locator('[data-testid="events-panel"]'); - await expect(panel).toBeVisible({ timeout: 60_000 }); + await expect(panel).toBeVisible(); await expect(panel).toContainText('Set('); await expect(panel).toContainText('value = 9'); await expect(panel).toContainText('[indexed]'); diff --git a/apps/web/e2e/lifecycle.spec.ts b/apps/web/e2e/lifecycle.spec.ts index 9503f54..beb8782 100644 --- a/apps/web/e2e/lifecycle.spec.ts +++ b/apps/web/e2e/lifecycle.spec.ts @@ -46,9 +46,10 @@ test('cancel during a long compile recovers to ready and compiles again', async // The compiler subsystem is reusable: the public fixture compiles after. await page.locator('.cm-content').fill(fixtureSource); await page.getByRole('button', { name: 'Compile' }).click(); - await expect(page.getByRole('region', { name: 'Contracts' })).toContainText( + await expect(page.getByRole('combobox', { name: 'Contract' })).toContainText( 'Main.sol:PackedInheritance', { timeout: 60_000 }, ); + await page.getByRole('button', { name: 'DIAG · 0' }).click(); await expect(page.getByRole('region', { name: 'Diagnostics' })).toContainText('No diagnostics.'); }); diff --git a/apps/web/e2e/semantics.spec.ts b/apps/web/e2e/semantics.spec.ts index 59474c6..2537489 100644 --- a/apps/web/e2e/semantics.spec.ts +++ b/apps/web/e2e/semantics.spec.ts @@ -101,7 +101,8 @@ test('nested mappings show the collapsed KeccakFlow and the runtime storage grou await expect(flow.locator('[data-depth="2"]').first()).toBeVisible(); await expect(write.locator('[data-testid="keccak-flow-collapsed"]')).toContainText('collapsed'); - // The Storage section gains the labeled runtime group. + // The runtime group lives in the probe pane's Storage mode. + await page.getByRole('tab', { name: 'Storage' }).click(); const runtime = page.getByRole('region', { name: 'Runtime storage' }); await expect(runtime).toBeVisible(); await expect(runtime.locator('[data-testid="runtime-group"]')).toContainText('allowance'); diff --git a/apps/web/e2e/trace.spec.ts b/apps/web/e2e/trace.spec.ts index 717ad48..97a7e85 100644 --- a/apps/web/e2e/trace.spec.ts +++ b/apps/web/e2e/trace.spec.ts @@ -19,6 +19,7 @@ async function callPositionValue(page: Page) { test('the trace pane shows machine state at the cursor (X5)', async ({ page }) => { await callPositionValue(page); + await page.getByRole('tab', { name: 'State' }).click(); const facts = page.locator('[data-testid="trace-cursor-facts"]'); // Lands on the final step with the run-level return data visible. @@ -120,6 +121,7 @@ test('storage observations show cold/warm and keccak provenance (X8)', async ({ test('replayed state is consistent while scrubbing back and forth', async ({ page }) => { await callPositionValue(page); + await page.getByRole('tab', { name: 'State' }).click(); const facts = page.locator('[data-testid="trace-cursor-facts"]'); await page.getByLabel('Trace cursor').fill('20'); diff --git a/apps/web/src/app/App.tsx b/apps/web/src/app/App.tsx index e2f4bf2..c644908 100644 --- a/apps/web/src/app/App.tsx +++ b/apps/web/src/app/App.tsx @@ -3,7 +3,6 @@ import { DEFAULT_COMPILE_SETTINGS, type CompilationResult, type CompileSettings, - type SemanticResolution, } from '@slotscope/domain'; import { CompileError, @@ -29,9 +28,11 @@ import { import { useEffectiveMotion } from '../accessibility/useEffectiveMotion'; import { AssemblyPane } from '../assembly/AssemblyPane'; import { SourceEditor } from '../editor/SourceEditor'; -import { ExecutePane } from '../execute/ExecutePane'; -import { RuntimeStorage } from '../storage/RuntimeStorage'; -import { StorageGrid } from '../storage/StorageGrid'; +import { ExecuteStrip } from '../execute/ExecuteStrip'; +import { useExecutionSession } from '../execute/useExecutionSession'; +import { CockpitBar } from '../cockpit/CockpitBar'; +import { ProbePane, type ProbeMode, type ProbeTab } from '../probe/ProbePane'; +import { ownerChipText } from '../storage/ownerChip'; import { InstrumentHeader } from './InstrumentHeader'; import { ChallengePane } from '../challenges/ChallengePane'; import { OnboardingTour } from '../onboarding/OnboardingTour'; @@ -115,7 +116,9 @@ export function App() { const [announcement, setAnnouncement] = useState(''); const [solveTimeMs, setSolveTimeMs] = useState(null); const [tracePc, setTracePc] = useState(null); - const [traceResolutions, setTraceResolutions] = useState([]); + const [probeMode, setProbeMode] = useState('storage'); + const [probeTab, setProbeTab] = useState('accesses'); + const [diagOpen, setDiagOpen] = useState(false); useEffect(() => { const client = createCompilerClient(() => new CompilerWorker()); @@ -324,6 +327,26 @@ export function App() { // eslint-disable-next-line react-hooks/exhaustive-deps }, [result, selected, pinnedIndex, executeFacts]); + const session = useExecutionSession({ + artifact: selected !== null && selected.deployable ? selected : null, + replay: pendingReplay, + onReplayDone: () => setPendingReplay(null), + onTraceCursorPc: setTracePc, + onSessionFacts: setExecuteFacts, + onCallCompleted: (success) => { + setProbeMode('trace'); + setProbeTab(success ? 'accesses' : 'forensics'); + }, + }); + + // A fresh compile returns the probe to the static picture and surfaces + // diagnostics automatically when any of them is an error. + useEffect(() => { + setProbeMode('storage'); + setProbeTab('accesses'); + setDiagOpen(result !== null && result.diagnostics.some((d) => d.severity === 'error')); + }, [result]); + const relationIndex = useMemo( () => (selected !== null && selected.deployable ? buildRelationIndex(selected) : null), [selected], @@ -332,6 +355,11 @@ export function App() { // One contract, one hue — shared by the editor spine and the storage grid. const { ownerSuffixByContract, ownerSpans } = useOwnerHues(result); + const ownerClassByContract = useMemo( + () => new Map([...ownerSuffixByContract].map(([name, suffix]) => [name, `owner-${suffix}`])), + [ownerSuffixByContract], + ); + // Global shortcuts: Ctrl/Cmd+K palette, Ctrl/Cmd+Enter compile. useEffect(() => { function onKeyDown(event: KeyboardEvent) { @@ -497,7 +525,58 @@ export function App() { MAIN.SOL{result !== null ? ` · ${result.artifacts.length} UNITS` : ''} + {result !== null && result.artifacts.length > 0 && ( + + )} + {result !== null && ( + + )} + {result !== null && diagOpen && ( +

+ {result.diagnostics.length === 0 ? ( +

No diagnostics.

+ ) : ( +
    + {result.diagnostics.map((diagnostic, index) => ( +
  1. + {diagnostic.severity} {diagnostic.code ?? ''}: {diagnostic.message} + {diagnostic.location !== null + ? ` (bytes ${diagnostic.location.byteStart}–${ + diagnostic.location.byteStart + diagnostic.location.byteLength + })` + : ' (whole file)'} +
  2. + ))} +
+ )} +
+ )} - - )} + {result !== null && session.trace !== null && ( + + )} + + {result !== null && } + {result === null && (

Compile to light the instrument: the storage grid, execution, sharing, and challenges all @@ -543,60 +638,6 @@ export function App() { {result !== null && (

-
-

Diagnostics

- {result.diagnostics.length === 0 ? ( -

No diagnostics.

- ) : ( -
    - {result.diagnostics.map((diagnostic, index) => ( -
  1. - {diagnostic.severity} {diagnostic.code ?? ''}: {diagnostic.message} - {diagnostic.location !== null && - ` (bytes ${diagnostic.location.byteStart}–${ - diagnostic.location.byteStart + diagnostic.location.byteLength - })`} -
  2. - ))} -
- )} -
- -
-

Contracts

- {result.artifacts.length === 0 ? ( -

No contract artifacts.

- ) : ( - - )} -
- - setPendingReplay(null)} - /> -

Share

{shareSize !== null && ( @@ -630,15 +671,14 @@ export function App() { }} /> - {shareUrl !== null && ( - - )} +
void; +}) { + const boundedCursor = Math.min(Math.max(cursor, 0), trace.encoded.stepCount - 1); + return ( +
+ COCKPIT + + {outcome !== null && ( + + {outcome.fnName} {outcome.success ? 'succeeded' : 'reverted'} ·{' '} + {outcome.gasUsed.toLocaleString('en-US')} gas ·{' '} + {outcome.stepCount.toLocaleString('en-US')} steps + {outcome.success && ( + <> + {' '} + · returns{' '} + {outcome.decoded.length === 0 + ? '()' + : outcome.decoded.map((value, index) => ( + + {index > 0 && ', '} + {value.type}: {value.display} + + ))} + + )} + {!outcome.success && ' · see Forensics'} + + )} +
+ ); +} diff --git a/apps/web/src/execute/ExecuteStrip.tsx b/apps/web/src/execute/ExecuteStrip.tsx new file mode 100644 index 0000000..a45d237 --- /dev/null +++ b/apps/web/src/execute/ExecuteStrip.tsx @@ -0,0 +1,122 @@ +import type { ContractArtifact } from '@slotscope/domain'; +import { isSupportedStaticType, type ExecutionStatus } from '@slotscope/executor'; +import { abiFunctions, type useExecutionSession } from './useExecutionSession'; + +const STATUS_TEXT: Record = { + uninitialized: 'Starting executor…', + starting: 'Starting executor…', + ready: 'Ready', + executing: 'Executing…', + replacing: 'Aborting — replacing executor…', + failed: 'Executor failed', +}; + +/** + * The slim execute strip (Variant B): deployed-address chip, deploy/abort + * controls, and one compact form per ABI function. Trace, outcome, and + * forensics live in the cockpit bar and the probe pane. + */ +export function ExecuteStrip({ + artifact, + session, +}: { + artifact: ContractArtifact | null; + session: ReturnType; +}) { + const { status, progress, address, errorText, args, setArgs } = session; + + if (artifact === null || !artifact.deployable) { + return ( +
+ EXECUTE +

Select a deployable contract to run it locally.

+
+ ); + } + + const functions = abiFunctions(artifact); + + return ( +
+ EXECUTE + {address !== null && ( + + {artifact.contractName} @ 0x{address} · local + · cancun + + )} + + {status === 'executing' && ( + + )} + {status === 'failed' && ( + + )} + + {STATUS_TEXT[status]} + {status === 'executing' && progress > 0 + ? ` — ${progress.toLocaleString('en-US')} steps` + : ''} + + {errorText !== null && ( +

+ {errorText} +

+ )} + + {address !== null && functions.length > 0 && ( +
    + {functions.map((fn) => { + const unsupported = fn.inputs.find((input) => !isSupportedStaticType(input.type)); + return ( +
  • i.type).join(',')}> +
    + + {fn.name}({fn.inputs.map((input) => input.type).join(', ')}) + + {fn.inputs.map((input, index) => ( + + setArgs((previous) => ({ + ...previous, + [`${fn.name}:${index}`]: event.target.value, + })) + } + /> + ))} + {unsupported === undefined ? ( + + ) : ( + {`disabled — type ${unsupported.type} not callable in v0.2`} + )} +
    +
  • + ); + })} +
+ )} +
+ ); +} diff --git a/apps/web/src/execute/ExecutePane.tsx b/apps/web/src/execute/useExecutionSession.ts similarity index 53% rename from apps/web/src/execute/ExecutePane.tsx rename to apps/web/src/execute/useExecutionSession.ts index 9893e75..229ce03 100644 --- a/apps/web/src/execute/ExecutePane.tsx +++ b/apps/web/src/execute/useExecutionSession.ts @@ -1,8 +1,8 @@ import { useEffect, useMemo, useRef, useState } from 'react'; import type { - LogObservation, ContractArtifact, EncodedTrace, + LogObservation, SemanticResolution, TraceObservations, } from '@slotscope/domain'; @@ -14,28 +14,16 @@ import { decodeOutputs, encodeCall, functionSignature, - isSupportedStaticType, + type AbiError, type AbiFunction, type DecodedValue, type ExecutionClient, - type AbiError, type ExecutionStatus, type RevertForensics, } from '@slotscope/executor'; import ExecutionWorker from '@slotscope/executor/worker?worker'; -import { EventsPanel } from './EventsPanel'; -import { TracePane } from '../trace/TracePane'; - -const STATUS_TEXT: Record = { - uninitialized: 'Starting executor…', - starting: 'Starting executor…', - ready: 'Ready', - executing: 'Executing…', - replacing: 'Aborting — replacing executor…', - failed: 'Executor failed', -}; -interface CallOutcome { +export interface CallOutcome { forensics: RevertForensics | null; fnName: string; success: boolean; @@ -46,7 +34,20 @@ interface CallOutcome { errorMessage: string | null; } -function abiFunctions(artifact: ContractArtifact): AbiFunction[] { +export interface SessionCall { + fn: string; + args: string[]; +} + +export interface TraceBundle { + encoded: EncodedTrace; + calldataHex: string; + returnDataHex: string; + observations: TraceObservations | null; + logs: readonly LogObservation[]; +} + +export function abiFunctions(artifact: ContractArtifact): AbiFunction[] { return artifact.abi .filter((item) => item.type === 'function') .map((item) => ({ @@ -59,24 +60,25 @@ function abiFunctions(artifact: ContractArtifact): AbiFunction[] { } /** - * Local deployment + ABI call forms (X4). Executions run in the execution - * worker; aborting replaces the worker generation, which by design drops the - * deployed state — the pane says so and offers redeploy. + * The execution session, lifted out of the old Execute pane so the Variant B + * layout can split its UI across the execute strip, the cockpit bar, and the + * probe pane. Behavior is unchanged: worker lifecycle, deploy/call/abort, + * Layer-3 resolution over the frozen observations, and restored-session + * replay all work exactly as before. */ -export interface SessionCall { - fn: string; - args: string[]; -} - -export function ExecutePane({ +export function useExecutionSession({ artifact, + replay = null, + onReplayDone, onTraceCursorPc, onResolutions, onSessionFacts, - replay = null, - onReplayDone, + onCallCompleted, }: { artifact: ContractArtifact | null; + /** A restored session's call sequence to replay after deploy. */ + replay?: { calls: SessionCall[]; cursor: number | null } | null; + onReplayDone?: () => void; /** PC of the trace cursor step (call traces run the deployed code of the * selected artifact, so PCs align with its decoded instructions). */ onTraceCursorPc?: (pc: number | null) => void; @@ -84,9 +86,8 @@ export function ExecutePane({ onResolutions?: (resolutions: readonly SemanticResolution[]) => void; /** Successful calls since deploy + trace cursor, for session sharing. */ onSessionFacts?: (facts: { calls: SessionCall[]; cursor: number | null }) => void; - /** A restored session's call sequence to replay after deploy. */ - replay?: { calls: SessionCall[]; cursor: number | null } | null; - onReplayDone?: () => void; + /** Fired when a traced call finishes (probe pane auto-enters Trace mode). */ + onCallCompleted?: (success: boolean) => void; }) { const clientRef = useRef(null); const [status, setStatus] = useState('starting'); @@ -96,13 +97,7 @@ export function ExecutePane({ const [errorText, setErrorText] = useState(null); const [progress, setProgress] = useState(0); const [args, setArgs] = useState>({}); - const [trace, setTrace] = useState<{ - encoded: EncodedTrace; - calldataHex: string; - returnDataHex: string; - observations: TraceObservations | null; - logs: readonly LogObservation[]; - } | null>(null); + const [trace, setTrace] = useState(null); const [cursor, setCursor] = useState(0); const [callLog, setCallLog] = useState([]); const replayRunningRef = useRef(false); @@ -198,15 +193,6 @@ export function ExecutePane({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [replay, artifact, status]); - if (artifact === null || !artifact.deployable) { - return ( -
-

Execute

-

Select a deployable contract to run it locally.

-
- ); - } - async function handleDeploy(): Promise { const client = clientRef.current; if (client === null || artifact === null) return null; @@ -284,6 +270,9 @@ export function ExecutePane({ stepCount: result.steps.length, errorMessage: result.errorMessage, }); + if (result.trace !== null && result.trace.stepCount > 0) { + onCallCompleted?.(result.success); + } return result.success; } catch (error) { if (error instanceof ExecutionError && error.code === 'cancelled') return false; @@ -304,180 +293,26 @@ export function ExecutePane({ } } - const functions = abiFunctions(artifact); - - return ( -
-

Execute

-
- - {status === 'executing' && ( - - )} - {status === 'failed' && ( - - )} - - {STATUS_TEXT[status]} - {status === 'executing' && progress > 0 - ? ` — ${progress.toLocaleString('en-US')} steps` - : ''} - -
- - {address !== null && ( -

- Deployed at 0x{address} - (local worker state — Abort or recompile resets it) -

- )} - - {errorText !== null &&

{errorText}

} - - {address !== null && functions.length > 0 && ( -
    - {functions.map((fn) => { - const unsupported = fn.inputs.find((input) => !isSupportedStaticType(input.type)); - return ( -
  • i.type).join(',')}> -
    - - {fn.name}({fn.inputs.map((input) => input.type).join(', ')}) - - {fn.inputs.map((input, index) => ( - - setArgs((previous) => ({ - ...previous, - [`${fn.name}:${index}`]: event.target.value, - })) - } - /> - ))} - {unsupported === undefined ? ( - - ) : ( - {`type ${unsupported.type} not callable in v0.2`} - )} -
    -
  • - ); - })} -
- )} - - {trace !== null && ( - <> - - - - )} + function handleRetry() { + void clientRef.current?.retry(); + } - {outcome !== null && ( -
-

- {outcome.fnName} {outcome.success ? 'succeeded' : 'reverted'} ·{' '} - {outcome.gasUsed.toLocaleString('en-US')} gas ·{' '} - {outcome.stepCount.toLocaleString('en-US')} steps -

- {outcome.success ? ( - outcome.decoded.length > 0 ? ( -
    - {outcome.decoded.map((value, index) => ( -
  • - - {value.type}: {value.display} - -
  • - ))} -
- ) : ( -

No return data.

- ) - ) : ( -
-

{outcome.errorMessage}

- {outcome.forensics !== null && ( - <> -

- {outcome.forensics.kind === 'error-string' && ( - <> - revert reason:{' '} - "{outcome.forensics.decoded}" - - )} - {outcome.forensics.kind === 'panic' && ( - {outcome.forensics.decoded} - )} - {outcome.forensics.kind === 'custom-error' && ( - <> - {outcome.forensics.decoded} - {outcome.forensics.decoded?.startsWith('unknown') === true && - ' — not declared in this ABI; raw data below'} - - )} - {outcome.forensics.kind === 'empty' && 'revert() with no returndata'} - {outcome.forensics.kind === 'halt' && - `halted without REVERT: ${outcome.forensics.decoded ?? 'unknown cause'}`} - {outcome.forensics.kind === 'raw' && 'unparseable returndata (raw below)'} -

- {(outcome.forensics.kind === 'custom-error' || - outcome.forensics.kind === 'raw') && ( - 0x{outcome.forensics.returnDataHex} - )} - {outcome.forensics.step !== null && ( -

- at step #{outcome.forensics.step.stepIndex} ·{' '} - {outcome.forensics.step.opcode} · pc 0x - {outcome.forensics.step.pc.toString(16).padStart(4, '0')} · frame depth{' '} - {outcome.forensics.step.depth} - {trace !== null && - outcome.forensics.step.stepIndex < trace.encoded.stepCount && ( - <> - {' '} - - - )} -

- )} - - )} -
- )} -
- )} -
- ); + return { + status, + progress, + address, + outcome, + errorText, + args, + setArgs, + trace, + cursor, + setCursor, + resolutions, + callLog, + handleDeploy, + handleCall, + handleAbort, + handleRetry, + }; } diff --git a/apps/web/src/probe/ForensicsView.tsx b/apps/web/src/probe/ForensicsView.tsx new file mode 100644 index 0000000..93baea1 --- /dev/null +++ b/apps/web/src/probe/ForensicsView.tsx @@ -0,0 +1,68 @@ +import { toHex4 } from '@slotscope/domain'; +import type { CallOutcome } from '../execute/useExecutionSession'; + +/** The Forensics tab: revert decode for the last call, or the honest "no + * revert data" line after a success. Moved verbatim from the old pane. */ +export function ForensicsView({ + outcome, + onJump, + traceStepCount, +}: { + outcome: CallOutcome | null; + onJump: (stepIndex: number) => void; + traceStepCount: number; +}) { + if (outcome === null) { + return

run a call to collect forensics

; + } + if (outcome.success || outcome.forensics === null) { + return

call succeeded — no revert data to decode

; + } + const forensics = outcome.forensics; + return ( +
+

{outcome.errorMessage}

+

+ {forensics.kind === 'error-string' && ( + <> + revert reason: "{forensics.decoded}" + + )} + {forensics.kind === 'panic' && {forensics.decoded}} + {forensics.kind === 'custom-error' && ( + <> + {forensics.decoded} + {forensics.decoded?.startsWith('unknown') === true && + ' — not declared in this ABI; raw data below'} + + )} + {forensics.kind === 'empty' && 'revert() with no returndata'} + {forensics.kind === 'halt' && + `halted without REVERT: ${forensics.decoded ?? 'unknown cause'}`} + {forensics.kind === 'raw' && 'unparseable returndata (raw below)'} +

+ {(forensics.kind === 'custom-error' || forensics.kind === 'raw') && ( + 0x{forensics.returnDataHex} + )} + {forensics.step !== null && ( +

+ at step #{forensics.step.stepIndex} ·{' '} + {forensics.step.opcode} · pc{' '} + {toHex4(forensics.step.pc)} · frame depth {forensics.step.depth} + {forensics.step.stepIndex < traceStepCount && ( + <> + {' '} + + + )} +

+ )} +
+ ); +} diff --git a/apps/web/src/probe/LiveStorageStrip.tsx b/apps/web/src/probe/LiveStorageStrip.tsx new file mode 100644 index 0000000..8b775b4 --- /dev/null +++ b/apps/web/src/probe/LiveStorageStrip.tsx @@ -0,0 +1,207 @@ +import { useMemo } from 'react'; +import type { + ContractArtifact, + SemanticResolution, + StorageAccessObservation, + StorageValueCell, +} from '@slotscope/domain'; +import { padWord, trimHexZeros, wordToBigInt } from '@slotscope/domain'; +import { LayoutDecodeError, decodeStorageLayout, groupCellsBySlot } from '@slotscope/layout'; +import type { TraceBundle } from '../execute/useExecutionSession'; + +interface WriteFact { + /** Inclusive changed byte range, LSB-indexed (byte 0 = rightmost). */ + lo: number; + hi: number; + newValueHex: string; + stepIndex: number; +} + +/** Latest persistent write to the slot at or before the cursor, byte-diffed. */ +function writeUpToCursor( + accesses: readonly StorageAccessObservation[], + cursorStep: number, +): WriteFact | null { + let fact: WriteFact | null = null; + let previous: string | null = null; + for (const access of accesses) { + if (access.valueHex === null) continue; + if (access.kind === 'sstore' && access.stepIndex <= cursorStep) { + const next = padWord(access.valueHex); + const before = previous === null ? null : padWord(previous); + let lo = 0; + let hi = 31; + if (before !== null && before !== next) { + const changed: number[] = []; + for (let byte = 0; byte < 32; byte += 1) { + const at = (31 - byte) * 2; // byte 0 is the rightmost pair + if (before.slice(at, at + 2) !== next.slice(at, at + 2)) changed.push(byte); + } + if (changed.length > 0) { + lo = Math.min(...changed); + hi = Math.max(...changed); + } + } + // First touch has no recorded previous value: the whole word is + // honestly "written" — we cannot claim a narrower range. + fact = { lo, hi, newValueHex: access.valueHex, stepIndex: access.stepIndex }; + } + previous = access.valueHex; + } + return fact; +} + +/** grid column for a byte range: byte 31 renders in column 1 (leftmost). */ +function columnFor(lo: number, hi: number): string { + return `${32 - hi} / span ${hi - lo + 1}`; +} + +function shortHex(wordHex: string): string { + const trimmed = trimHexZeros(wordHex); + return trimmed.length > 10 ? `0x…${trimmed.slice(-4)}` : `0x${trimmed}`; +} + +/** + * The live storage strip (Variant B): one mini 32-byte band per slot the + * call touches, pinned above the trace tabs at every cursor position. Static + * layout cells carry owner hues; bytes written up to the cursor fill amber + * (measured change, so the accent is honest). Keccak-derived slots have no + * static cells — their band is the amber write plus the resolved label in + * the cell title. + */ +export function LiveStorageStrip({ + trace, + resolutions, + artifact, + cursor, + ownerClass, + ownerChipText, +}: { + trace: TraceBundle; + resolutions: readonly SemanticResolution[]; + artifact: ContractArtifact; + cursor: number; + ownerClass: ReadonlyMap; + ownerChipText: (contract: string) => string; +}) { + const cellsBySlot = useMemo(() => { + if (artifact.storageLayout === null) return new Map(); + try { + return groupCellsBySlot(decodeStorageLayout(artifact.storageLayout, () => null).items); + } catch (error) { + if (error instanceof LayoutDecodeError) return new Map(); + throw error; + } + }, [artifact.storageLayout]); + + const observations = trace.observations; + if (observations === null || observations.storage.length === 0) return null; + + const cursorStep = trace.encoded.steps[Math.min(cursor, trace.encoded.stepCount - 1)]; + const cursorStepIndex = cursorStep?.stepIndex ?? 0; + const resolutionByStep = new Map(resolutions.map((r) => [r.stepIndex, r])); + + // Persistent slots the call touches, in first-touch order. + const slots: { slotHex: string; accesses: StorageAccessObservation[] }[] = []; + for (const access of observations.storage) { + if (access.kind === 'tload' || access.kind === 'tstore') continue; + const existing = slots.find((slot) => slot.slotHex === access.slotHex); + if (existing !== undefined) existing.accesses.push(access); + else slots.push({ slotHex: access.slotHex, accesses: [access] }); + } + if (slots.length === 0) return null; + + let caption: string | null = null; + let captionStep: number | null = null; + + const bands = slots.map(({ slotHex, accesses }) => { + const slotValue = wordToBigInt(slotHex); + const slotLabel = `0x${trimHexZeros(slotHex)}`; + const staticCells = cellsBySlot.get(slotValue.toString()) ?? []; + const write = writeUpToCursor(accesses, cursorStepIndex); + if (write !== null) { + const resolution = accesses + .map((access) => resolutionByStep.get(access.stepIndex)) + .find((candidate) => candidate?.label != null); + const name = + resolution?.label ?? (staticCells.map((cell) => cell.path).join(' · ') || slotLabel); + const latestCaption = `${slotLabel} [${write.hi}:${write.lo}] ${name} ← ${shortHex( + padWord(write.newValueHex), + )}`; + if (captionStep === null || write.stepIndex > captionStep) { + caption = latestCaption; + captionStep = write.stepIndex; + } + } + return { slotHex, slotLabel, staticCells, write, accesses }; + }); + + return ( +
+
+ STORAGE · LIVE AT CURSOR + BYTE 31 ◄ ··· ► 0 (LSB) +
+
+ {bands.map((band) => ( +
+ + {band.slotLabel.length > 8 ? `${band.slotLabel.slice(0, 6)}…` : band.slotLabel} + +
+ {band.staticCells.map((cell, index) => { + const hi = cell.byteOffset + cell.byteLength - 1; + const owner = + cell.declaringContract !== null + ? (ownerClass.get(cell.declaringContract) ?? '') + : ''; + const chip = + cell.declaringContract !== null + ? ` · ${ownerChipText(cell.declaringContract)}` + : ''; + return ( +
+ ); + })} + {band.staticCells.length === 0 && ( +
+ )} + {band.write !== null && ( +
+ )} +
+
+ ))} +
+

+ amber = bytes written up to the cursor + {caption !== null && captionStep !== null && ( + <> + {' '} + · {caption} at step #{captionStep} + + )} + {caption === null && ' · no bytes written up to this cursor'} +

+
+ ); +} diff --git a/apps/web/src/probe/ProbePane.tsx b/apps/web/src/probe/ProbePane.tsx new file mode 100644 index 0000000..6cf493c --- /dev/null +++ b/apps/web/src/probe/ProbePane.tsx @@ -0,0 +1,172 @@ +import { useMemo } from 'react'; +import type { CompilationResult, ContractArtifact } from '@slotscope/domain'; +import { replayToCursor } from '@slotscope/executor'; +import type { useExecutionSession } from '../execute/useExecutionSession'; +import { EventsPanel } from '../execute/EventsPanel'; +import { RuntimeStorage } from '../storage/RuntimeStorage'; +import { StorageGrid } from '../storage/StorageGrid'; +import { MachineStatePanes } from '../trace/MachineStatePanes'; +import { ObservationList } from '../trace/ObservationList'; +import { ForensicsView } from './ForensicsView'; +import { LiveStorageStrip } from './LiveStorageStrip'; + +export type ProbeMode = 'storage' | 'trace'; +export type ProbeTab = 'accesses' | 'state' | 'events' | 'forensics'; + +/** + * The probe pane (Variant B): the third workbench pane, mode-switched + * between the static Storage view and the Trace view. In Trace mode the + * live storage strip stays pinned above the detail tabs at every cursor + * position — stepping never loses the storage picture. + */ +export function ProbePane({ + result, + artifact, + session, + mode, + onMode, + tab, + onTab, + ownerSuffixByContract, + ownerClass, + ownerChipText, +}: { + result: CompilationResult; + artifact: ContractArtifact | null; + session: ReturnType; + mode: ProbeMode; + onMode: (mode: ProbeMode) => void; + tab: ProbeTab; + onTab: (tab: ProbeTab) => void; + ownerSuffixByContract: ReadonlyMap; + ownerClass: ReadonlyMap; + ownerChipText: (contract: string) => string; +}) { + const { trace, cursor, setCursor, resolutions, outcome, callLog } = session; + const effectiveMode: ProbeMode = trace === null ? 'storage' : mode; + const boundedCursor = + trace === null ? 0 : Math.min(Math.max(cursor, 0), trace.encoded.stepCount - 1); + + const machineState = useMemo( + () => (trace === null ? null : replayToCursor(trace.encoded, boundedCursor)), + [trace, boundedCursor], + ); + + const accessCount = trace?.observations?.storage.length ?? 0; + const eventCount = trace?.logs.length ?? 0; + + const modeButton = (id: ProbeMode, label: string, disabled = false) => ( + + ); + + const tabButton = (id: ProbeTab, label: string) => ( + + ); + + return ( +
+
+
+ {modeButton('storage', 'Storage')} + {modeButton('trace', 'Trace', trace === null)} +
+ {outcome !== null && ( + + CALL #{Math.max(callLog.length, 1)} · {outcome.fnName}() + + )} +
+ + {effectiveMode === 'storage' && ( +
+ + +
+ )} + + {effectiveMode === 'trace' && trace !== null && artifact !== null && ( +
+ {trace.encoded.truncatedStepCount > 0 && ( +

+ Memory guard: showing the first {trace.encoded.stepCount.toLocaleString('en-US')}{' '} + steps; {trace.encoded.truncatedStepCount.toLocaleString('en-US')} further steps + executed but were not recorded. +

+ )} + +
+ {tabButton('accesses', `Accesses · ${accessCount}`)} + {tabButton('state', 'State')} + {tabButton('events', `Events · ${eventCount}`)} + {tabButton('forensics', 'Forensics')} +
+
+ {tab === 'accesses' && + (trace.observations !== null && trace.observations.storage.length > 0 ? ( + + ) : ( +

this call touched no storage

+ ))} + {tab === 'state' && machineState !== null && ( + + )} + {tab === 'events' && ( + <> + + {trace.logs.length === 0 && ( +

this call emitted no events

+ )} + + )} + {tab === 'forensics' && ( + + )} +
+
+ )} +
+ ); +} diff --git a/apps/web/src/storage/StorageGrid.tsx b/apps/web/src/storage/StorageGrid.tsx index 1e97080..52f234d 100644 --- a/apps/web/src/storage/StorageGrid.tsx +++ b/apps/web/src/storage/StorageGrid.tsx @@ -2,6 +2,7 @@ import { useMemo, useRef, useState } from 'react'; import type { CollapsedStorageSpan, ContractArtifact } from '@slotscope/domain'; import { LayoutDecodeError, decodeStorageLayout } from '@slotscope/layout'; import { buildRows, type RowSegment } from './buildRows'; +import { ownerChipText } from './ownerChip'; export interface StorageGridProps { artifact: ContractArtifact | null; @@ -35,11 +36,6 @@ function gridColumn(byteOffset: number, byteLength: number): string { * contained horizontal scrolling, and text labels alongside owner colors. */ /** 3-letter chip from a contract name: its capitals/digits, e.g. PI, BA. */ -function ownerChipText(name: string): string { - const capitals = name.replace(/[^A-Z0-9]/g, ''); - return (capitals.length >= 2 ? capitals : name.toUpperCase()).slice(0, 3); -} - /** * Honest copy per collapsed reason. A reference type is not "unexpanded" — * its entries live at keccak-derived slots that exist only at runtime; the diff --git a/apps/web/src/storage/ownerChip.ts b/apps/web/src/storage/ownerChip.ts new file mode 100644 index 0000000..52fd960 --- /dev/null +++ b/apps/web/src/storage/ownerChip.ts @@ -0,0 +1,5 @@ +/** Short owner chip text for a contract name (shared by grid + strip). */ +export function ownerChipText(name: string): string { + const capitals = name.replace(/[^A-Z0-9]/g, ''); + return (capitals.length >= 2 ? capitals : name.toUpperCase()).slice(0, 3); +} diff --git a/apps/web/src/trace/TracePane.tsx b/apps/web/src/trace/TracePane.tsx deleted file mode 100644 index 8485bcc..0000000 --- a/apps/web/src/trace/TracePane.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { useMemo } from 'react'; -import type { EncodedTrace, SemanticResolution, TraceObservations } from '@slotscope/domain'; -import { replayToCursor } from '@slotscope/executor'; -import { MachineStatePanes } from './MachineStatePanes.tsx'; -import { ObservationList } from './ObservationList.tsx'; -import { TraceScrubber } from './TraceScrubber.tsx'; - -export interface TracePaneProps { - trace: EncodedTrace; - /** Calldata of the traced call (hex, no 0x). Constant for the run. */ - calldataHex: string; - /** Final return data of the run (hex, no 0x). */ - returnDataHex: string; - observations?: TraceObservations | null; - resolutions?: readonly SemanticResolution[]; - cursor: number; - onCursor: (cursor: number) => void; -} - -/** - * Machine state at the cursor (X5): the state BEFORE the cursor step - * executes, replayed from keyframes + deltas. Stack is shown top-first. - * Calldata is constant per run; return data is a run-level fact shown at the - * final cursor — mid-run values after nested calls are not tracked in v0.2 - * and are labeled as such (honest degradation, no invented state). - */ -export function TracePane({ - trace, - calldataHex, - returnDataHex, - observations = null, - resolutions = [], - cursor, - onCursor, -}: TracePaneProps) { - // A restored session may carry any cursor the schema allows — clamp to - // the trace we actually have before ANY replay math can range-error. - const boundedCursor = Math.min(Math.max(cursor, 0), trace.stepCount - 1); - const step = trace.steps[boundedCursor]; - const state = useMemo(() => replayToCursor(trace, boundedCursor), [trace, boundedCursor]); - if (step === undefined) return null; - - return ( -
- {trace.truncatedStepCount > 0 && ( -

- Memory guard: showing the first {trace.stepCount.toLocaleString('en-US')} steps;{' '} - {trace.truncatedStepCount.toLocaleString('en-US')} further steps executed but were not - recorded. -

- )} - - - {observations !== null && observations.storage.length > 0 && ( - - )} -
- ); -} diff --git a/scripts/benchmark-report.ts b/scripts/benchmark-report.ts index 9144715..91b36c3 100644 --- a/scripts/benchmark-report.ts +++ b/scripts/benchmark-report.ts @@ -86,9 +86,11 @@ async function main() { if (!contracts?.includes('Main.sol:PackedInheritance')) { fail('compiled result does not contain the expected fixture contract'); } - const diagnostics = await page.locator('[aria-label="Diagnostics"]').textContent(); - if (!diagnostics?.includes('No diagnostics.')) { - fail('fixture compile unexpectedly produced diagnostics'); + // Variant B: diagnostics live behind the DIAG toggle in the source + // pane header; the count in its label is the assertion surface. + const diagToggle = await page.locator('.ss-diag-toggle').textContent(); + if (!diagToggle?.includes('DIAG · 0')) { + fail(`fixture compile unexpectedly produced diagnostics (${diagToggle ?? 'no toggle'})`); } await page.waitForFunction( From 83abd62eebe6d6d0463d01af0dc906dc9101aa6a Mon Sep 17 00:00:00 2001 From: halaprix <6533433+halaprix@users.noreply.github.com> Date: Wed, 29 Jul 2026 10:25:48 +0200 Subject: [PATCH 2/2] =?UTF-8?q?fix(ux):=20review=20=E2=80=94=20reserved=20?= =?UTF-8?q?hues=20off=20status=20surfaces;=20honest=20call=20index?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- apps/web/src/app/app.css | 7 ++++--- apps/web/src/execute/useExecutionSession.ts | 4 ++++ apps/web/src/probe/ProbePane.tsx | 4 ++-- packages/ui/src/tokens.css | 6 ++++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/apps/web/src/app/app.css b/apps/web/src/app/app.css index 58b5fc2..b007bcf 100644 --- a/apps/web/src/app/app.css +++ b/apps/web/src/app/app.css @@ -1509,7 +1509,8 @@ input[readonly] { } .ss-obs-cold { - color: var(--ss-color-pin); + /* Cold/warm is already text; pin cyan is reserved for pinned state. */ + color: var(--ss-color-label); } .ss-obs-warm { @@ -1551,8 +1552,8 @@ input[readonly] { /* Resolution is carried by border TREATMENT and a mark, never hue alone (design v2): solid =, dashed ≈, dotted ? — legible without color. */ .ss-status-pill.is-exact { - color: var(--ss-color-owner-b); - border-color: var(--ss-color-owner-b); + color: var(--ss-color-res-fg); + border-color: var(--ss-color-res-border); border-style: solid; } diff --git a/apps/web/src/execute/useExecutionSession.ts b/apps/web/src/execute/useExecutionSession.ts index 229ce03..b61caf6 100644 --- a/apps/web/src/execute/useExecutionSession.ts +++ b/apps/web/src/execute/useExecutionSession.ts @@ -100,6 +100,7 @@ export function useExecutionSession({ const [trace, setTrace] = useState(null); const [cursor, setCursor] = useState(0); const [callLog, setCallLog] = useState([]); + const [callCount, setCallCount] = useState(0); const replayRunningRef = useRef(false); // Layer 3: pure naming over the frozen trace observations. Only outer- @@ -208,6 +209,7 @@ export function useExecutionSession({ setAddress(result.createdAddressHex); setDeployedArtifactId(artifact.id); setCallLog([]); + setCallCount(0); return result.createdAddressHex; } setErrorText(`Deployment reverted: ${result.errorMessage ?? 'unknown error'}`); @@ -253,6 +255,7 @@ export function useExecutionSession({ if (result.success) { setCallLog((log) => [...log, { fn: functionSignature(fn), args: values }]); } + setCallCount((count) => count + 1); setOutcome({ fnName: fn.name, success: result.success, @@ -310,6 +313,7 @@ export function useExecutionSession({ setCursor, resolutions, callLog, + callCount, handleDeploy, handleCall, handleAbort, diff --git a/apps/web/src/probe/ProbePane.tsx b/apps/web/src/probe/ProbePane.tsx index 6cf493c..954009a 100644 --- a/apps/web/src/probe/ProbePane.tsx +++ b/apps/web/src/probe/ProbePane.tsx @@ -42,7 +42,7 @@ export function ProbePane({ ownerClass: ReadonlyMap; ownerChipText: (contract: string) => string; }) { - const { trace, cursor, setCursor, resolutions, outcome, callLog } = session; + const { trace, cursor, setCursor, resolutions, outcome, callCount } = session; const effectiveMode: ProbeMode = trace === null ? 'storage' : mode; const boundedCursor = trace === null ? 0 : Math.min(Math.max(cursor, 0), trace.encoded.stepCount - 1); @@ -89,7 +89,7 @@ export function ProbePane({
{outcome !== null && ( - CALL #{Math.max(callLog.length, 1)} · {outcome.fnName}() + CALL #{Math.max(callCount, 1)} · {outcome.fnName}() )}
diff --git a/packages/ui/src/tokens.css b/packages/ui/src/tokens.css index 2cd03f6..45d089b 100644 --- a/packages/ui/src/tokens.css +++ b/packages/ui/src/tokens.css @@ -76,6 +76,12 @@ --ss-glow-accent-strong: rgba(240, 169, 60, 0.7); --ss-color-scrim: rgb(0 0 0 / 55%); + /* Resolution-status tier (neutral by design: the border STYLE and the + = / ≈ / ? mark carry the status — owner hues stay identity-only and + pin cyan stays pin-only). */ + --ss-color-res-fg: #d5cec1; + --ss-color-res-border: #6a6152; + /* Spacing */ --ss-space-1: 0.25rem; --ss-space-2: 0.5rem;