cmux NEXT agent chat: the Summary popover is glass, not a solid card
Leo, 2026-10-21: "also i dont like the non glassness here :(". He attached two captures: the chat's Summary popover and the sidebar's Updated card.
Leo-ask: ask-194655bc16
What changed
- Summary popover (Outputs, Subagents, Sources, Background tasks;
summary/SummaryCard.tsx,summary.css). Before, it painted the solid popup surface (--surface-popup, alpha 1) with no blur. It was the one chat popover that #23477 left solid.- In a narrow pane it now wears the liquid glass (
.ui-glass): the glass tint, its blur and its rim over the popup elevation, under Plain, Lens and Spectrum. Its shadow takes a chat menu's tokens (--ui-popup-dropas the elevation,--ui-popup-edgeas the rim's edge), so it draws one rim;--ui-popup-shadowcarries its own hairline and drew a second under the glass rim. It floats over the chat, so it is.ui-glass-floatstoo: in a see-through Chromium page it sits on the theme surface underlay a menu sits on (#24358). - Reduce Transparency makes it the solid popup surface again (
--glass-opaque). - The wide pane's inline column isn't an overlay, so it keeps the page background.
- In a narrow pane it now wears the liquid glass (
- Updated card (the other capture): not changed here. Its pixels in the capture are the text at 13% over the sidebar, rgb(64 64 81) over rgb(42 42 55), which is the translucent fill #22734 restored and #23477 kept as
.ui-glass. It is not the 94% fill of #22670. The card's bullet, "The Updated card takes its own room and has an opaque fill", is #22670's changelog line, which #22734 superseded.
Verified
webviews/test/summary-glass.test.ts(new, real Chromium) covers light and dark, on an opaque window and over art under Plain and Lens. It fails if:- the popover's fill reaches 90% or drops to 20%;
- it loses its blur;
- its title falls under 3:1 over the theme's extreme backdrop;
- Reduce Transparency is no longer the one solid case;
- its box-shadow has more than one hairline ring (or, outside Lens, more than one inset layer), or differs from a
.ui-popup.ui-glassmenu's; - its background layers differ from a menu's (the see-through underlay).
- The theme fixture is a complete
AgentSessionThemeand the in-page import is typed as the theme module, soapplyAgentTheme(theme)is type-checked (tscflags a partial theme). - At the base every glass case fails (fill alpha 1). With the fix all 8 browser cases pass (the old double-rim CSS fails the 6 glass cases), and
summary-glass-class.test.tskeeps the glass class on the popover only. The gallery gains apopovervariant of the Summary card.glass-never-opaque.test.tsandglass-one-edge.test.tspass too. Run on huge-blue withCMUX_BROWSER_TESTS=1.
Captures
The Linux gallery on huge-blue rendered the new agent-pane.summary-card#popover variant, light and dark, before and after. Each sits over a bright art layer under Plain glass. Before, the popover was a solid card; after, it is glass that frosts the art, with its rows still legible. The PNGs are with the lane; uploading them is still to do.
No capture: a webview-only change to the chat's Summary popover, with no Swift change. cmux-ci capture needs a cmuxterm-hq build-fleet/pr-capture checkout, which neither cosmic-gray nor huge-blue has.
Agent session: cosmic-gray
š¤ Generated with Claude Code