Skip to content

webviews: one fix for the feat-cmux-next base reds (format, layers, pane-english, races, model picker side) - #20464

Merged
teamleaderleo merged 12 commits into
feat-cmux-nextfrom
op-next-icons/fmt-model-picker
Oct 14, 2026
Merged

teamleaderleo merged 12 commits into
feat-cmux-nextfrom
op-next-icons/fmt-model-picker

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

One combined fix for the feat-cmux-next base reds in web / react-apps-check (coordinator: #20464, #20475, #20470 and #20436 each fixed part, and each failed on the others' reds). Fixed forward under the standing rule for cmux-next base reds.

What it fixes

  1. Formatting (vp fmt). d9ce210 and d77476f left modelPickerLayout.ts, App.tsx, subagents.gallery.ts, SubagentStatusList.tsx and cardState.ts unformatted (from webviews: format modelPickerLayout.ts (react-apps-check base red) #20470 and webviews: clear base react-apps-check reds (summary layer token, formatting) #20475).
  2. check:layers. d77476f gave .acpmux-summary-card a raw z-index: 3. It now uses var(--layer-sticky): over the transcript, under file search (20). The diff panel and Inspector already hide the card. The summary card's auto-open checkbox also gets an accessible name (lint warning, from webviews: clear base react-apps-check reds (summary layer token, formatting) #20475).
  3. pane-english. The Cmd-I workspace context string goes through the pane's strings (from Base reds: Cloud helper string in 21 languages and the control cache Task owner (no bead) #20436).
  4. Test races in new-tab-style-switch and agent-pane-chat-column (from Base reds: Cloud helper string in 21 languages and the control cache Task owner (no bead) #20436).
  5. new-tab-picker-clip was a real clip. After d9ce210 (the picker's 220 px floor), a menu that opened before its models loaded measured short, so it stayed above the chip. Then it grew past the room, 94 px off the top of the window. The coordinator's call (reversible): keep Lawrence's floor and keep the menu inside the page.
    • The shared anchor (src/ui/anchor.ts) takes a minHeight and chooses the side for it. The picker passes its floor, so it opens below the chip when only that side fits.
    • Only when neither side fits does the menu take the larger room and scroll inside.
    • The test now also asserts the menu keeps its 220 px floor in its window.
  6. model-picker-height asserted d9ce210's old pinned style.height. It now asserts the bounds: no pinned height; at most the room and 480 px; at least the height it opened at, steady while filtering; re-measured on a new opening; the 220 px floor for an opening before the models arrive.

Verification

  • Red: the base's react-apps-check (every feat PR).
  • Local: model-picker-height, composer-menu-width, pane-english, new-tab-style-switch and theme-colors pass. check-layers, check-type-scale, check-system-blue, check-text-focus-rings and vp fmt --check (all webviews) pass.
  • The Chromium tests (new-tab-picker-clip, agent-pane-chat-column) run in CI.
  • In-app before/after of the New Tab model menu: fleet DEV builds of the base and this head are building. The recording follows in a comment.

Changelog

  • Fixed: The model menu on a New Tab page no longer runs off the top of a short window; it opens below the chip when there is no room above.

🤖 Generated with Claude Code

d9ce210 landed it unformatted, so `bun run check` (vp fmt) fails in
every feat-cmux-next PR's react-apps-check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 911b86e0-3af6-4640-8d99-1676f97b0c80

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@blacksmith-sh

blacksmith-sh Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs

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

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

all web/size checks green

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Passes: CI passes on d63a625427.

CI passes on d63a625427 (run 38537299872 attempt 1).

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.

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

CI fast guards passes on d63a625427 (https://github.com/manaflow-ai/cmux/actions/runs/38537299872). This covers only the fast guards, not CI: CI's result is the ci-status check, and the CI failure attribution comment names any failing test.

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Gallery

Review in feed

222 states changed: agent-pane.transcript/long-code, gallery.visual-media-board/all-previews, agent-pane.composer-pickers/model-menu, agent-pane.transcript/side-chat-acpmux, agent-pane.transcript/archive-chat-key, ... · 4 new states · 49 broken states · 111 play checks failed

Diff page and renders (the run's gallery-pr artifact)

State Before · after
agent-pane.transcript/long-code (Apple System Colors, webkit)
gallery.visual-media-board/all-previews (Apple System Colors, chromium)
agent-pane.composer-pickers/model-menu (Apple System Colors, chromium)
agent-pane.composer-pickers/model-menu (Apple System Colors Light, chromium)
agent-pane.transcript/long-code (Apple System Colors Light, webkit)
agent-pane.composer-pickers/model-menu (Apple System Colors, chromium)

216 more on the diff page.

Live preview (follows this branch; start it with scripts/gallery-live.sh up <branch> from an hq checkout):

  • agent-pane.transcript/long-code: /wt/op-next-icons-fmt-model-picker/?entry=agent-pane.transcript#/agent-pane.transcript/long-code
  • gallery.visual-media-board/all-previews: /wt/op-next-icons-fmt-model-picker/?entry=gallery.visual-media-board#/gallery.visual-media-board/all-previews
  • agent-pane.composer-pickers/model-menu: /wt/op-next-icons-fmt-model-picker/?entry=agent-pane.composer-pickers#/agent-pane.composer-pickers/model-menu
  • agent-pane.transcript/side-chat-acpmux: /wt/op-next-icons-fmt-model-picker/?entry=agent-pane.transcript#/agent-pane.transcript/side-chat-acpmux
  • agent-pane.transcript/archive-chat-key: /wt/op-next-icons-fmt-model-picker/?entry=agent-pane.transcript#/agent-pane.transcript/archive-chat-key
  • agent-pane.artifact-panel/markdown: /wt/op-next-icons-fmt-model-picker/?entry=agent-pane.artifact-panel#/agent-pane.artifact-panel/markdown
  • 118 more on the diff page

Play checks failed (0 px anchor movement, 0 layout shift, no frame over 33 ms unless the entry gives a reason):

  • gallery.visual-media-board/all-previews (Apple System Colors, chromium): step 1 click button "Pause previews": layout shift 0.0002 (limit 0) · step 2 click button "Play previews": layout shift 0.0002 (limit 0) · play: waitFor did not hold within 5000 ms
  • agent-pane.artifact-panel/markdown (Apple System Colors Light, webkit): play: no element for button "Open preview"
  • agent-pane.dictation/hide (Apple System Colors Light, webkit): play: no element for menuitem "Hide Dictation Button"
  • agent-pane.dictation/hide (Apple System Colors Light, chromium): play: no element for menuitem "Hide Dictation Button"
  • agent-pane.composer-pickers/model-press-drag-release (Apple System Colors Light, webkit): play: waitFor did not hold within 5000 ms
  • agent-pane.composer-pickers/model-press-drag-release (Apple System Colors, webkit): play: waitFor did not hold within 5000 ms
  • 606 more on the diff page

659 nondeterministic states differed from a second render of the same head (a clock or fixture leak) and are not counted as changes.

6574 unchanged · base 55c505d · head 0bd239a

d9ce210 raised the picker's maximum to its 220 px minimum when the
chip had less room, so the New Tab model menu ran 94 px above the
window (new-tab-picker-clip). The room now caps both minimums: a list
that loads late still never collapses the menu to its search field
where there is room, and a short room gives the menu all of it,
scrolling inside. model-picker-height asserts the bounds (steady while
filtering, the floor for an early opening) instead of a pinned height.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo teamleaderleo changed the title webviews: format modelPickerLayout.ts (base red) webviews: model picker base reds after d9ce210e (format, room cap, bounds test) Oct 14, 2026
teamleaderleo and others added 2 commits October 13, 2026 23:49
d77476f gave .acpmux-summary-card a raw z-index (3), which fails
check:layers in every feat PR. --layer-sticky keeps it over the
transcript and under file search (20); the diff panel and Inspector
already hide it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo and others added 2 commits October 13, 2026 23:55
From #20475 (summary card checkbox name, agent pane formatting), #20470
(modelPickerLayout formatting, already here) and #20436 (pane-english
on the Cmd-I workspace context, New Tab style and chat-column test
races), so react-apps-check can go green in one merge (coordinator:
the four PRs each failed on the others' reds).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The shared anchor takes a minHeight: the side is chosen for the taller
of the overlay's measured height and that floor. The model picker
passes its 220 px floor, so a menu that opens before its models load
opens below the chip when only that side fits it, instead of growing
off the top of the page. Only when neither side has the floor does the
menu take the larger room and scroll inside. new-tab-picker-clip also
asserts the floor holds in its window (coordinator's call, reversible).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo teamleaderleo changed the title webviews: model picker base reds after d9ce210e (format, room cap, bounds test) webviews: one fix for the feat-cmux-next base reds (format, layers, pane-english, races, model picker side) Oct 14, 2026
teamleaderleo and others added 5 commits October 14, 2026 00:26
…ther side has room

CI showed the room cap collapse the New Tab menu to 40 px. The floor wins again (Lawrence);
the menu opens on the side with room for it (Leo), and only when neither side has it does it
open below and run past the room, where the page scrolls to it. The test asserts that, and
logs the geometry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ows)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…icons/fmt-model-picker

# Conflicts:
#	webviews/src/agent-session/acpmux/summary/SubagentStatusList.tsx
…ct-apps-check red)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

cmux-next tour of d63a625427c86774de05fe44f251440711bbbf8e (run)

The tour job failed before the tour ran (build or setup); the run log has the output.

The tour produced no media.

Tours are data in scripts/cmux-next/media/tours: add a step or a tour file to show your feature.

@teamleaderleo
teamleaderleo merged commit 0f76762 into feat-cmux-next Oct 14, 2026
101 of 105 checks passed
@teamleaderleo
teamleaderleo deleted the op-next-icons/fmt-model-picker branch October 14, 2026 09:01
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Real-app before/after (base left, this PR right) in a DEV build: the menu keeps its 220px floor and opens below when above has no room, but in the real New Tab page it is cut at the composer card's edges on both base and head; the browser fixture does not reproduce it. Follow-up: cx-qe8fn.

picker real app before after

teamleaderleo added a commit that referenced this pull request Oct 14, 2026
…cale

Conflicts: AppearanceHandlers takes base's SettingChoiceActions binding (drops the
old setAnimationSpeed/setCenterFocusedColumn) and keeps the interfaceScale doc;
summary card and auto-open toggle take base (#20464); package.json keeps both
check:status-glyphs and the gen-type-scale check. Generated exports kept-ours by
the merge driver were rebuilt from base: settings schema (+interfaceScale row,
chromeFontSize hidden, ui.paneAnimations restored, hash recomputed), page strings
regenerated, defaults snapshot restores ui.paneAnimations. Shared
DesignSettings.interfaceScaleScript keeps PageWebView, AgentPaneView and
CmuxConfigSnapshot from growing past the god-file limits. Swift type-scale
baseline records base's SidebarCardTextButton weight and lowers Metrics.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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