Skip to content

Agent chat: the minimap's hover card is glass, not a solid card - #23782

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
glass-regressions/minimap-card-glass
Oct 21, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
glass-regressions/minimap-card-glass

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Leo, 2026-10-21: hovering a mark in the transcript's minimap shows a SOLID card (title, bookmark, three-line preview).

Change

  • .acpmux-minimap__card (threadMinimap.css) used to fill with --acpmux-minimap-card, which is opaque. It is now glass, like the chat's other hover cards (the link preview card and the tooltips): background: var(--tooltip-tint, …) over backdrop-filter: var(--surface-blur).
  • It keeps its hairline rim and the raised elevation, --elevation-2 (subtle-elevation.test.ts).
  • Reduce Transparency makes the tint the solid popup surface and turns the blur off through the shared tokens (pages/shared/desktop.css).
  • No accent color, no orange.
  • The minimap itself is off by default after Agent chat: no thread minimap by default (the column of marks down the left edge) #23735. This PR changes the card for the full and compact arms that dogfood keeps.

Testing

  • Command: bun test test/thread-minimap-card-glass.test.ts.
    • Red on 19e5628 (test only): "the minimap card is the tooltip glass" fails.
    • Green at the head, together with test/subtle-elevation.test.ts: 38 pass.
  • bun run check passes at the head (oxfmt, oxlint, type check, check-layers). prepush-gate is clean.

Observed / Not run

  • Observed: the tests and checks above, run on huge-blue.
  • Not run: a gallery capture. The gallery advisory run on this PR renders agent-pane.thread-minimap with the hover card under each arm.

Changelog

  • Changed: the thread minimap's hover card is frosted glass instead of a solid card.

Webview only; no native UI change.

Agent session: cosmic-gray

🤖 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

Changes the thread minimap's hover card from a solid opaque fill to the same frosted-glass treatment as the chat's other hover cards (link preview, tooltips): the tooltip tint over the shared blur. It keeps its hairline rim and raised elevation; Reduce Transparency swaps the glass for the solid popup surface through the shared tokens. The minimap remains off by default, so this affects only the full and compact arms. Adds a test asserting the card uses the tooltip glass and draws no accent.

Written for commit 4c5313f. Summary will update on new commits.

View guided diff Turn on auto-fix

teamleaderleo and others added 2 commits October 21, 2026 22:06
Leo, 2026-10-21: hovering a mark shows a SOLID card. The card fills with
--acpmux-minimap-card, an opaque mix, and has no backdrop blur.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… hover cards

The card hovering a minimap mark was an opaque fill. It now takes the
tooltip tint over the shared blur (--tooltip-tint, --surface-blur), as the
link preview and the tooltips do, keeping its hairline rim and the raised
elevation. Reduce Transparency turns the tint solid and the blur off
through the shared tokens. No accent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@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 4c5313f: 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=pr23782 -f ref=glass-regressions/minimap-card-glass -f platform=macos -f backend_mode=local

Gallery before/after for 4c5313f: 16 states rendered, 8 images differ, 453 more touched states not rendered. Images are in the run's artifact, not on this public PR.

gh run download 39684384254 -R manaflow-ai/cmux -n gallery-advisory-23782-4c5313fc153457163d31495ad930894c1ba7c6c9 (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.thread-minimap/rest Apple System Colors Light unchanged 0% same-folder threadMinimap.css
agent-pane.thread-minimap/rest Apple System Colors unchanged 0% same-folder threadMinimap.css
agent-pane.thread-minimap/scrubbing Apple System Colors Light unchanged 0% same-folder threadMinimap.css
agent-pane.thread-minimap/scrubbing Apple System Colors unchanged 0% same-folder threadMinimap.css
agent-pane.thread-minimap/seventy-prompts Apple System Colors Light unchanged 0% same-folder threadMinimap.css
agent-pane.thread-minimap/seventy-prompts Apple System Colors unchanged 0% same-folder threadMinimap.css
agent-pane.thread-minimap/long-chat Apple System Colors Light unchanged 0% same-folder threadMinimap.css
agent-pane.thread-minimap/long-chat Apple System Colors unchanged 0% same-folder threadMinimap.css
agent-pane.thread-minimap/bookmarked Apple System Colors Light unchanged 0% same-folder threadMinimap.css
agent-pane.thread-minimap/bookmarked Apple System Colors unchanged 0% same-folder threadMinimap.css
agent-pane.agent-pair-note/paused Apple System Colors Light unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/paused Apple System Colors unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/held-list Apple System Colors Light unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/held-list Apple System Colors unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/repeating Apple System Colors Light unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/repeating Apple System Colors unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/cap Apple System Colors Light unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/cap Apple System Colors unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/release-failed Apple System Colors Light unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/release-failed Apple System Colors unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/resumed Apple System Colors Light unchanged 0% host-stylesheet threadMinimap.css
agent-pane.agent-pair-note/resumed Apple System Colors unchanged 0% host-stylesheet threadMinimap.css
agent-pane.artifact-panel/closed Apple System Colors changed 33% host-stylesheet threadMinimap.css
agent-pane.artifact-panel/closed Apple System Colors Light unchanged 0% host-stylesheet threadMinimap.css
agent-pane.artifact-panel/markdown Apple System Colors Light changed 0% host-stylesheet threadMinimap.css
agent-pane.artifact-panel/markdown Apple System Colors unchanged 0% host-stylesheet threadMinimap.css
agent-pane.artifact-panel/html Apple System Colors Light changed 0% host-stylesheet threadMinimap.css
agent-pane.artifact-panel/html Apple System Colors changed 0% host-stylesheet threadMinimap.css
agent-pane.artifact-panel/versions Apple System Colors Light changed 0% host-stylesheet threadMinimap.css
agent-pane.artifact-panel/versions Apple System Colors changed 0% host-stylesheet threadMinimap.css
agent-pane.background-hint/claude Apple System Colors Light changed 0.194% host-stylesheet threadMinimap.css
agent-pane.background-hint/claude Apple System Colors changed 0.0035% host-stylesheet threadMinimap.css

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by glass-regressions on cosmic-gray · session

@blacksmith-sh

blacksmith-sh Bot commented Oct 21, 2026

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test 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

Copy link
Copy Markdown
Collaborator Author

cmux-next guards / nightly-guards / workflow-guard-tests / release-notary is red on 11 of 17 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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent, correctness first): SHIP at 4c5313f

  • Glass: .acpmux-minimap__card is the only rule for the card. It now fills with --tooltip-tint, which is the host tint or the popup surface at 60%, over backdrop-filter: var(--surface-blur), with no opaque layer under it. The card is a sibling of the rail, not a child of the masked .acpmux-minimap__list, so no mask or opacity ancestor stops the blur. The opaque --surface-popup and --acpmux-minimap-card only apply as fallbacks when desktop.css is missing, and the bundle and dev entry both load it.
  • Legibility: this is the same tint the tooltips and the .cv-link-preview card use. The host's --cmux-tooltip-tint is chosen to keep text at 4.5:1 over pure black and pure white, so it holds in light and dark.
  • Reduce Transparency: both the media query and :root[data-reduce-transparency] set --tooltip-tint to the solid popup surface and --surface-blur to none, so the card goes solid. check-layers (which requires a reduced-transparency fallback for any backdrop-filter) passes.
  • Accent: none. The card still uses --elevation-2 and its rim.
  • Test: I put the 19e5628 CSS back and the glass test went red. At the head it is green. I also ran 17 related suites on huge-blue: glass-never-opaque, accent-glass-invariants, tooltip-surface, subtle-elevation, popup-surface, check-layers, the minimap and scroll-map suites, and link-cards. All 106 tests pass.
  • Scope: only the card rule changes. Its class is used only in PreviewCard.tsx, which both rails share.

