Repository navigation
[Bug]: Collapsing the question card still leaves the composer at full height, and scrolling never rests it #14231
Description
Activity
- addedbugSomething is broken or behaving incorrectly.Something is broken or behaving incorrectly.needs-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Sep 29, 2026 Triage
Confirmed on current
main(d2c9281, the commit this report cites). No later commit changes this path.The chevron only hides the question body.
collapsedQuestionIdstays insideComposerPendingUserInputPaneland toggles that card’sCollapsible. The custom-answer editor and the footer are rendered next to it byChatComposer, so they stay at full height. That leftover editor is intentional in #6773: a collapsed prompt is still supposed to be answerable.Scroll-rest cannot finish the job.
showComposerTopDraweris true for anypendingUserInputs.length > 0, and that setscomposerHasExpandedChrome.canScrollCollapseComposerrequires expanded chrome to be false, and the effect beside it clearsisComposerScrollCollapsedwhenever the gate is closed.shouldUseRestingComposerLayoutalso refuses to rest whilehasExpandedChromeis true. The collapsed flag never reaches either check, so with Collapse composer on scroll on, an empty collapsed question still cannot rest. Wheel and keyboard timeline scroll sharecomposerScrollCollapseEligibleRef. This is the desktop path; mobile does not scroll-rest.Not a duplicate:
- feat(web): collapse the question prompt from its header #6773 / [Feature]: Make The Input / Question Prompt Collapsible #4431 added the header chevron. They do not rest the composer.
- fix(web): preserve multiline composer drafts during timeline scrolling #10444 keeps a multiline draft expanded. A pending custom answer is not
prompt(onPromptChangewrites the question draft instead), butuseComposerMultilinePromptstill measures the editor, so a wrapped answer is already under that guard. An empty answer is not. Leave multiline drafts in discussion [Feature]: Collapsible composer so the thread is readable while a question or approval is pending #6849. - [Feature]: Collapsible composer so the thread is readable while a question or approval is pending #6849 is the wider “get the composer out of the way” request (approvals and multiline drafts included). This issue is the pending-question slice already split out there. Approvals use the same expanded-chrome bit and have no chevron; they stay with [Feature]: Collapsible composer so the thread is readable while a question or approval is pending #6849.
- [Bug]: The composer doesn't rest on scroll when a thread opens above its end, until I scroll to the very end #14232 is a different scroll-rest failure: an unmeasured last row makes
timelineOverflowsfalse. Unrelated.
The focus rule in the report is not how scroll-rest works today. The wheel handler does not look at editor focus. #10437 removed collapse-on-blur; focus still expands a composer that is already resting. Once the chrome gate allows it, a short custom answer would rest on scroll whether or not the caret is in the field. Keeping an in-progress answer open is worth doing in the fix. It should not also start resting multiline drafts.
- addedvia-triageFiled through npx t3 triageFiled through npx t3 triageand removedneeds-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Sep 29, 2026 - added a commit that references this issue
on Oct 2, 2026
Before submitting
Area
apps/web
Steps to reproduce
Expected behavior
The card collapses "so a tall prompt stops covering the thread the user is trying to read" (comment in
ComposerPendingUserInputPanel.tsx). Scrolling should then rest the composer as it does without a question, leaving the card's header row.Actual behavior
The card shrinks to its header, but the answer field and the footer stay at full height, and scrolling never rests the composer while the question is pending, even when the answer field is empty and I haven't typed anything.
Likely cause
A pending question counts as expanded chrome:
showComposerTopDrawerincludespendingUserInputs.length > 0(ChatComposer.tsx), which setscomposerHasExpandedChrome, andcanScrollCollapseComposerrequires that to be false. Whether the card is collapsed lives inComposerPendingUserInputPanel(collapsedQuestionId), soChatComposernever sees it.Suggested fix
Let a scroll rest the composer when the question card is collapsed, showing the card's header row. To keep a half-written answer safe, decide by focus at the time of the scroll:
The same rule would also let a multiline draft rest, which #10444 currently prevents; that part is discussed in #6849.
Related
The card's collapse toggle came in #6773; the wider idea of getting the composer out of the way while a question is pending is #6849.
Impact
Minor bug or occasional failure
Version or commit
0.0.43-nightly.20260928.2375; code references are to main @ d2c9281
Environment
Desktop app on Linux (NixOS, Wayland, niri)
Logs or stack traces
Screenshots, recordings, or supporting files
No response
Workaround
None short of answering or dismissing the question.