multiline paste and cursor fix
This commit is contained in:
28
CLAUDE.md
28
CLAUDE.md
@@ -145,6 +145,24 @@ UI thread redraws on its own tick (no channel; just the mutex).
|
||||
- Mouse is captured: wheel always scrolls the feed (regardless of focus), and
|
||||
left-drag selects screen text, copied on release via OSC 52 (like Claude
|
||||
Code). Native terminal selection therefore needs shift held.
|
||||
- Bracketed paste is enabled on the outer terminal (`EnableBracketedPaste`):
|
||||
a multiline paste arrives as one `Event::Paste` and, when the claude pane
|
||||
has focus, is handed to the child via `EmbeddedTerm::paste`
|
||||
(wezterm-term's `send_paste` re-wraps it in bracketed markers iff the child
|
||||
enabled them) — so Claude Code inserts it as one block instead of
|
||||
submitting on the first embedded newline. Paste is ignored when the pane is
|
||||
unfocused (nothing else takes text input).
|
||||
- Pane cursor shape mirrors the child: each frame `draw` records the child's
|
||||
DECSCUSR shape (`EmbeddedTerm::cursor_shape`) into `EmbedUi::cursor_shape`
|
||||
and the event loop emits `SetCursorStyle` only on change (so a blinking
|
||||
cursor isn't reset every frame), resetting to `DefaultUserShape` when no
|
||||
pane cursor is shown / on teardown. Without this the outer terminal kept a
|
||||
stale block cursor regardless of Claude Code's insert-vs-vim-normal state.
|
||||
`term::cursor_style` maps the child's DECSCUSR `Default` to a blinking *bar*,
|
||||
not `DefaultUserShape`: Claude Code's normal input leaves the cursor at the
|
||||
terminal default expecting a bar caret, so forwarding the outer terminal's
|
||||
own default (often a block) would wrongly show a block in insert mode; vim
|
||||
normal mode still sends an explicit `SteadyBlock`.
|
||||
- ratatui needs feature `unstable-rendered-line-info` for `Paragraph::line_count`
|
||||
(used to compute cached per-entry wrapped heights for follow/auto-scroll).
|
||||
- reqwest is `default-features = false` + `rustls-tls,stream` — don't enable
|
||||
@@ -170,11 +188,11 @@ UI thread redraws on its own tick (no channel; just the mutex).
|
||||
- Tool results only appear once the *next* request fires; if the session ends
|
||||
right after a tool call, that result is never seen. Output is what Claude
|
||||
Code sends the model (i.e. post-truncation).
|
||||
- Embedded pane: no bracketed paste or mouse forwarding yet; no scrollback
|
||||
view (live screen only); shift+enter needs kitty keyboard protocol pushed
|
||||
on the outer terminal (not done); permission prompts aren't detected for
|
||||
pane growth (not visible in the API stream — would need a Notification
|
||||
hook hitting a local control endpoint).
|
||||
- Embedded pane: no mouse forwarding yet; no scrollback view (live screen
|
||||
only); shift+enter needs kitty keyboard protocol pushed on the outer
|
||||
terminal (not done); permission prompts aren't detected for pane growth
|
||||
(not visible in the API stream — would need a Notification hook hitting a
|
||||
local control endpoint).
|
||||
- Materialized branch files satisfy our own parser (round-trip tested) but
|
||||
Claude Code's loader tolerance is only verified empirically by resuming
|
||||
one — if a CC update changes the JSONL schema, retest `b` + ctrl-↓. The
|
||||
|
||||
Reference in New Issue
Block a user