Skip to content

fix(explorer): V2 lane follow-ups — reflow, freshness, scope register - #1539

Closed
ScriptedAlchemy wants to merge 6 commits into
codex/tracedecay-total-redesign-plan-reopenedfrom
cursor/explorer-v2-lanes-followup-7a21
Closed

ScriptedAlchemy wants to merge 6 commits into
codex/tracedecay-total-redesign-plan-reopenedfrom
cursor/explorer-v2-lanes-followup-7a21

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Sep 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

Follow-up to the Explorer V2 four-lane surface integrated on this branch at a685d76c8c / 9ed305827d (from the closed #1523). These five commits were verified in the browser after that integration and are not on the tip yet:

  • Wrapped lanes overlapped below lg (320px, 768px, 200% zoom): 1fr rows collapsed under the lane minimum. Lanes now stack at a fixed row height and the aperture scrolls. Lane headers put the name over the state chip so the four headers align regardless of detail length; hover gains the one restrained halo the design system calls for.
  • Source freshness and count evidence: each answered lane's footer prints the source's own freshness word and (clipped) watermark; the count row carries the shared pattern axis (measured when a real total was reported, associated when not).
  • Run register scope refusal: under a read-only or unresolved scope the register now reports Locked · no run created: the scope is read-only / Unknown … instead of Loading · admitting the source plan forever.
  • 320px facet selects could not shrink below their widest option and pushed the register 14px past the aperture; they are width-capped, with the lane name kept in the accessible name.

Motivation

The lookbook brief's release gates include 200% zoom, dense data, and reduced motion. The overlap and overflow were real gate failures visible in the production bundle; the register and freshness items are truth gaps (a run that will never be created shown as loading; a served page with no statement of how current it is).

Changes

  • Lane.tsx: header restructure, LaneGrid responsive rows (lg:auto-rows-fr / max-lg:auto-rows-[28rem]), hover halo + explicit focus outline, EvidencePattern on the count row, footer freshness/watermark (clipped, full value on title).
  • laneModel.ts: freshness/watermark on ready/partial (source progress, or envelope freshness for browse reads).
  • controller.ts: exposes writability. panels.tsx: RunRegister renders the scope refusal when no run exists.
  • ExplorerPage.tsx: FilterSelect gets name + max-w-[10rem].
  • Tests: laneModel.test.ts (freshness), evidence.test.ts, ExplorerPage.dom.test.tsx (register refusal, freshness attribute).

Test plan

  • npm run typecheck (dashboard) passes
  • npm test (dashboard): 184 files / 1808 tests pass on this tip
  • npm run build (dashboard) passes
  • Production-bundle browser journey (Chrome via Playwright, built app-dist, browse fixtures + scripted coordinator): 60/60 checks — including no lane overlap and no horizontal overflow at 768 / 320 / 200% zoom, reduced motion, light theme, locked register under a read-only scope, zero page/console errors.
  • Real daemon (tracedecay daemon run + tracedecay dashboard on an indexed 299-file sample): 4 exact code rows for semanticLane, fresh @ generation.v1.8cb7763b.0000… in the footer, hover peek with zero extra reads, selection with real symbol id and Open symbol in Code link.
  • cargo nextest run --workspace --no-fail-fast — no Rust changes
  • cargo clippy — no Rust changes

Checklist

  • CHANGELOG.md updated — N/A, generated at release
  • No secrets, credentials, or .env files included
  • Breaking changes documented (if any) — none; dashboard-only

320px: lanes stack without overlap
Read-only scope: locked lanes and a locked run register, nothing dispatched
Live daemon: 4 exact code rows, fresh watermark, sessions and knowledge served empty, semantic unregistered

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 5 commits September 17, 2026 03:39
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
@changeset-bot

changeset-bot Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 0180dba

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Integrated directly on #707; dashboard typecheck and the full 205-file / 1,980-test suite pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants