gallery: agent-pane entries show the product again (renamed controls, raced plays, blank stages)
Fourteen agent-pane gallery states had stopped showing the product. Each play hit a missing element, or the stage went blank once its play ran. Gallery fixtures and plays only; no product code changes.
Controls renamed or moved (the product changed; the entries follow it)
session-sidebar#search-filtered,#search-clears: the search field is "Search chats" (#19895). The sidebar now fills anacpmux-shelllike the pane's, so filtering no longer moves the rail.start-folder#home-question,#root-refused: the home row reads "~" (#22724); the play finds it by its title.permission-panel#allowance: Revoke moved to the composer's access menu in #20303, so it was moved, not lost. The play asserts the old card is gone and that the revoke still reaches the host.bottom-stack#pr-queue: the composer-context strip shows only before a chat's first send (#20869, #21363). The play asserts it stays away.
Plays that raced the stage
header-tools#pull-request-status,#pull-request-merge: wait for the PR chip before clicking it.dictation#hide: opens the button's menu with a real context menu.
Stages that drew one part alone
harness-health-notice#dismissed,#sudo-update,file-search#escape,home-lists#empty: each draws the pane's frame with the real composer. Not Now, Escape or an empty home now leave the composer in view, not an empty stage. The notice's anchor is the composer.
Test
webviews/test/gallery-agent-pane-entries.test.ts (Chromium on the gallery dev server). It runs each of the 13 states and checks that it reaches ready "1" with no page error and no play error. It also checks its anchors and layout shift. For the blank stages it checks the pane's frame is still there, and that the component drew what the variant is for: no notice after Not Now or for a sudo update, no list rows in an empty home. Long frames don't fail it.
cd webviews && CMUX_BROWSER_TESTS=1 bun test test/gallery-agent-pane-entries.test.ts
- base
8e797b7aaf9with the test copied in: 0 pass, 14 fail (no element for input[aria-label="Search sessions"],no element for option "/\/Users\/you$/",no element for .acpmux-header-pr,no element for menuitem "Hide Dictation Button", blank stages) - head, merged with base
9aa00c6e20f: 13 pass
Observed / Not run
- Observed: the test above, red on base and green on head. On a cold dev server, the first run after the base merge hit the shared
warmDevServer100 s limit; the rerun passed 13/13.prepush-gate.py: no new violations. scripts/web-lint.sh: everything passes except formatting insrc/agent-session/acpmux/App.tsx, which is a base red at9aa00c6e20f. This PR doesn't touch that file.- Not fixed here, found while checking these entries:
session-sidebar#rail-keyboardtimes out after ArrowDown/End.session-sidebar#view-switching-animation-auditfinds no.acpmux-sidebar-activewhen projects are grouped.harness-health-notice#restart-after-turnlayout-shifts about 0.002 because Not Now moves when the main action appears.reply-image#localstays as it is. The React Compiler cachesusePathInfo's reads (chips/linkStore.ts) by path, so the host's answer never redraws a local image. Review found that seeding the fixture here hid that bug. The product fix and this entry follow in their own PR.
- The "waitFor did not hold" plays are left to the gallery-perf lane's
accessibleName()fix.
No capture: gallery fixtures only. The gallery advisory run shows these states.
Changelog
none
Agent session: huge-blue
🤖 Generated with Claude Code