Transcript: keep bottom room after tool collapse
A tool call expanded at the transcript end now keeps that scroll extent when it collapses. Its header stays in place, and scrolling up and back—including scrolling before the collapse is first measured—keeps the blank room. New content can consume the room; Send, Jump to latest and switching chats reset it.
The assigned request, forwarded from Leo: “the bottom space added when a tool call expands must stay after it collapses, and after scrolling up.” Leo also clarified: “i literally said dont fold the steer”.
This builds on the landed #29686 expansion animation and #29740 steer/footer behavior. A browser regression verifies that the personal steer and assistant reply immediately before it stay visible across Worked-for toggles. The PR changes only scroll-room retention and its browser tests.
Design reference: leo-workspace/design/chat-transcript.md, Tool expansion at the bottom, updated for this behavior. Expansion keeps base's single compositor move; tool collapse retains the expanded end. No new timers or observers. Risk is scroll anchoring during a collapse; browser coverage measures extent, header movement and immediate reader input.
Validation:
- 52 passed, 0 failed in fleet run 41252283774 at
6b9cb38aec80f09f23f685a0999e1fe1ca0890e4: fold-anchor browser tests, popover animation audit, steer continuity and turn/footer tests. - Base integration at
a83f3e8b482fc03abc06cd13157e6f53e867ef66leaves the retention implementation and tests unchanged. Independent exact-head review passed; all eight automated webview base-check verdicts passed at the final head. git diff --checkpasses.
Agent session: agent session
🤖 Generated with Claude Code