Nit, not blocking: the rim is still the opaque --acpmux-minimap-card-ring, a mix of the text colour and the base. The link preview uses --cmux-separator, which may suit glass better.

CI: the nightly-guards reds also fail on feat-cmux-next at 7f9ff06. health (1) and the cancelled pr-capture-check are unrelated to a webview CSS change.

@teamleaderleo teamleaderleo added the risk:low Risk tier (docs/ci/risk-tiers.md) label Oct 21, 2026
@teamleaderleo
teamleaderleo merged commit c07d400 into feat-cmux-next Oct 21, 2026
@teamleaderleo
teamleaderleo deleted the glass-regressions/minimap-card-glass branch October 21, 2026 23:13
@github-actions github-actions Bot added risk:normal Risk tier (docs/ci/risk-tiers.md) and removed risk:low Risk tier (docs/ci/risk-tiers.md) labels Oct 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/39692052732 at c07d400 failed: cmux-next fast tier.
Those jobs last passed at 9940d4b. This pull request is one of 2 merged since: #20295, #23782.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/39692226412 at 66c2012 failed: cmux-next fast tier.
Those jobs last passed at 9940d4b. This pull request is one of 3 merged since: #20295, #23782, #23740.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/39692485830 at 7692cfb failed: cmux-next fast tier.
Those jobs last passed at 9940d4b. This pull request is one of 5 merged since: #20295, #23782, #23740, #23771, #23830.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

teamleaderleo added a commit that referenced this pull request Oct 22, 2026
…st tints it (#24024)

* fix(webviews): the minimap card blurs the chat behind it

After #23782 the card hovering a minimap mark had the tooltip tint and
backdrop-filter: blur(20px) saturate(1.4), but the transcript showed
through it sharp, in Chromium and WebKit. The card drew inside the
transcript scroller, whose soft-edge mask makes the scroller the card's
backdrop root, so the blur had nothing to read.

The card now draws in the scroller's parent (a portal), positioned from an
anchor left in the rail, so it lands where it did and blurs the rows. The
rail keeps the scroller's fade mask. The card takes the rail's tokens and
the tooltip layer. Tests: the card is never inside .acpmux-scroll (both
rails).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(webviews): the wheel over the minimap card still scrolls the chat

Drawn outside the transcript scroller, the card took the wheel to the
stage, which does not scroll. It hands the wheel to the scroller, as the
card did when it drew inside it. The card now takes the scroller itself
and draws in its parent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(webviews): the wheel over the minimap card reaches the chat's own listeners

Drawn outside the transcript scroller, the card scrolled it with
scrollBy alone, so the scroller's wheel listeners never ran: the scroll
did not count as the reader's (a slow scroll up from the latest row
snapped back), and a minimap jump or glide in flight kept going. The
card now hands the wheel on as Jump to latest does (wheelPassThrough's
forwardWheel): a copy to the scroller first, then the scroll, with page
deltas and pinch handled the same way. A scrolling key on the card's
bookmark (arrows, Page Up/Down, Home, End) scrolls the transcript too,
as it did when the card drew inside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(webviews): wait painted frames, not a fixed time, for the ended minimap jump

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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