Skip to content

Rail preview card: the chat under it blurs in see-through Chromium pages - #31814

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/popover-liquid-glass
Nov 2, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/popover-liquid-glass

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

Leo-ask: ask-87b699d5b1

Leo, 2026-10-28, relaying Lawrence: "leo clicking retry doesnt seem ideal / popovers in general need glassier bg blur / try to match liquid glass somehow"

The rail's preview card (hovering a prompt mark on the transcript's left rail) is the one chat popover that still let the transcript read sharp through it. In a see-through Chromium page, a backdrop-filter draws its blurred copy over the page's pixels instead of in their place, so the card's blur did nothing to the rows behind it. The card was not .ui-glass either, so it did not get the Chromium underlay that menus get. The rows showed through its 60% tint at full contrast (Lawrence's second screenshot).

  • PreviewCard.tsx: while the card draws in the scroller's parent, .acpmux-scroll blurs its own rows inside the card's rounded rect, through the same useSeeThroughBlur the Summary popover and Session Info use (Summary popover: real blur under the glass in see-through windows #30302, glass: the blur under a see-through popover is all or nothing #31581). The rail and the Find bar beside it are never filtered. WebKit, the lens and Reduce Transparency are unchanged, since glass.css applies the filter only in see-through Chromium.
  • seeThroughBlur.ts: the follow loop now also re-measures when the surface's inline style changes. The card moves from row to row by its own transform, which changes neither its size nor any child list, so the blur used to stay on the old row.

The retry half is covered by work that has already landed. acpmux now retries errors on its own (#31709, Settings > Retry After Errors) and the chat shows the retry status (#31648), so nobody has to click Retry.

Stop and cleanup: the follow loop stops after 3 unchanged frames, and closing the card detaches every observer, the SVG filter and the attributes (unchanged from #30302). The one new observer is an attribute filter on the card's own style.

Spec: leo-workspace design/glass.md / overlay-surfaces.md. No design change: the card keeps its tint, rim and elevation.

Changelog

Fixed: The transcript under the prompt rail's preview card is blurred in see-through windows, as it is under other popovers.

Observed / Not run

  • Regression: webviews/test/see-through-blur.test.ts "a surface moved by its inline transform takes its blur with it". The red commit (5ec90c7) and the fix are on this branch; the Chromium run goes through cmux-ci on this PR.
  • scripts/web-lint.sh: format and fast lint pass locally; type-aware lint and type check run in CI (this host skips heavy checks).
  • No capture: a webview hover state in a see-through native window; Leo tries the build.

Agent session: agent session

🤖 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 transcript showing sharp through the rail's preview card in see-through Chromium pages. The card's backdrop blur drew over the page's pixels instead of in their place, so the rows behind it were never filtered. The scroller now blurs its own rows inside the card's rounded rect, matching the other popovers. The blur also follows the card as it moves from row to row by its inline transform, since that movement changes neither the card's size nor its children.

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

View guided diff Turn on auto-fix

teamleaderleo and others added 2 commits November 2, 2026 04:38
…s its blur with it (red)

Leo-ask: ask-87b699d5b1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-0b2abe27930ed353a89d
… Chromium pages

The card's backdrop blur draws over the rows in a see-through Chromium page, not in their place,
so the transcript read sharp through its tint. The scroller now blurs its own rows inside the
card's rounded rect (ui/glass/seeThroughBlur.ts), as Summary and Session Info do, and the blur
follows the card from row to row: seeThroughBlur re-measures when a surface's inline style moves it.

Leo-ask: ask-87b699d5b1

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

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

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

Review f09fa96: 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=pr31814 -f ref=lane/popover-liquid-glass -f platform=macos -f backend_mode=local

Gallery before/after for f09fa96: 16 states rendered, 1 images differ, 1238 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 41389988569 -R manaflow-ai/cmux -n gallery-advisory-31814-f09fa9674bb07ad8a50c01271d2ffef834653e6f (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.background-activity/duration-columns Apple System Colors Light unchanged 0% own summary.css
agent-pane.background-activity/duration-columns Apple System Colors unchanged 0% own summary.css
agent-pane.background-activity/pinned-live-tail-light Apple System Colors Light unchanged 0% own summary.css
agent-pane.background-activity/pinned-live-tail-light Apple System Colors unchanged 0% own summary.css
agent-pane.background-activity/pinned-live-tail-dark Apple System Colors Light unchanged 0% own summary.css
agent-pane.background-activity/pinned-live-tail-dark Apple System Colors unchanged 0% own summary.css
agent-pane.background-activity/after-latest-message-light Apple System Colors Light unchanged 0% own summary.css
agent-pane.background-activity/after-latest-message-light Apple System Colors unchanged 0% own summary.css
agent-pane.background-activity/after-latest-message-dark Apple System Colors Light unchanged 0% own summary.css
agent-pane.background-activity/after-latest-message-dark Apple System Colors unchanged 0% own summary.css
agent-pane.background-activity/compact-pill-light Apple System Colors Light unchanged 0% own summary.css
agent-pane.background-activity/compact-pill-light Apple System Colors unchanged 0% own summary.css
agent-pane.background-activity/compact-pill-dark Apple System Colors Light unchanged 0% own summary.css
agent-pane.background-activity/compact-pill-dark Apple System Colors unchanged 0% own summary.css
agent-pane.background-activity/side-panel-light Apple System Colors Light unchanged 0% own summary.css
agent-pane.background-activity/side-panel-light Apple System Colors unchanged 0% own summary.css
agent-pane.harness-status/claude Apple System Colors Light unchanged 0% own summary.css
agent-pane.harness-status/claude Apple System Colors unchanged 0% own summary.css
agent-pane.harness-status/codex Apple System Colors Light unchanged 0% own summary.css
agent-pane.harness-status/codex Apple System Colors unchanged 0% own summary.css
agent-pane.harness-status/opencode Apple System Colors Light unchanged 0% own summary.css
agent-pane.harness-status/opencode Apple System Colors unchanged 0% own summary.css
agent-pane.harness-status/copy-and-escape Apple System Colors Light unchanged 0% own summary.css
agent-pane.harness-status/copy-and-escape Apple System Colors unchanged 0% own summary.css
agent-pane.harness-status/copy-value Apple System Colors Light unchanged 0% own summary.css
agent-pane.harness-status/copy-value Apple System Colors unchanged 0% own summary.css
agent-pane.harness-status/header-action-alignment Apple System Colors Light unchanged 0% own summary.css
agent-pane.harness-status/header-action-alignment Apple System Colors unchanged 0% own summary.css
agent-pane.harness-status/overlay-escape-priority Apple System Colors changed 0% own summary.css
agent-pane.harness-status/overlay-escape-priority Apple System Colors Light unchanged 0% own summary.css
agent-pane.thread-minimap/card-markdown Apple System Colors Light unchanged 0% own PreviewCard.tsx
agent-pane.thread-minimap/card-markdown Apple System Colors unchanged 0% own PreviewCard.tsx

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

red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base b441a27; does not block

Shipped in:

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 2, 2026
…blur

The rail's preview card and the Summary popover (or Session Info) both cover the transcript
scroller, which held one filter and one owner: the card's attach overwrote the Summary's, and its
release left the scroller with none, so the text under the Summary read sharp until it moved.
Each covered element now draws every surface's hole in turn and lists every owner; a release takes
out its own alone. summary.css matches its owner as a word (~=). The card's blur attaches after
it is placed.

Leo-ask: ask-87b699d5b1

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

blacksmith-sh Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Found 6 test failures on Blacksmith runners:

Failures

Test View Logs
main.DeveloperIdAppTests.test_download_prints_the_active_profile_only/
test_download_prints_the_active_profile_only
View Logs
stubs: /System/Library/Frameworks/Security.framework/Versions/A/Security has no stub/
Security has no stub
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_CFRetain']/
CoreFoundation, missing 1: ['_CFRetain']
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_log2']/
CoreFoundation, missing 1: ['_log2']
View Logs
test_every_compile_job_names_its_warm_sources (main.ThisTree.test_every_compile_job
_names_its_warm_sources)/
test_every_compile_job_names_its_warm_sources (main.ThisTree.test_every_compile_job
_names_its_warm_sources)
View Logs
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)/
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)
View Logs

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

@teamleaderleo
teamleaderleo merged commit 8a7ef81 into feat-cmux-next Nov 2, 2026
160 of 168 checks passed
@teamleaderleo
teamleaderleo deleted the lane/popover-liquid-glass branch November 2, 2026 05:35
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, next-review): SHIP at f09fa96

SHIP at f09fa96

Visual verdict: no visible regression in the 16 supplied before/after pairs.

  1. [P2] [follow-up] webviews/src/agent-session/acpmux/summary/summary.css:20 — With Summary open, opening Find hides Summary but leaves its owner on the scroller. This rule then disables the entire combined filter list, including an active preview card’s blur. Disable only Summary’s contribution and add a regression covering Find with both surfaces attached.

Focused tests could not run: Bun is unavailable.

Follow-ups:

  • Preserve the preview card’s blur while Find hides Summary.

This branch was previously deployed

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