Skip to content

gallery shift: the folder search field keeps its height; the commit form's scope line keeps its size - #33901

Closed
teamleaderleo wants to merge 4 commits into
feat-cmux-nextfrom
fix/gallery-shift-gitactions-composer
Closed

teamleaderleo wants to merge 4 commits into
feat-cmux-nextfrom
fix/gallery-shift-gitactions-composer

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Base red on feat-cmux-next: gallery health's layout-shift budgets for agent-pane.composer-context#repo-worktrees-search (0.0070 over its 0.00447 row) and agent-pane.changes-git-actions#include-new / #keyboard (0.0570 over 0.02985), reproduced on base in the replay at #33809 (comment). Leo's standing rule is no layout shift, so this stops the shift instead of raising the rows.

Folder search field (repo-worktrees-search). The folder popover has been a flex column with a max height since #26536. A long project list squeezed the search field (an <input>, so it may shrink) by about 8 px; typing a search shortened the list, the field grew back, and every row under it moved down. The field is now flex: none. In a short pane (260 px or less, which is also the gallery's 180 px frame for these states) the squeeze was what let a whole project row fit under the pinned actions (composer-location-strip.test.ts). There the field now has a fixed height 6 px shorter, with no bottom margin, so the row still fits and the field never changes height with the list. The size of the shift depended on how far the list overflowed, so the score also moved run to run on the same tree (0.00443 and 0.00699 on base); with the fix it is 0.00014 every time.

Commit form (changes-git-actions). The 0.0570 came from the inline scope row that #33796 has since split (it landed after the replay's base, so tip already scores 0 in the gallery). The hint line under the scope still changed height: All's longer hint plus Include new files wraps where Staged's short hint does not, which pushes down whatever sits under the form in the app. Both hints now share one grid cell and Include new files keeps its place while Staged is picked (visibility: hidden, so it is out of the tab order and accessibility tree, and disabled). The variants' layoutShiftMax: 0.05 allowances are gone.

Shift rows for these states come down to what the fixed tree measures (rows only go down).

Overlap: #32836 (open, conflicting) reserves the same commit-form space on the old one-row layout, bundled with menu fades; this applies the idea to the layout #33796 landed.

Performance

Same harness, same runner, run twice per arm without retries (gallery-matrix/health.ts --retries 0 over the component frames). Base 6dedb9cc163f against the first head (run https://github.com/manaflow-ai/cmux/actions/runs/41646133443); the final head re-measured in https://github.com/manaflow-ai/cmux/actions/runs/41670524470 and its follow-up run, and composer-location-strip.test.ts passes 37/37 there.

state base pass 1 base pass 2 head pass 1 head pass 2 row before → after
composer-context#repo-worktrees-search 0.00699 0.00443 0.00014 0.00014 0.00447 → 0.00014
changes-git-actions#include-new 0 0 0 0 0.02985 → 0
changes-git-actions#keyboard 0 0 0 0 0.02985 → 0
composer-context#repo-worktrees-open 0.01355 0.01355 0.01305 0.01305 0.01364 (unchanged)
composer-context#lane-checkouts-open 0.00105 0.00105 0.00143 0.00143 0.00106 (unchanged; limit 0.00183)
composer-context#duplicate-search 0.00424 0.02425 0.00492 0.00492 0.02581 (unchanged)
composer-context#computer-search 0.02531 0.02531 0.02531 0.02531 unchanged

new-tab#suggestions-session and subagent-split-pair#default showed as reds in this PR's gallery health. A same-runner replay of base 201216c52796 and this branch (run https://github.com/manaflow-ai/cmux/actions/runs/41668766616) scores suggestions-session 0.00966 to 0.01916 on both, so it is flaky on base. The split pair's ready-time budget is red on base and renders nothing this PR touches.

Risk: low. Two CSS rules and one render change in the commit form; no behaviour change beyond where the elements sit.

Agent session: agent session

🤖 Generated with Claude Code

…orm's scope line keeps its size

The folder popover is a flex column with a max height (#26536), so a long project list squeezed its
search field by about 8 px; a search that shortened the list let it grow back and moved every row
under it (agent-pane.composer-context#repo-worktrees-search, a base red at 0.0070 over 0.00447).
The field no longer shrinks.

The commit form's hint line now stacks both scope hints in one cell and keeps Include new files in
place (hidden while Staged is picked), so picking a scope never changes its height and the content
under the form never moves.

Shift rows lowered to what the fixed tree measures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
@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 719cdb7: 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=pr33901 -f ref=fix/gallery-shift-gitactions-composer -f platform=macos -f backend_mode=local

Unclear: web / react-apps-check failed: no known signature; failed step: Check webview test shards.

CI failed on 719cdb7767 (run 41673961787 attempt 1): 1 code, 1 unknown.

Job Verdict Why
web / react-apps-check (1) code a web test failed
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Failures:

  • seen on other PRs session-info-overlay-toggle.test.ts chromium: in a narrow pane, a busy Session Info pushes the chat and never covers the composer: failed (job)
  • seen on other PRs session-info-overlay-toggle.test.ts chromium: in a narrow pane, a busy Session Info pushes the chat and never covers the composer (dock ...: failed (job)
  • seen on other PRs session-info-overlay-toggle.test.ts webkit: in a narrow pane, a busy Session Info pushes the chat and never covers the composer: failed (job)
  • seen on other PRs session-info-overlay-toggle.test.ts webkit: in a narrow pane, a busy Session Info pushes the chat and never covers the composer (dock di...: failed (job)
Matched log lines
web / react-apps-check (1): (fail) chromium: in a narrow pane, a busy Session Info pushes the chat and never covers the composer [1672.63ms]

Not re-run automatically: web / react-apps-check (1), web / react-apps-check are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: web / Web status; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules
red: web / react-apps-check; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules
red: web / react-apps-check (1); no finished base run on 201216c to compare; do not merge until green; see lane-rules

Gallery before/after for 719cdb7: 16 states rendered, 12 images differ, 3301 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 41673961710 -R manaflow-ai/cmux -n gallery-advisory-33901-719cdb77678961ba02ed789b1b8c7dd3e3c8c43c (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.changes-git-actions/toolbar Apple System Colors Light unchanged 0% own GitActions.gallery.tsx
agent-pane.changes-git-actions/toolbar Apple System Colors unchanged 0% own GitActions.gallery.tsx
agent-pane.changes-git-actions/commit-form Apple System Colors changed 12.8% own GitActions.gallery.tsx
agent-pane.changes-git-actions/commit-form Apple System Colors Light changed 12.5% own GitActions.gallery.tsx
agent-pane.changes-git-actions/include-new Apple System Colors Light unchanged 0% own GitActions.gallery.tsx
agent-pane.changes-git-actions/include-new Apple System Colors unchanged 0% own GitActions.gallery.tsx
agent-pane.changes-git-actions/keyboard Apple System Colors Light changed 0% own GitActions.gallery.tsx
agent-pane.changes-git-actions/keyboard Apple System Colors changed 0% own GitActions.gallery.tsx
agent-pane.changes-git-actions/busy Apple System Colors Light changed 12.5% own GitActions.gallery.tsx
agent-pane.changes-git-actions/busy Apple System Colors changed 11.8% own GitActions.gallery.tsx
agent-pane.changes-git-actions/push-refused Apple System Colors Light unchanged 0% own GitActions.gallery.tsx
agent-pane.changes-git-actions/push-refused Apple System Colors unchanged 0% own GitActions.gallery.tsx
agent-pane.cloud-run-designs/row Apple System Colors Light unchanged 0% own composerLocation.css
agent-pane.cloud-run-designs/row Apple System Colors unchanged 0% own composerLocation.css
agent-pane.cloud-run-designs/bare Apple System Colors Light unchanged 0% own composerLocation.css
agent-pane.cloud-run-designs/bare Apple System Colors unchanged 0% own composerLocation.css
agent-pane.cloud-run-designs/chip Apple System Colors Light unchanged 0% own composerLocation.css
agent-pane.cloud-run-designs/chip Apple System Colors unchanged 0% own composerLocation.css
agent-pane.composer-context/closed Apple System Colors Light unchanged 0% own composerLocation.css
agent-pane.composer-context/closed Apple System Colors unchanged 0% own composerLocation.css
agent-pane.composer-context/folder-menu Apple System Colors Light changed 3.16% own composerLocation.css
agent-pane.composer-context/folder-menu Apple System Colors changed 2.61% own composerLocation.css
agent-pane.composer-context/folder-menu-hover Apple System Colors Light changed 4.95% own composerLocation.css
agent-pane.composer-context/folder-menu-hover Apple System Colors changed 4.39% own composerLocation.css
agent-pane.composer-context/folder-menu-keyboard Apple System Colors Light changed 4.96% own composerLocation.css
agent-pane.composer-context/folder-menu-keyboard Apple System Colors changed 4.4% own composerLocation.css
agent-pane.composer-context/menu-grid-legacy Apple System Colors Light unchanged 0% own composerLocation.css
agent-pane.composer-context/menu-grid-legacy Apple System Colors unchanged 0% own composerLocation.css
agent-pane.composer-context/menu-grid-shared Apple System Colors Light unchanged 0% own composerLocation.css
agent-pane.composer-context/menu-grid-shared Apple System Colors unchanged 0% own composerLocation.css
agent-pane.composer-context/menu-grid-compact Apple System Colors Light unchanged 0% own composerLocation.css
agent-pane.composer-context/menu-grid-compact Apple System Colors unchanged 0% own composerLocation.css

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent claude-opus-5-5 medium, correctness): SHIP at 6744037
Visual verdict: no images; the change only stops the folder search field and the commit form's hint line from changing height.
Checked: the search input is a direct child of the popover's flex column (Autocomplete.Root renders no wrapper), the short-pane and searchless env picker rules still hold, the hidden checkbox and hint are out of the tab order and accessibility tree, withNew still ignores Include new files under Staged, and no test expects the checkbox absent.
Follow-ups: if composer-context#repo-worktrees-search ever flakes at its 0.00014 row, raise the row slightly rather than re-adding a per-variant allowance.

@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 4 test failures on Blacksmith runners:

Failures

Test View Logs
---/--- View Logs
test/session-info-overlay-toggle.test.ts/session-info-overlay-toggle.test View Logs
test/session-info-overlay-toggle.test.ts/session-info-overlay-toggle.test View Logs
test/session-info-overlay-toggle.test.ts/session-info-overlay-toggle.test View Logs

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

Its second ArrowDown highlights the cmux row below the list's fold, and the list scrolls it into
view. With the search field at its full height the list is 8 px shorter, so that scroll is 14 px
instead of 3 px (0.00536 against 0.00106). It is the list scrolling to the highlighted row, not a
layout shift, so the row follows it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent claude-opus-5-5 medium, correctness): SHIP at ae14032
Visual verdict: no images; nothing visible changes except that two elements stop changing height.
Checked: the one new commit raises composer-context#lane-checkouts-open to 0.00536. That movement is the list scrolling the highlighted row into view after ArrowDown (base already scrolled 3 px; with the search field at full height the list is 8 px shorter, so it scrolls 14 px). It is not a layout shift, and both shards measured the same value. The earlier findings at 6744037 still hold. The Tier routing red is a base red, fixed on base by #33912 and #33917.
Follow-ups: have the shift probe ignore a combobox viewport's own scroll-into-view so keyboard plays can go back to 0, and if repo-worktrees-search ever flakes at 0.00014, raise its row slightly.

@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.

@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 3, 2026 15:18 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 3, 2026 15:19 Inactive

@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 (next-review patch-id; carried, since=20261103T152618Z): SHIP at 1a78c84

The independent SHIP at ae14032 carries to this head: the PR's own change (git diff $(git merge-base feat-cmux-next HEAD) HEAD) has the same git patch-id --verbatim (dc4e5846c787c327) at both heads, and no merge between them was resolved by hand. Nothing new to review. A newer BLOCK, or any change to the PR's own diff, ends the carry.

…r height

In a short pane the field used to give up its height to the list so a whole project row fit
under the pinned actions (composer-location-strip.test.ts); flex: none alone failed that test.
The field there is now a fixed 6 px shorter with no bottom margin: the row still fits, and the
field no longer changes height with the list. The gallery frame for these states is a short pane.

repo-worktrees-open and lane-checkouts-open go back to their base rows (0.01305 and 0.00143
measured, both twice).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent claude-opus-5-5 medium, correctness): SHIP at 719cdb7
Visual verdict: no images. In panes 260 px tall or less, the folder search field is a fixed 22 px (scaled), which is no smaller than the squeezed field was before.
Checked: the short-pane rule has the same specificity as the base rule and comes after it. The env picker's searchless field is absolutely positioned and unaffected. composer-location-strip.test.ts passes 37/37 on the fleet. No shift row goes above base: repo-worktrees-open and lane-checkouts-open are back on their base rows, and the measured values are under their limits.
Follow-ups: #33929 (the shift probe counts a list's keyboard scroll-into-view); raise the repo-worktrees-search row slightly if it ever flakes.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Superseded by #32836 (merged as ee78bc6). It landed the same two fixes: the folder search field no longer shrinks (flex-shrink: 0, plus a short-pane pinned budget), and the commit form reserves both scope hints and Include new files. Base gallery health at ee78bc6 (https://github.com/manaflow-ai/cmux/actions/runs/41677316987) no longer lists changes-git-actions#include-new, #keyboard or composer-context#repo-worktrees-search past their rows. The only thing left here was lowering those rows, and I measured that on this branch's tree, not #32836's, so I'm not carrying it over. Follow-up on the shift probe: #33929.

@teamleaderleo
teamleaderleo deleted the fix/gallery-shift-gitactions-composer branch November 3, 2026 17:09

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 719cdb77 Deployed Nov 3, 2026 by teamleaderleo via wait for same-key tree publisher #106805
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