From 1fed8e2eaa2b9d349832b0481550178354bc8d69 Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Fri, 19 Dec 2025 12:01:23 -0800 Subject: [PATCH] fix(spawn): increase paste debounce to prevent Enter racing paste MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The spawn context inject was sending Enter too quickly after pasting large messages. Claude needs time to process the paste before Enter is sent (Claude shows "Pasted text #1 +N lines" message). Increased debounce timing: - Base delay: 100ms → 200ms - Per-KB scaling: 50ms → 100ms - Max cap: 500ms → 1500ms For a typical 4KB spawn context, this gives 600ms (vs 300ms before). Fixes: gt-eqys 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/session/manager.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/session/manager.go b/internal/session/manager.go index 051c49df..f557f6a8 100644 --- a/internal/session/manager.go +++ b/internal/session/manager.go @@ -241,10 +241,11 @@ func (m *Manager) Inject(polecat, message string) error { } // Use longer debounce for large messages (spawn context can be 1KB+) - // Scale delay based on message size: 100ms base + 50ms per KB - debounceMs := 100 + (len(message)/1024)*50 - if debounceMs > 500 { - debounceMs = 500 // Cap at 500ms + // Claude needs time to process paste before Enter is sent + // Scale delay based on message size: 200ms base + 100ms per KB + debounceMs := 200 + (len(message)/1024)*100 + if debounceMs > 1500 { + debounceMs = 1500 // Cap at 1.5s for large pastes } return m.tmux.SendKeysDebounced(sessionID, message, debounceMs)