Repository navigation
gallery: flaky base reds made deterministic (changelog load hold, failed-step fixture, emoji popover height) - #33918
Conversation
…d-step play, emoji search) - pages.changelog (#sheet, #missing, #sheet-stack, #sheet-grid): the stage now shows the page once its first-frame hold (paintGate holdFirstPaint) settles, as the app's host does; the stage painted the day placeholders whenever the mock host's replies came after the first frame, and the days moved as the notes arrived (0 in one render, 0.25 in the next). - agent-pane.tool-errors#failed-step: the fixture ends its turn with a summary row, so the single-group run folds closed and the play's click opens it (it started open and the click closed it; the wait then raced the close animation). - pages.home-channels emoji popover: one height whatever the search leaves, so filtering a letter at a time no longer pulls the search field and grid down (it opens above the composer). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Gallery before/after for
States
Pick other states with a web and size checks: green Shipped in:
|
|
Owned by an agent session · session |
|
Found 1 test failure on Blacksmith runners: Failure
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (codex gpt-6-astra high, next-review, since=20261103T142144Z): BLOCK at cd87e62
BLOCK at cd87e62
Visual verdict: The failed-step after images hide the command group under “Worked for 42s,” breaking the intended interaction.
- [P1] [blocking] toolErrors.gallery.ts:185: Adding the summary hides the command group because
chat()suppliessummary.harnessbut omitssummary.family, which controls Claude grouping. Consequently,openRuncannot find “Ran 4 commands” and throws, making this gallery play fail deterministically. Set the fixture’ssummary.familyto"claude"and verify the existing play opens the failed step.
…llery-flaky-shifts # Conflicts: # webviews/src/pages/home-channels/styles.css
The summary row turned the turn into a Worked-for fold, so the play found no "Ran 4 commands" button. The turn stays as it came (no summary, the group opens by default) and the play opens it only if it is closed, so it no longer closes it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (codex gpt-6-astra high, next-review, since=20261103T150116Z): SHIP at 406d6ad
SHIP at 406d6ad
Visual verdict: no regressions in the 16 supplied before/after pairs; failed-step correctly remains expanded.
No correctness findings. Tests were not run because Bun and dependencies are unavailable.
Follow-ups: none
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Base-red-job: gallery health
What was red. On pushes to feat-cmux-next,
gallery healthfailed on states that were red in only one of the two jobs rendering them: base runs 41623839244 (f504928) and 41643573386 (5505bbd). On a push any red fails the run, so these flakes kept base red. Each fix below makes the state deterministic in code. No baseline is raised.pages.changelog#sheet(siblings#sheet-stack,#sheet-grid;#missing)#missing0.0206 vs 0.00336paintGate.holdFirstPaint, which the app's host honours). The gallery stage ignored that hold. Each mock host reply is its own timer, so whenever the notes landed after the first paint, the stage drew the day placeholders and the days moved as the notes arrived. The layout-shift entries namesection.clj-sectiongallery/frame/pages.ts: the changelog stage mounts hidden (display: none) and shows once the page's paint hold settles, asPagePaintProbe/PanePaintHolddo in the app. The page's own 400 ms bound still shows a page whose data is late.agent-pane.tool-errors#failed-stepwaitFordid not hold within 5000 ms (one job); click "Ran 4 commands" shift 0.0018 (the reply row rising)turnSummaryrow, soshapeTurndraws the turn as it came (turns.ts: no summary, not live). The run gets nofoldRun, and the group mounts open (theToolGroupRowdefault). The play's click then closed it: the reply rose as it shut, and the wait for.cv-command__failedraced the close animation (fold.tskeeps the body only while it closes). The final screenshots show the group closed.aria-expanded), so it no longer closes an open group. (A first try added a summary row; that turned the turn into a "Worked for" fold, so the play found no button. Reverted.)pages.home-channels#emoji-returnside="top") and was onlymax-height: 340px. Each letter of the search shrank the grid, which pulled the search field and grid down under the caret (div.hc-emoji-grid [0 12 0 -20]). How many letters rendered apart decided the score. The popover sizing dates from Lawrence's Channels composer (9f8d556); the gate it now trips is #30250'shome-channels/styles.css: the popover is one height (340px) whatever the search leaves. The grid fills it from the top (flex: 1; min-height: 0; align-content: start).Not fixed here:
agent-pane.composer-context#repo-worktrees-search(type "unread": the list moves 7.5 px, and in one job it also widens 11.8 px). The width change is the stage's Chromium drawing a classic scrollbar in the folder list that disappears mid-filter. Pages may not reserve a scrollbar gutter (scripts/cmux-next/check-scrollbars.shrefusesscrollbar-gutter: stable, and in the app the scrollers overlay). So the contained fix would belong in how the gallery stage draws scrollbars, a change that would affect every entry. I left it out of this PR.Interaction with #33627 (lowers the changelog rows to 0): on base those rows flake, so 0 rows would red more often. With this PR's paint hold in place, they score 0.
Risk. Gallery stage and fixture changes, plus one CSS rule on the home-channels emoji popover: a shipped visual change, a fixed popover height, so it no longer resizes while you type. No baseline files touched. The Chief inspector flake (
pages.chief-inspector#prompt) is in its own PR, #33915, since that path is Chief code.Agent session: agent session
🤖 Generated with Claude Code