feat(chat): composer grows to two thirds of the pane, Enter continues lists; drop the fullscreen editor - #521
Merged
Merged
Conversation
…reen editor The desktop-only fullscreen toggle existed because the editor stopped growing at 200px. Let the composer grow with its content up to two thirds of the chat pane instead (a cqh cap on desktop, the pane's own height formula on mobile where the composer is portaled), with only the editor scrolling past that. Enter/Shift+Enter behave as before outside fullscreen. Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
|
…the portaled composer The two-thirds cap now applies to the input card, which never shrinks, so its send row can't be squeezed out by a long pending-changes list; the composer as a whole is capped at the pane and the list (its own scroller) gives way instead. On mobile, --s2b-view-top is now also set on the portaled composer, which no longer inherits it from .chat-root. Co-Authored-By: Claude <noreply@anthropic.com>
Under the composer's pane cap the bar gives way to the input card, but overflow: hidden zeroed its flex minimum, so a short pane could clip the Accept/Reject All row. Floor it at the measured summary height. Co-Authored-By: Claude <noreply@anthropic.com>
In a very short pane, a full-height card plus the pending summary and banner could overflow the pane cap. The card may now shrink too, after the pending list (far larger shrink factor), down to its controls plus one editor line. Co-Authored-By: Claude <noreply@anthropic.com>
On desktop Enter always sent, so a list could never get a second item (Shift+Enter is Obsidian's plain line break, which adds no marker). On a list line, Enter now falls through to Obsidian's own handler, which continues bullets, numbers and checkboxes and ends the list on an empty item; the next Enter sends. Mod+Enter sends from anywhere, and the send tooltip says so. Co-Authored-By: Claude <noreply@anthropic.com>
Replay the fences above the cursor so a line like `- example` in a fenced code block is not treated as a list item; Enter sends there as elsewhere. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Removes the desktop-only fullscreen chat editor. The composer now grows with its content up to two thirds of the chat pane; past that, only the editor scrolls. The fullscreen toggle only existed because the editor stopped growing at
max-h-[200px]..chat-rootbecomes a size container, and the in-flow composer is capped atcalc(100cqh * 2 / 3).cqhwould fall back to the full viewport and ignore the keyboard. So the portaled rule restates the cap against the pane's own height formula (100vh − view top − keyboard/toolbar band).Lists (added in this PR): before, Enter on desktop always sent, so a list could never get a second item (Shift+Enter is Obsidian's plain line break and adds no marker). On a list line (
-,*,+,1.,1),- [ ], indented or quoted), Enter now falls through to Obsidian's own handler. That continues the list, and Enter on an empty item ends it; the next Enter sends. Mod+Enter sends from anywhere, and the send tooltip mentions it. Mobile is unchanged (Enter was already a newline there).How I tested it
bun run check,format,lintandtestpass. Desktop, WT3 slot vault: with a 200-line draft the card stops at 2/3 of the pane (858px of 1287px), the editor scrolls and the send row stays visible. Lists, live in the chat input:- one+ Enter gives-; Enter on the empty bullet removes it;1. a+ Enter gives2..isMarkdownListLinehas unit tests. The pending-bar and mobile paths are untested live; that is pending the maintainer's own desktop and iOS test (type a long draft, confirm the composer stops at about 2/3 of the pane and the editor scrolls, also with the keyboard open on mobile and with a pending-changes bar showing).AI assistance: Claude Code wrote the change from Leo's brief ("remove fullscreen chat input, let the input grow to ~2/3 of the chat height", then "Enter should continue Markdown lists"); Leo reviews and tests it live.
Checklist
bun run check,bun run format,bun run lint, andbun run testpass locallymanifest.json: I noted that the docs site needs updating (see "Documentation" in CONTRIBUTING.md)