Repository navigation
Rail preview card: the chat under it blurs in see-through Chromium pages - #31814
Conversation
…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
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Gallery before/after for
States
Pick other states with a red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base b441a27; does not block Shipped in:
|
…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
|
Found 6 test failures on Blacksmith runners: Failures
|
|
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.
Focused tests could not run: Bun is unavailable. Follow-ups:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
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-glasseither, 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-scrollblurs its own rows inside the card's rounded rect, through the sameuseSeeThroughBlurthe 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, sinceglass.cssapplies the filter only in see-through Chromium.seeThroughBlur.ts: the follow loop now also re-measures when the surface's inlinestylechanges. 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
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).Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith 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.