Uh oh!
There was an error while loading. Please reload this page.
feat(web): add a setting to keep the composer from collapsing at rest - #9470
feat(web): add a setting to keep the composer from collapsing at rest#9470Xanacas wants to merge 1 commit into
Conversation
The resting composer introduced in pingdotgg#7855 shrinks the chat input to a single line whenever it loses focus or the conversation scrolls. Users with room to spare find that disruptive and had no way to opt out. Adds a client setting, Collapse the composer at rest (on by default), under Settings → General. Turning it off keeps the full composer on existing threads and disables the scroll-to-collapse gesture as well. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This adds a persisted, user-visible preference that changes existing-thread layout and scroll-collapse behavior, alongside a new product default. Its production-path impact and default choice warrant human review. You can add or adjust custom eligibility rules. Learn more. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:f55612c191
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| providerInputSubmissionError !== null || | ||
| hasImageAttachmentAttention; | ||
| const isComposerResting = shouldUseRestingComposerLayout({ | ||
| autoCollapseEnabled: settings.composerAutoCollapse, |
There was a problem hiding this comment.
Hydrate the collapse preference before laying out the composer
When a user has persisted composerAutoCollapse: false and reloads into an existing desktop thread, settings initially contains DEFAULT_CLIENT_SETTINGS—where this value is true—until the asynchronous client-settings read completes (useSettings.ts:56,110-126). This gate therefore renders the composer collapsed and then expands/animates it after hydration, so the opt-out still causes the disruptive transition on startup, especially when desktop IPC is slow. ChatView already tracks clientSettingsHydrated; use that state to avoid committing the default collapse layout before the preference is known.
Useful? React with 👍 / 👎.
juliusmarminge
commented
Sep 3, 2026
Superseded by #9469 (merged) — same composer-collapse setting (blur/scroll opt-out). Closing this duplicate. |
Problem
The resting composer from #7855 shrinks the chat input to a single line whenever it loses focus or the conversation scrolls. On a large display that reclaimed space is not needed, and the constant shrink/expand is disruptive. There was no way to opt out.
Fix
Adds a client setting Collapse the composer at rest (on by default) under Settings → General, next to the other composer toggles. Turning it off:
The gate lives in
shouldUseRestingComposerLayout, so the resting/expanded transition, relocated controls, and inline image previews all follow from that single decision. New-thread and phone-width layouts are unchanged.Surfaces walked: contracts schema + patch, Settings panel row with reset and "restore defaults" wiring, settings search entry, desktop client-settings fixture, user docs. Mobile is unaffected since the resting layout is desktop/web only.
Verified with the touched unit tests (
composerFooterLayout,settingsSearch,settingsLayout,DesktopClientSettings) and typechecks for contracts, web, and desktop.Built with Claude Fable 5.1 in Claude Code.
🤖 Generated with Claude Code
Note
Add
composerAutoCollapsesetting to keep composer expanded at restcomposerAutoCollapseboolean toClientSettingsSchemaandClientSettingsPatch, defaulting to enabled when absent.shouldUseRestingComposerLayoutand the desktop scroll-collapse tracking inChatComposer, so disabling it keeps the full composer visible on existing threads.shouldUseRestingComposerLayoutpredicate now requiresautoCollapseEnabledas input, so any caller not updated in composerFooterLayout.ts will fail to compile; mobile collapse behavior is unchanged and governed by its existing path.Macroscope summarized f55612c.