glass: the blur under a see-through popover is all or nothing
Leo-ask: ask-77d8a39684
If we're doing blur, we're doing blur. If we're not doing blur, we're not doing blur. We shouldn't have in-between states ever. That cause flicker
What changed
In a see-through Chromium page, the chat under a floating glass (the Summary popover, Session Info's overlay) blurs its own pixels through an SVG filter (ui/glass/seeThroughBlur.ts). That filter mixed the blurred and the sharp copy by the surface's opacity. While the popover faded in or out, the chat under it was drawn part sharp and part blurred, and that in-between state flickered. Now the hole is blurred in full whenever the surface shows at all, and sharp once it is gone. The arithmetic mix primitive is removed, and BlurHole no longer carries an opacity.
The other part of the ask, NEXT DEV taking the front by itself, was fixed the same day by #25648 (an automatic update relaunches behind the app you are in).
Risk: low to normal. The change is one filter in one module, and it applies only to see-through Chromium pages. WebKit and opaque windows draw nothing through it.
Test
webviews/test/see-through-blur.test.ts gets "a popover mid-fade blurs the bars in full, never part way", committed red first (d2314e20472), with the fix in 06f1e2d45ec. It is a browser-lane test, so it runs through cmux-ci (results below).
Observed / Not run
- Ran locally: the test file skips here (browser lane: CI only). The web lint passed except
check-fixed-waitsonbackgroundNotice.test.tsx, which is red on base f92d1cc9e7f and is not in this diff. - Not run: a DEV build capture. No capture: the change is a filter's math, covered by the pixel test.
Changelog
Fixed: the chat under a see-through popover no longer shows a half-blurred frame while the popover fades.
Agent session: agent session
š¤ Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Fixes the flicker in see-through glass popovers (Summary popover, Session Info overlay) by making the blur under them all-or-nothing.
- The SVG filter used to blend blurred and sharp pixels by the surface's opacity, so a popover mid-fade drew what was under it part blurred.
- The blur is now applied in full while the surface shows at all, and removed once it is gone. The opacity-based blend is gone from
seeThroughBlur.ts. - A surface that fades out and stays mounted now re-measures at the transition's end and drops its blur.
- Adds a browser-lane pixel test covering a popover caught mid-fade.
Applies only to see-through Chromium pages; WebKit and opaque windows are unaffected.