Skip to content

Hold the verdicts when a worker joins a full status line; green the e2e suite - #30

Merged
cailmdaley merged 1 commit into
mainfrom
design/ws-e2e-green
Oct 7, 2026
Merged

cailmdaley merged 1 commit into
mainfrom
design/ws-e2e-green

Conversation

@cailmdaley

Copy link
Copy Markdown
Owner

node e2e/workspace.mjs now passes in full: 113 passed, 0 failed. Before this PR, origin/main failed three of its tests.

"Nothing moves… (narrow)": a real layout jump, fixed in CSS

On a narrow fiber page (1000 px, sidebar open), the § status line holds the kicker, the roles chip (#23) and the act zone, and it was already full. The act zone had flex: 1; min-width: 0, so it shrank below its contents. When a worker started, its pill pushed Temper and Discard 3.3 px past the line's right edge.

Fix, in workspace/verdicts.css:

  • On a wide page the status line is one line (flex-wrap: nowrap). The phone keeps its wrap.
  • The kicker (flex: none) and the act zone (flex: 1 0 auto) hold their widths.
  • The roles, which already truncate with an ellipsis "when the line runs out", give way.

Measured in the harness after the fix: the verdict pair's left edge stays at 1347.6 px with or without the pill, and the roles narrow from 54.6 px to about 51 px ("SURVEY…").

The layout-shift test now names exactly that give and nothing more: the roles get narrower with their left edge held, the act zone gets wider with its right edge held, and any other movement fails.

Narrow, no worker A worker starts: the roles give way, the verdicts hold

"Say it once" (desktop and phone): the test was stale, not the chip

The test's structure check expected the header to contain only ws-prose-status and ws-fiber-acts. That predates the roles chip, which sits there on purpose. The check now expects kicker, roles, act zone.

The test's real purpose is uniqueness: each piece of text is said once on a page. That still holds. The page inventory shows the role name "surveyor" once, in the header, and nowhere else on the page or in the chrome.

Verification

  • node e2e/workspace.mjs: 113 passed, 0 failed (it was 110/3 on origin/main before this PR). "Phone page bar steps aside…", which flaked once on main, passed here.
  • cd ui && npm test: 126 files, 1535 tests pass.
  • npm run build passes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XEBcfWbydFqYZm6DhLvCqT

…2e suite

On a narrow fiber page the § line (kicker, roles, act zone) was full, and
the act zone shrank below its contents, so a worker's pill arriving pushed
Temper and Discard 3.3 px past the line's end. The line is now one line on
a wide page, the kicker and the act zone hold their widths, and the roles
give way with their ellipsis. The layout-shift test names that give
precisely: roles narrow with their left edge held, the act zone widens with
its right edge held, nothing else moves.

The say-it-once structure check predates the roles chip; it now expects the
kicker, the roles, then the act zone. The role name appears once on the
page, as the check intends.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XEBcfWbydFqYZm6DhLvCqT
@cailmdaley
cailmdaley merged commit 971ad7f into main Oct 7, 2026
2 of 4 checks passed
@cailmdaley
cailmdaley deleted the design/ws-e2e-green branch October 7, 2026 13:25
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