add native composer to the Claude pane (T-138)

A no-Material EditableText below the ConversationView. Enter submits,
Shift+Enter inserts a newline (a Shortcuts override maps plain Enter to
a submit intent; shifted Enter falls through to the default newline).

Submitted text goes to Claude over pane.write — the same input verb the
terminal pane uses, so D-6 parity holds and there's no Claude-only path.
Multi-line input is wrapped in bracketed-paste markers so the embedded
newlines submit as a single message instead of a stream of submits.

Paste handling is stubbed via an injectable resolver (file/image @path
support lands in the next commit); plain-text paste falls through.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-22 23:30:33 +02:00
co-authored by Claude Opus 4.7
parent 0b942db251
commit b3fa69c982
6 changed files with 295 additions and 2 deletions
+5 -1
View File
@@ -18,11 +18,15 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit.
### Added
- Native composer in the Claude pane (T-138) — type below the
conversation and press Enter to send (Shift+Enter for a newline);
input reaches Claude over `pane.write`. Multi-line text is sent as a
bracketed paste so it submits as one message.
- Claude pane renders natively from the transcript (T-137, D-75) — the
conversation shows as native cards (user / assistant markdown /
thinking / tool-use / result) instead of a terminal, with text
selection + copy across cards. Claude still runs in tmux; the terminal
builtin stays for general use. (Input composer lands next, T-138.)
builtin stays for general use.
- Multi-file editor tabs — the editor pane now shows one tab per open
buffer (filename + a dot when unsaved) via the shared tab strip;
opening a second file no longer replaces the first. Click a tab to