Skip to content

gallery: flaky base reds made deterministic (changelog load hold, failed-step fixture, emoji popover height) - #33918

Merged
teamleaderleo merged 4 commits into
feat-cmux-nextfrom
base-red-gallery-flaky-shifts
Nov 3, 2026
Merged

teamleaderleo merged 4 commits into
feat-cmux-nextfrom
base-red-gallery-flaky-shifts

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Base-red-job: gallery health

What was red. On pushes to feat-cmux-next, gallery health failed 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.

State Red Cause Fix
pages.changelog#sheet (siblings #sheet-stack, #sheet-grid; #missing) load shift 0.2480 vs 0.13646 (siblings 0.2226 and 0.2494, which also score 0 in other jobs); #missing 0.0206 vs 0.00336 The page holds its first frame until its first screen's notes are in (paintGate.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 name section.clj-section gallery/frame/pages.ts: the changelog stage mounts hidden (display: none) and shows once the page's paint hold settles, as PagePaintProbe/PanePaintHold do in the app. The page's own 400 ms bound still shows a page whose data is late.
agent-pane.tool-errors#failed-step play waitFor did not hold within 5000 ms (one job); click "Ran 4 commands" shift 0.0018 (the reply row rising) The fixture from #33183 has no turnSummary row, so shapeTurn draws the turn as it came (turns.ts: no summary, not live). The run gets no foldRun, and the group mounts open (the ToolGroupRow default). The play's click then closed it: the reply rose as it shut, and the wait for .cv-command__failed raced the close animation (fold.ts keeps the body only while it closes). The final screenshots show the group closed. The play clicks the group only when it is 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-return type "rocket" shift 0.0827 vs 0.05701 (varies 0.0096 to 0.0351 in its last entry) The emoji popover opens above the composer (side="top") and was only max-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's home-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.sh refuses scrollbar-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

…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
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 406d6ad: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr33918 -f ref=base-red-gallery-flaky-shifts -f platform=macos -f backend_mode=local

Gallery before/after for 406d6ad: 16 states rendered, 4 images differ, 3297 more touched states not rendered. Images are in the run's artifact, not on this public PR; the independent review of this head reads them on its own, so the PR needs no hand-made screenshots of these states.

gh run download 41656919098 -R manaflow-ai/cmux -n gallery-advisory-33918-406d6add3573996aef5ca2bdd26958ce64fcfd9e (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.tool-errors/claude-code Apple System Colors Light unchanged 0% own toolErrors.gallery.ts
agent-pane.tool-errors/claude-code Apple System Colors unchanged 0% own toolErrors.gallery.ts
agent-pane.tool-errors/codex Apple System Colors Light unchanged 0% own toolErrors.gallery.ts
agent-pane.tool-errors/codex Apple System Colors unchanged 0% own toolErrors.gallery.ts
agent-pane.tool-errors/mcp Apple System Colors Light unchanged 0% own toolErrors.gallery.ts
agent-pane.tool-errors/mcp Apple System Colors unchanged 0% own toolErrors.gallery.ts
agent-pane.tool-errors/failed-step Apple System Colors changed 1.98% own toolErrors.gallery.ts
agent-pane.tool-errors/failed-step Apple System Colors Light changed 1.95% own toolErrors.gallery.ts
agent-pane.tool-errors/exit-opened Apple System Colors Light changed 1.9% own toolErrors.gallery.ts
agent-pane.tool-errors/exit-opened Apple System Colors changed 0.061% own toolErrors.gallery.ts
pages.home-channels/stable-thread-counts Apple System Colors Light unchanged 0% own styles.css
pages.home-channels/stable-thread-counts Apple System Colors unchanged 0% own styles.css
pages.home-channels/stable-picker-counts Apple System Colors Light unchanged 0% own styles.css
pages.home-channels/stable-picker-counts Apple System Colors unchanged 0% own styles.css
pages.home-channels/normal Apple System Colors Light unchanged 0% own styles.css
pages.home-channels/normal Apple System Colors unchanged 0% own styles.css
pages.home-channels/channel Apple System Colors Light unchanged 0% own styles.css
pages.home-channels/channel Apple System Colors unchanged 0% own styles.css
pages.home-channels/thread Apple System Colors Light unchanged 0% own styles.css
pages.home-channels/thread Apple System Colors unchanged 0% own styles.css
pages.home-channels/thread-long Apple System Colors Light unchanged 0% own styles.css
pages.home-channels/thread-long Apple System Colors unchanged 0% own styles.css
pages.home-channels/switcher Apple System Colors Light unchanged 0% own styles.css
pages.home-channels/switcher Apple System Colors unchanged 0% own styles.css
pages.home-channels/switcher-filtered Apple System Colors Light unchanged 0% own styles.css
pages.home-channels/switcher-filtered Apple System Colors unchanged 0% own styles.css
pages.home-channels.avatar-initials/names Apple System Colors Light unchanged 0% own styles.css
pages.home-channels.avatar-initials/names Apple System Colors unchanged 0% own styles.css
pages.home-channels.people-picker-loading/pending Apple System Colors Light unchanged 0% own styles.css
pages.home-channels.people-picker-loading/pending Apple System Colors unchanged 0% own styles.css
pages.home-channels.people-picker-loading/loaded Apple System Colors Light unchanged 0% own styles.css
pages.home-channels.people-picker-loading/loaded Apple System Colors unchanged 0% own styles.css

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

web and size checks: green

Shipped in:

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026
@blacksmith-sh

blacksmith-sh Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
test_every_listed_hook_is_one_glaeda_released_with_the_check (main.SigningHooksInSt
epWithGlaedaTests.test_every_listed_hook_is_one_glaeda_released_with_the_check)/
test_every_listed_hook_is_one_glaeda_released_with_the_check (main.SigningHooksInSt
epWithGlaedaTests.test_every_listed_hook_is_one_glaeda_released_with_the_check)
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@cursor

cursor Bot commented Nov 3, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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 teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

  1. [P1] [blocking] toolErrors.gallery.ts:185: Adding the summary hides the command group because chat() supplies summary.harness but omits summary.family, which controls Claude grouping. Consequently, openRun cannot find “Ran 4 commands” and throws, making this gallery play fail deterministically. Set the fixture’s summary.family to "claude" and verify the existing play opens the failed step.

teamleaderleo and others added 2 commits November 3, 2026 06:44
…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
@cursor

cursor Bot commented Nov 3, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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 teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@teamleaderleo
teamleaderleo merged commit 38fa1fd into feat-cmux-next Nov 3, 2026
175 of 179 checks passed
@teamleaderleo
teamleaderleo deleted the base-red-gallery-flaky-shifts branch November 3, 2026 15:26

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 406d6add Deployed Nov 3, 2026 by teamleaderleo via cmux-tui tree preflight #106523
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant