feat: consolidate the WebMCP surface into the header and finish the icon pass - #13
Merged
Merged
Conversation
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.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
Follow-up to #12. Three commits, each reviewable on its own.
What changed
refactor: fold the docked WebMCP chip into the header pillThe 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 menu0.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 actionStatus 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_IDandSCRUBBER_IDunchanged, so theaandpshortcuts still bindrole="alert"/role="status"and no close control. Only the explanation became dismissible; the health row did noteval(ornew Functionoutside the test that greps for themnpx tsc --noEmitclean;npm test293/293 across 24 filesKnown follow-ups, deliberately not in this PR
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-faintcontrast: ~30 sites between 2.89:1 and 3.09:1. The fix is retiringfaintfor prose and keeping it for WCAG-exempt uses, which is a colour-system change rather than a tweak.