Session Info: animate with the composer; popover in a short pane
Leo, 2026-10-31, on the floating Session Info panel: "THE FACT THIS STUFF EXPANDS WHEN THE COMPOSER GROWS OR SHRINKS IS... ok i guess but i feel like should have an animation... or maybe it should be out of focus when typing...? or idk i actually feel like there's decent behaviour here sometimes the claude code/chatgpt desktop just straight up make it a popover that hides when you click away when the viewport is indeed too small but idk"
What changes
Where Session Info lies over the chat (the right gutter can't hold it), its bottom tracked the composer's top and jumped with every line typed. Now:
- Tall pane: the card's foot follows the composer's top with a max-height transition on the shared presence motion (Reduce Motion and the motion-off setting keep the plain step). The first foot on open is drawn at once (
data-foot-movesonly after the first frame). - Pane under 520px tall (
POPOVER_BELOW_HEIGHT): it is a popover. It takes the room to the pane's foot over the composer, and a press anywhere but the panel, its toggle or a menu/dialog it opened hides it (the existingsuppressstate); the toggle opens it again. The switch reads the pane's height only, so typing never flips it.
Content, toggle and settings are unchanged; no new setting.
Variants compared (gallery agent-pane.inspector-composer-foot)
jump: the old foot, stepping per line.steady: fixed height to the pane's foot, composer over a faded bottom. Rejected: it hides the panel's last rows behind the composer at every height.animated(shipped, tall panes).popoverandpopover-click-away(shipped, short panes). Picked option (d): animated + popover.
Design spec: leo-workspace design/session-info.md rule 8 (updated in the companion PR).
Tests
inspector/inspectorPopover.test.ts(new): popover only over the chat in a short, measured pane.test/chat-inspector-placement.test.ts(new cases): 700x440 popover hides on a composer click and the toggle reopens it; 700x700 stays open.test/chat-inspector-surfaces.test.tsx:paneRoomnow reports the pane height.
Observed / Not run
Observed: bun run check and the inspector unit/browser suites via cmux-ci (results in comments). Not run: native app build (webview-only change).
Changelog
Changed: Session Info over the chat now animates with the composer instead of jumping, and in a short window it becomes a popover that hides on click away.
Agent session: agent session
🤖 Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Stops the floating Session Info panel from jumping with each line the composer gains.
In a tall pane the card's foot now animates along the composer's top instead of stepping, and in a pane under 520px tall the panel becomes a popover that covers the composer and hides when you click away from it; the toggle brings it back. The mode is set from the pane's height only, so typing never flips it. Content, toggle and settings are unchanged, and no new setting is added.