Repository navigation
Agent chat: an opened tool run fades its top under the summary line while scrolled - #24263
Conversation
… its summary line Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16030-bf28-7072-b1f6-b83bbd0beacc&host=cosmic-gray
… line while scrolled Leo: "in that top section fade would be good". The run's call list scrolls past nine rows; a row scrolled half away sat cut in half against the summary line. The list now marks its top edge (useScrollEdges) while rows lie above it and fades it with an 18px alpha mask, the transcript's own top fade, so nothing is painted over the rows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16030-bf28-7072-b1f6-b83bbd0beacc&host=cosmic-gray
|
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); NEW: Tour of |
|
Found 10 test failures on Blacksmith runners: Failures
|
|
|
|
Bead |
Picks up #24263's fix (a3feffa) so the CmuxNext tests compile again; at 694c2a2 base's own fast tier and generated-files jobs could not build. The generated exports keep this branch's side; the PR autofix regenerates them next. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d2d-6918-7232-817c-889154528e09&host=cosmic-gray
|
Review (codex xhigh, correctness first): SHIP at 4fb0d31
|
|
Orphaned: no activity for 13 h, and no lane holds a lease on it. The orphan sweep could not merge |
…eader-fade # Conflicts: # webviews/src/agent-session/acpmux/conversation/ToolRun.tsx
|
Review (codex xhigh, correctness first): SHIP at cdd36e5
|
|
|
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo: "in that top section fade would be good"
Leo-ask: ask-cbdc0a8879 (sticky header fade, via claude-sr2)
What changed
An opened run of tool calls ("Read files, ran commands ⌄") lists its calls in a box that scrolls once it passes nine rows (
.cv-tool-run). The summary line stays put above that box while the calls scroll under it. Before this change, a row scrolled halfway out was cut flat against the summary line: its top half was clipped, right under the header text.Now the box's top edge fades out while there are rows above it:
ToolRun.tsxattaches the existinguseScrollEdgescallback ref (summary/scrollEdges.ts) to the list. It setsdata-fade-toponly while the list is scrolled down from its start.conversation.css.cv-tool-run[data-fade-top]uses the same technique as the transcript's own top edge (.acpmux-scroll[data-fade-top], also 18px): an alpha mask on the scroller, transparent at the top and solid 18px below. Since nothing is painted over the rows, the fade can't cover the summary line's text or chevron, and it can't catch clicks. Because it is a mask and not a gradient, it works the same in light, dark and glass/translucent themes. The scrollbar lane on the right stays fully drawn. With Reduce Transparency the edge stays plain, as the transcript's does.Builds on this lane's #24050 (useAnchoredCollapse). That PR changes how
ToolRunopens and closes but not the list element, so the two merge cleanly in either order.Before / after
Gallery state
agent-pane.transcript/tool-run-scrolled-fade(synthetic fixtures): an 18-call run, opened and scrolled 3.5 rows so the fourth row sits half under the summary line.Test
webviews/test/tool-run-scroll-fade.test.tsx:data-fade-topat the start. Scrolled 3.5 rows it has the mark, and scrolled back to the top the mark is gone.mask-imageand-webkit-mask-image, transparent to#000over 18px). It has no background and no pseudo-element over the rows, so it paints nothing and has nothing to catch the pointer. Reduce Transparency clears the mask.Observed / Not run
bun test. cosmic-gray's hook refuses test runs, so the new test runs in CI (cmux-next-web).No capture: webview-only change; the before/after is the Linux gallery above.
Changelog
Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fades the top of an opened tool run's call list while it's scrolled, so a row half scrolled away dissolves under the summary line instead of sitting cut against it.
useScrollEdgeshook only while rows lie above it, and an 18px alpha mask (the transcript's own top-fade technique) fades that edge.Written for commit cdd36e5. Summary will update on new commits.