Skip to content

fix(acpmux): saved environments panel rims are one device pixel (hairline-rims base red) - #23212

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
fix/saved-environments-hairline
Oct 21, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
fix/saved-environments-hairline

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

hairline-rims is red on base (seen on #20812 at merge, in a file that PR didn't touch). webviews/src/agent-session/acpmux/savedEnvironments.css, added by #22406, draws three rounded rims at a raw .5px: the environment panel (:14), its name field (:41) and its select (:59). macOS WebKit snaps a sub-pixel rim's inner edge to device pixels but not its rounded clip, so these rims lose edges and corner arcs at 1x and at fractional zoom.

Change

The three rims use var(--cmux-hairline, 0.5px), as the pane's other rims do. The test is unchanged.

Changelog

  • Fixed: The saved environments panel in the New Tab environment picker draws its rounded borders evenly at 1x and at fractional zoom.

Observed / Not run

Agent session: huge-blue

🤖 Generated with Claude Code


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


Summary by cubic

Fixes the saved environments panel so its three rounded borders (the panel, its name field, and its select) render evenly at 1x and at fractional zoom.

  • The rims were drawn at a raw .5px, which macOS WebKit clips unevenly; they now use var(--cmux-hairline, 0.5px) as the pane's other rims do.

Written for commit e259eeb. Summary will update on new commits.

View guided diff Turn on auto-fix

…device pixel wide

hairline-rims, red on base: savedEnvironments.css (from #22406) drew three rounded rims at a raw
.5px (the panel, its name field and its select), which macOS WebKit clips unevenly at 1x and at
fractional zoom. They now name var(--cmux-hairline, 0.5px), as the pane's other rims do.
bun test test/hairline-rims.test.ts: base 3 pass 1 fail (those three lines), this head 4 pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c77-62d9-78b2-8cc3-73561b989bb5&host=huge-blue
@teamleaderleo teamleaderleo added the risk:low Risk tier (docs/ci/risk-tiers.md) label Oct 21, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by compaction-rows on huge-blue · session

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

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

Review e259eeb: 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=pr23212 -f ref=fix/saved-environments-hairline -f platform=macos -f backend_mode=local

Probably yours: text-field-focus.test.ts fails here but not on main's latest full suite. Seen on other PRs too (likely flaky): composer-claude-split.test.ts, composer-claude-split.test.ts, bare-pr-refs.test.tsx and 8 more.

CI failed on e259eeb319 (run 39570950454 attempt 1): 3 code, 1 unknown.

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

Failures:

  • seen on other PRs composer-claude-split.test.ts chromium: + is its glyph, named Add with no tooltip: failed (job)
  • seen on other PRs composer-claude-split.test.ts webkit: + is its glyph, named Add with no tooltip: failed (job)
  • new in this PR text-field-focus.test.ts (unnamed): failed (job)
  • seen on other PRs bare-pr-refs.test.tsx a reference in a code span or a code block is not a link: failed (job)
  • seen on other PRs editors.test.tsx editors > every schema row renders the editor for its kind: timed out after 5000ms (job)
  • seen on other PRs editors.test.tsx editors > the window material is a material choice, never a radius slider: failed (job)
  • seen on other PRs editors.test.tsx editors > opacity is a percent slider: preview while dragging, one settings.set on release: failed (job)
  • seen on other PRs editors.test.tsx editors > an unset slider sits at the value the host derives (the theme's opacity), live: failed (job)
  • seen on other PRs editors.test.tsx editors > a number field commits on Return, clamped to the range: failed (job)
  • seen on other PRs editors.test.tsx editors > a number list adds a number in range on Return and refuses one outside it: failed (job)
  • ... 2 more in the job logs
Matched log lines
web / react-apps-check (2): (fail) chromium: + is its glyph, named Add with no tooltip [3359.67ms]
web / react-apps-check (1): (fail) a reference in a code span or a code block is not a link [120.81ms]
web / react-apps-check (3): (fail) editors > every schema row renders the editor for its kind [5045.58ms]

Not re-run automatically: web / react-apps-check (2), web / react-apps-check (1), web / react-apps-check (3), 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: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 744d318; does not block
red: web / Web status; base red: the same failure on the base 744d318; does not block
red: web / react-apps-check; base red: the same failure on the base 744d318; does not block
red: web / react-apps-check (1); NEW: at /home/runner/_work/cmux/cmux/webviews/node_modules/@pierre/diffs/dist/components/web-components.js:6:43 is not red on the base 744d318; do not merge until green; see lane-rules
red: web / react-apps-check (2); base red: the same failure on the base 744d318; does not block
red: web / react-apps-check (3); base red: the same failure on the base 744d318; does not block

CI fast guards failed on e259eeb319 (https://github.com/manaflow-ai/cmux/actions/runs/39570950454). It does not block the merge; a red guard merged into main breaks it for every open PR.
The log named no failed step; see the run.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally.

Tour of e259eeb319 (run): no media. The tour did not run: only webview code changed (1 path(s)), which the gallery advisory run checks in Linux Chromium on the pull request (its artifact holds any captures); add the media-tour-mac label to tour it on a Mac.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-yuzxv created for this PR by the cmux coordinator.

@blacksmith-sh

blacksmith-sh Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Found 12 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp1al600_0/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpto5r69nc/summary-missing.json (live):/summary-missing.json (live): View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs
src/pages/settings/editors.test.tsx/editors.test.tsx View Logs
src/pages/settings/editors.test.tsx/editors.test.tsx View Logs
test/bare-pr-refs.test.tsx/bare-pr-refs.test.tsx View Logs
test/bare-pr-refs.test.tsx/bare-pr-refs.test.tsx View Logs
test/composer-claude-split.test.ts/composer-claude-split.test View Logs
test/composer-claude-split.test.ts/composer-claude-split.test View Logs
test/text-field-focus.test.ts/text-field-focus.test View Logs

...and 2 more test failures. View all on Blacksmith: run 39570950454, run 39570948429

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

cmux-next / cmux-next checks (god files, concurrency, crash safety, l10n) › Tier routing is red on 7 of 10 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant