Skip to content

cmux-next: ship every stylesheet the agent pane imports - #19801

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
op-next-polish-pane-css
Oct 12, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
op-next-polish-pane-css

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator

The agent pane's bundle drops CSS imports. scripts/cmux-next/build-agent-pane-web.sh writes the page's one <style> from a fixed list of sheets, so a sheet that a component imports but the list leaves out ships no rules. The dev server loads imports, so these components looked right there but rendered unstyled in the app.

Five sheets were missing:

  • ui/ghost.css (Ghost buttons: one balanced primitive for icon+label buttons (cx-s6zvc) #19771): New Tab's tools (Changes, Terminal, Files, Side chat) lost their gap and padding. The icons touched their labels and the row wrapped onto three lines.
  • harnesses/harnesses.css: the Harnesses page.
  • replay/replay.css: the Replay screen.
  • addProject.css: the Add Project dialog.
  • markdown-task-checkbox.css: task-list checkboxes in agent replies.

Changes

  • The page now includes all five sheets.
  • bundle.mjs --css-inputs <file> lists every stylesheet the bundle imports, read from esbuild's metafile.
  • The build fails when an imported sheet is not in the page's styles, so the next new import cannot ship unstyled.
  • New test webviews/test/agent-pane-styles.test.ts checks that the built index.html contains the rules of every imported sheet.

Verification

  • The red commit adds only the test; the fix commit follows. The test runs in react-apps-check, against the bundles that job builds.
  • bun run check passes.

No new strings.

Changelog

  • Fixed: New Tab's quick tools, the Harnesses page, Replay, Add Project and reply checkboxes render with their styles in the app again.

🤖 Generated with Claude Code


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


Summary by cubic

Fixes the agent pane shipping without five stylesheets its components import, which left New Tab's quick tools, the Harnesses page, Replay, Add Project, and reply checkboxes unstyled in the app while the dev server looked correct.

  • bundle.mjs --css-inputs <file> lists every CSS file the bundle imports from esbuild's metafile; --css-inputs-only writes that list without compiling the pane, so the test stays fast on CI.
  • The build fails when an imported sheet is not in the page's styles, so future imports cannot ship unstyled.
  • Adds a test that checks the built index.html contains the rules of every imported sheet.

Written for commit 6fc758d. Summary will update on new commits.

View guided diff Turn on auto-fix

…imports

The pane bundle drops CSS and build-agent-pane-web.sh writes the page's
style from a fixed list, so ui/ghost.css (#19771), addProject.css,
harnesses.css, replay.css and markdown-task-checkbox.css never reach the
app. bundle.mjs --css-inputs lists the imported sheets; the test checks
each one's rules are in the built index.html. Fails on the current base.

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

coderabbitai Bot commented Oct 12, 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: 192b9eb8-787d-4407-bfd9-a593663fbc87

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 12, 2026 •

Copy link
Copy Markdown

Found 2 test failures on Blacksmith runners:

Failures

Test View Logs
test/diff-virtualization.test.ts/diff-virtualization.test View Logs
test/menu-focus.test.ts/menu-focus.test 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 12, 2026 •

Copy link
Copy Markdown
Contributor

Passes: CI passes on 6fc758d046.

CI passes on 6fc758d046 (run 38234359433 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 12, 2026 •

Copy link
Copy Markdown
Contributor

CI fast guards passes on 6fc758d046 (https://github.com/manaflow-ai/cmux/actions/runs/38234359433). 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.

teamleaderleo and others added 2 commits October 12, 2026 02:25
…checkbox styles

The pane bundle drops CSS imports, so the page build concatenates sheets
from a hand-kept list. Five imported sheets were missing from it, leaving
New Tab's quick tools, Harnesses, Replay, Add Project and reply checkboxes
unstyled in the app. Add them, and fail the build when the bundle imports
a sheet the page does not contain.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The style test bundled the whole pane through the React Compiler, which
ran alongside the browser tests on CI and slowed them into timeouts.
--css-inputs-only lists the sheets with esbuild alone in about a second.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo
teamleaderleo merged commit 028cfa2 into feat-cmux-next Oct 12, 2026
108 checks passed
@teamleaderleo
teamleaderleo deleted the op-next-polish-pane-css branch October 12, 2026 10:37
@github-actions

Copy link
Copy Markdown
Contributor

Gallery

Review in feed

158 states changed: pages.settings/general-group-3, pages.settings/general-group-2, pages.settings/browser-group-2, pages.settings/invalid-host, pages.settings/notifications-group-2, ... · 4 new states · 40 broken states · 90 play checks failed

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

State Before · after
pages.settings/general-group-3 (Apple System Colors Light, webkit)
pages.settings/general-group-2 (Apple System Colors Light, webkit)
pages.settings/browser-group-2 (Apple System Colors, webkit)
pages.settings/general-group-2 (Apple System Colors, webkit)
pages.settings/general-group-3 (Apple System Colors, webkit)
pages.settings/invalid-host (Apple System Colors Light, webkit)

152 more on the diff page.

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

  • pages.settings/general-group-3: /wt/op-next-polish-pane-css/?entry=pages.settings#/pages.settings/general-group-3
  • pages.settings/general-group-2: /wt/op-next-polish-pane-css/?entry=pages.settings#/pages.settings/general-group-2
  • pages.settings/browser-group-2: /wt/op-next-polish-pane-css/?entry=pages.settings#/pages.settings/browser-group-2
  • pages.settings/invalid-host: /wt/op-next-polish-pane-css/?entry=pages.settings#/pages.settings/invalid-host
  • pages.settings/notifications-group-2: /wt/op-next-polish-pane-css/?entry=pages.settings#/pages.settings/notifications-group-2
  • agent-pane.transcript/shell-grouped-commands: /wt/op-next-polish-pane-css/?entry=agent-pane.transcript#/agent-pane.transcript/shell-grouped-commands
  • 100 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):

  • agent-pane.composer-pickers/model-press-drag-release (Apple System Colors, webkit): play: no element for [role="option"][data-key="model:gpt-6-astra"]
  • agent-pane.dictation/hide (Apple System Colors Light, webkit): play: no element for menuitem "Hide Dictation Button"
  • agent-pane.dictation/hide (Apple System Colors, chromium): play: no element for menuitem "Hide Dictation Button"
  • agent-pane.dictation/hide (Apple System Colors, webkit): play: no element for menuitem "Hide Dictation Button"
  • agent-pane.transcript/jump-latest-working (Apple System Colors Light, webkit): failed
  • agent-pane.changes-options-menu/keyboard (Apple System Colors Light, chromium): play: waitFor did not hold within 5000 ms
  • 451 more on the diff page

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

6157 unchanged · base b2eb605 · head 6fc758d

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