You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I searched existing issues and did not find a duplicate.
I am describing a concrete problem or use case, not just a vague idea.
Area
apps/web
Problem or use case
The composer has no way to get out of the way. When it grows — a pending user-input / ask-user card with several options, a pending approval, a long draft, attachments — it eats a large share of the thread viewport, and the conversation above it is what I actually need to read in order to answer it.
Concretely, when an agent asks a question I want to scroll back through what it just did and decide from that. Today the panel that renders the question is pinned at full height (apps/web/src/components/chat/ComposerPendingUserInputPanel.tsx, rendered from ChatComposer.tsx) — neither file has any collapse affordance or max-height, so the only way to see more of the thread is to scroll a shrunken viewport a few lines at a time.
The Claude Code desktop app handles this well: the input box can be collapsed to a thin bar, the full thread is visible behind it, and expanding it restores exactly what was there.
Proposed solution
A collapse toggle on the composer:
A chevron / caret in the composer header (and a keyboard shortcut) collapses it to a single slim bar showing just enough state to know why it's there — e.g. "1 question pending", "Draft (3 lines)", "Approval pending" — plus the expand affordance.
Collapsed state reclaims the full height for the message list, so the thread scrolls normally behind it.
Expanding restores the exact prior state: draft text, selected radio/checkbox answers, attachments, scroll position within the panel. Collapsing must never discard a draft or a selection.
State is per-thread and remembered while the thread is open. A new pending request should auto-expand (or at least flash the bar) so a collapsed composer can't hide a question the agent is blocked on.
Why this matters
The composer is the single biggest fixed-height element in the chat view, and it is largest exactly when the thread content matters most — when the agent is blocked on you and you need to review the context before answering. Right now answering a question means answering it half-blind, or losing the question off-screen while you scroll. This affects every user on every ask-user / approval interaction, and gets worse on small windows and split layouts.
Smallest useful scope
A single collapse/expand toggle on the web composer that preserves draft + selections, with no persistence across reloads and no keyboard shortcut. That alone solves the "I can't read the thread while a question is pending" problem.
Alternatives considered
Resizing the window / maximizing the panel — doesn't help; the composer scales with it.
Scrolling the message list — technically possible, but the usable viewport is a few lines tall when a multi-option question is pending.
A max-height with internal scroll on the pending-input panel — cheaper, but it only caps the worst case; it still can't get the composer out of the way.
Prior art: Claude Code desktop's collapsible input box.
Risks or tradeoffs
A collapsed composer must not hide a pending request the agent is blocked on — hence auto-expand (or a clearly-labelled bar) on a new request.
Draft/selection state must survive the collapse; losing a half-filled answer would be worse than the current behavior.
Before submitting
Area
apps/web
Problem or use case
The composer has no way to get out of the way. When it grows — a pending user-input / ask-user card with several options, a pending approval, a long draft, attachments — it eats a large share of the thread viewport, and the conversation above it is what I actually need to read in order to answer it.
Concretely, when an agent asks a question I want to scroll back through what it just did and decide from that. Today the panel that renders the question is pinned at full height (
apps/web/src/components/chat/ComposerPendingUserInputPanel.tsx, rendered fromChatComposer.tsx) — neither file has any collapse affordance or max-height, so the only way to see more of the thread is to scroll a shrunken viewport a few lines at a time.The Claude Code desktop app handles this well: the input box can be collapsed to a thin bar, the full thread is visible behind it, and expanding it restores exactly what was there.
Proposed solution
A collapse toggle on the composer:
Why this matters
The composer is the single biggest fixed-height element in the chat view, and it is largest exactly when the thread content matters most — when the agent is blocked on you and you need to review the context before answering. Right now answering a question means answering it half-blind, or losing the question off-screen while you scroll. This affects every user on every ask-user / approval interaction, and gets worse on small windows and split layouts.
Smallest useful scope
A single collapse/expand toggle on the web composer that preserves draft + selections, with no persistence across reloads and no keyboard shortcut. That alone solves the "I can't read the thread while a question is pending" problem.
Alternatives considered
Risks or tradeoffs
request_user_inputcard overflows the viewport), but the interaction there probably wants a different shape (sheet/drag handle) rather than a straight port.Contribution