Skip to content

feat: consolidate the WebMCP surface into the header and finish the icon pass - #13

Merged
ribdsp merged 3 commits into
mainfrom
feat/ui-consolidate-webmcp-surface
Aug 29, 2026
Merged

ribdsp merged 3 commits into
mainfrom
feat/ui-consolidate-webmcp-surface

Conversation

@ribdsp

@ribdsp ribdsp commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Follow-up to #12. Three commits, each reviewable on its own.

What changed

refactor: fold the docked WebMCP chip into the header pill
The explanation panel that was docked above the timeline is now a dropdown from the header pill. Two chips stating the same tool count made WebMCP read as decoration, and the docked one covered the right end of the axis — where the markers a reader is meant to click live.

feat: swap the speed segments for a compact upward menu
0.5x / 1x / 2x as three segments cost width the scrubber needs at 720px, which is the width this gets judged at. The menu opens upward so it lands on the replay, not the timeline.

feat: give the agent column and the empty states a shape per action
Status shape per queued task, a distinct mark per example prompt, verb shapes in the shortcut legend, a ghost axis on the empty timeline, and a GitHub mark in the header. Empty states now name the condition before the invitation.

Invariants checked, not assumed

  • AGENT_LANE_INPUT_ID and SCRUBBER_ID unchanged, so the a and p shortcuts still bind
  • The three degraded banner states still render full-width and in flow, with role="alert" / role="status" and no close control. Only the explanation became dismissible; the health row did not
  • No eval( or new Function outside the test that greps for them
  • npx tsc --noEmit clean; npm test 293/293 across 24 files

Known follow-ups, deliberately not in this PR

  • The activity feed's authorship is now a 13px icon rather than the word agent / you. Shape distinguishes the two so no accessibility rule is broken, but the words were more legible on a compressed encode — worth a second look before recording.
  • text-faint contrast: ~30 sites between 2.89:1 and 3.09:1. The fix is retiring faint for prose and keeping it for WCAG-exempt uses, which is a colour-system change rather than a tweak.

ribdsp added 3 commits August 30, 2026 04:18
Two chips stating the same tool count taught the eye that WebMCP was
decoration. The header pill is now both the health signal and the trigger
for the catalogue, and the docked overlay above the timeline is gone --
it covered the end of the axis, where the markers a reader is meant to
click live.

The rule that a degraded surface must not be hideable is unchanged, and
is still discharged by the banner row: full width, in flow, no close
control. Only the explanation moved.

Two chevrons rather than one rotated, so open-vs-closed survives
prefers-reduced-motion.
Three equal rectangles cost width the scrubber needs at 720px, which is
the width this is judged at. A single trigger reading "1x" answers the
question the control exists for. The menu opens upward so it lands on the
replay rather than on the timeline.

The transport button is filled and inverted against ink -- a 14px
hairline triangle does not survive being video.
Icons where the glyph carries the action rather than decorating it: a
status shape per queued task, a distinct mark per example prompt, a verb
shape in the shortcut legend, and a ghost axis on the empty timeline so a
blank strip reads as waiting rather than as failed to draw.

Empty states now name the condition before the invitation -- "nothing is
loaded" precedes "load a sample".

Adds a GitHub mark to the header. Lucide dropped brand icons, so the path
is inline.

AuthorBadge gains an icon variant for the activity feed, where the row is
already prose and a second word fights the line. The word stays in
sr-only and in the tooltip; the shape differs between agent and human, so
nothing here depends on telling violet from blue.
@vercel

vercel Bot commented Aug 29, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
traces Ready Ready Preview Aug 29, 2026 9:19pm

@ribdsp
ribdsp merged commit 3e2e204 into main Aug 29, 2026
5 checks passed
@ribdsp
ribdsp deleted the feat/ui-consolidate-webmcp-surface branch August 30, 2026 11:44

This branch was successfully deployed

1 active deployment
Preview — ca9d904f Deployed Aug 29, 2026 by vercel[bot]
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.

1 participant