Repository navigation
cmux-next: size the composer plus menu to content - #17534
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xt-popover-anchor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xt-popover-anchor Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xt-popover-anchor Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xt-popover-anchor Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xt-popover-anchor
…xt-popover-anchor Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
This comment has been minimized.
This comment has been minimized.
|
Unclear: CI failed on
Not re-run automatically: Written by |
|
|
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
|
The remaining red checks are inherited from
The follow-up source diff is limited to composer menu sizing and the anchor harness, and the generated agent-pane index is current via the pinned Bun regeneration check. |
…xt-popover-anchor
…xt-popover-anchor Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
b1c55ad to
f8e40b2
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Fleet dogfood is currently blocked by a controller outage, not by the source change. The durable exact-head build job |
|
The final head |
|
Batch queue: dropped from batch
Next: merge feat-cmux-next, resolve, push. |
…xt-plus-menu Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Batch local-20261006-153816: #17534's owner pushed while its formatting ran; the report showed a raw git push error. python3 -m unittest tests.test_next_batch: 1 error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Batch queue: pushed |
|
Batch queue: green. Batch stack Next: land it yourself with gh-merge-green on this receipt. |
|
Batch queue: green. Batch stack Next: land it yourself with gh-merge-green on this receipt. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Exact-head validation for
|
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37504816847 at 022dce4 failed: cmux-next swift test. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37508043338 at d405637 failed: cmux-next swift test. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/37505518483 at 220b743 failed: cmux-next swift test. |
* test(cmux-next): batch dispatch runs every dispatch-gated job (red) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci(cmux-next): run every tier when dispatched on a next-batch branch Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): cmux-next batch queue selection, stacking and bisect (red) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci(cmux-next): implicit batch queue for feat-cmux-next Debounced PR events dispatch one batch: stack eligible PRs on feat-cmux-next, rebuild conflicted generated files, run every cmux-next tier and a fleet production build on the stack, then land each PR with gh-merge-green or bisect a red stack to its culprit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): address batch workflows by id, not file name feat-cmux-next is not the default branch, so the Actions API cannot find a workflow file that exists only there by its name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): batch keeps one base and never blames a PR for a fleet failure Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): batch skips workflow changes and stays off until enabled GitHub refuses the job token's push or merge of a .github/workflows change, so those PRs land by hand. Debounce dispatches only when CMUX_NEXT_BATCH_ENABLED is 1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): create batch branches at the base before pushing the stack Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): batch pushes and merges with an App token; terse bot comments Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(ci): batch queue App token, off switch and workflow PRs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): batch queue serve loop, remote regeneration and local fleet build (red) python3 -m unittest tests.test_next_batch: 14 failures, all in the new ServeDebounce, RemoteRegeneration, LocalController and regen workflow tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(ci): serve the batch queue under a gh login; regenerate on runners next_batch.py serve polls open PRs, debounces like the debounce job and runs one batch at a time with the operator's gh login, so it runs without the batch App. Its pushes and merges start CI, so nothing is re-dispatched after landing; the fleet build uses the host's cmux-ci. Generators run the stack's code, so they no longer run on the controller: regen-linux (web, SDK) and regen (Swift) check out the stack with a read-only token and return a patch that the controller applies and pushes. python3 -m unittest tests.test_next_batch: 41 pass (14 failed on 552c900). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): Swift regeneration runs the workflow ref's generator (red) next-batch/20261006: the regen job ran the stack's own copy of regenerate-swift-exports.sh, which the stack does not have yet (exit 127). python3 -m unittest tests.test_next_batch: 1 failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): run the Swift export generator from the workflow's ref The stack checkout keeps the stack's code; only the generator script comes from the trusted ref. python3 -m unittest tests.test_next_batch: OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): retry a mini job that was refused before writing a result (red) next-batch/20261006: the Swift regen job was refused at runner setup (a fleet build was waiting for the host) and the batch gave up. python3 -m unittest tests.test_next_batch: 3 errors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): dispatch a mini job once more when it wrote no result python3 -m unittest tests.test_next_batch: OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): a production fleet build passes no backend mode (red) cmux-ci build --production --backend-mode local: "production builds cannot use offline backend mode". python3 -m unittest tests.test_next_batch: 1 failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): submit the production fleet build without a backend mode python3 -m unittest tests.test_next_batch: OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): the queue formats a PR's webviews before landing it (red) next-batch/20261006: #17527 and #17537 were validated green but web / react-apps-check failed on formatting and blocked landing. python3 -m unittest tests.test_next_batch: 5 failing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): format a PR's webviews on a runner before landing it A PR changing webviews/ whose only red is web formatting stays eligible. Before landing it, regen-linux runs bun run check:fix (formatter and lint autofix) on its head and the queue pushes the patch to the PR's branch; gh-merge-green waits for the rerun. python3 -m unittest tests.test_next_batch: 50 OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): serve posts a receipt for owners instead of merging (red) Landing from the queue host is not allowed yet; owners land on the receipt. A receipt names the heavy jobs that ran, since cmux-next.yml skips them on next-batch/* until this PR is on feat-cmux-next. python3 -m unittest tests.test_next_batch: 4 failing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): serve posts a receipt and owners land, unless --land python3 -m unittest tests.test_next_batch: 54 OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): page the open-PR query and retry a gateway timeout (red) next_batch.py select: gh api graphql failed: gh: HTTP 504 (100 PRs with files and checks in one query). python3 -m unittest tests.test_next_batch: 2 failing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): page the open-PR query 30 at a time and retry a 5xx once python3 -m unittest tests.test_next_batch: OK; next_batch.py select: OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): a local run posts receipts unless --land (red) python3 -m unittest tests.test_next_batch: 1 failing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): a local run posts receipts unless --land python3 -m unittest tests.test_next_batch: OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): an owner push during formatting waits for the next batch (red) Batch local-20261006-153816: #17534's owner pushed while its formatting ran; the report showed a raw git push error. python3 -m unittest tests.test_next_batch: 1 error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): an owner push during formatting leaves the PR for the next batch python3 -m unittest tests.test_next_batch: OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): a PR with a green receipt at its head is not validated again Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): the queue never pushes to a branch it does not own (red) An opted-in PR by another author got the formatting push too. python3 -m unittest tests.test_next_batch: 1 failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): push formatting only to batch authors' branches python3 -m unittest tests.test_next_batch: OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): serve reports a batch author's PR closed by someone else (red) Detect and alert only: number, actor and time to the coordinator; one alert for 3 or more within 10 minutes. python3 -m unittest tests.test_next_batch: 4 errors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(ci): serve reports a batch author's PR closed by someone else The minute poll runs on its own thread, so it keeps going while a batch runs; a PR leaving the open set costs one lookup. Detect and alert only. python3 -m unittest tests.test_next_batch: 63 OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(ci): retry a truncated GraphQL reply once (red) serve log 20:34 and 20:37 UTC: gh api graphql failed: unexpected end of JSON input. python3 -m unittest tests.test_next_batch: 1 failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): retry a truncated GraphQL reply once python3 -m unittest tests.test_next_batch: OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Problem
The composer
+button opened its attachment menu as a narrow, tall capsule. Its percentage width limits resolved against the 32px picker, so menu rows wrapped into a full-height scrollbar.Change
+case to the popover alignment harness with natural-size bounds.Validation
git diff --check@base-ui/utils/useIsoLayoutEffect; fleet and PR CI remain required.Changelog
Fixed composer attachment menu sizing.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes popover and menu alignment so composer pickers and AppKit menus open against their triggers instead of drifting off the anchor.
+menu no longer renders as a narrow, tall capsule with a full-height scrollbar; horizontal overflow is clipped.useUiAnchoron web andCmuxPopoverAnchoron macOS — that flip sides when space is tight, clamp to the viewport, and translate through zoomed or flipped containers.Written for commit aa8671b. Summary will update on new commits.