Agent chat: polish minimap hover cards
Minimap hover cards now show a two-line prompt, a four-line Markdown reply, and up to three lines of a recorded failure reason on a content-sized glass surface. The bookmark stays in place. Bold, bullets and inline code remain readable; long hashes, paths and URLs retain both ends with the full token available on hover and to screen readers.
Leo: “leo can have multi line stuff here” and “comparing ours to codex... can we improve it somehow?”
Available details show local time, duration, tool calls, unique paths with actual edit diffs, and GitHub PR links from the bounded prompt or completed reply prefix. Read-only file locations do not count as edits. Contributions are cached by prompt, source row ID/revision and drawn shape; streamed replies reuse earlier tool details, and dropped renders leave visible metadata unchanged.
I chose this combined design after comparing the three gallery cases below: the prompt/reply version keeps useful Markdown, the failure version retains the complete short cause, and the metadata version adds available details without expanding the card beyond 360px. Design references: cmux glass/status notes and Codex quiet utility surfaces. Private supplied references are not published.
Verification
Reviewed head: 205944586f15037b1d14bb602b4bde364ca65e62.
- Hosted checks 40463261681: 23 model/stream tests, 1 browser test and full web lint compared with base pass. The browser test exercises multiline bounds, inline code, long-token and ordinary-prose display, bookmark interaction, PR-link scrolling keys and narrow-pane fit. The live→ended revision-collision regression fails on the previous implementation (one edited file instead of two), then passes here. Only its capture substep failed due to new-feature selectors absent on base; those captures were recovered separately.
- Review (independent gpt-6-astra, xhigh): SHIP at
205944586f15037b1d14bb602b4bde364ca65e62. Primary review also inspected the actual final diff. - Final capture 40464358885: SUCCESS, all six final-head gallery states ready with passing plays. Captures are real Chromium renders at 880×640, device scale 2. Before images use base
c4fdfce9ba93with the same content/hover fixture; its waits target the existing card. Five complete base files from 40463788021 were retained. Every PNG was decoded, SHA256 checked and PNG-verified; the final six were visually inspected. - Tick geometry, scrolling and anchoring are untouched. No local browser run, build or typecheck.
Gallery captures
Gallery entry at the reviewed head: agent-pane.thread-minimap, variants card-markdown, card-failure, card-metadata.
| State | Before | After |
|---|---|---|
| Markdown, dark | ![]() | ![]() |
| Markdown, light | ![]() | ![]() |
| Failure, dark | ![]() | ![]() |
| Failure, light | ![]() | ![]() |
| Metadata, dark | ![]() | ![]() |
| Metadata, light | ![]() | ![]() |
Overlap coordinated with rail-opus for #25800, #25160, #25766 and #24131. Card-only CSS keeps the isolation/transform declarations; each rail gains only the metadata prop.
Agent session: agent session











