fix: increase delays in spawn prompt submission to ensure Enter is processed (#62)
Fixes issue where spawned sessions would send the prompt text but the Enter keystroke would not be submitted, requiring manual Enter press. Changes: - Increase delay after paste-buffer from 300ms to 1000ms in tmux.ts sendKeys() to ensure tmux processes the paste before receiving Enter keystroke - Add 100ms delay after Escape key to ensure it's processed before pasting - Increase spawn wait time from 1s to 2s before sending initial prompt to allow Claude to fully initialize (permission prompts, startup, etc.) These longer delays account for: 1. tmux paste buffer processing time 2. Claude permission prompt interactions 3. Agent initialization and readiness Closes: FIX-SPAWN-PROMPT-SUBMIT
This commit is contained in:
parent
cd9003a7db
commit
dbeb8d9fb2
|
|
@ -221,7 +221,9 @@ async function spawnSession(
|
|||
});
|
||||
|
||||
if (composedPrompt) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||
// Wait for agent to be fully ready (permission prompts, initialization, etc.)
|
||||
// Longer delay ensures Claude is ready to receive input before sending prompt
|
||||
await new Promise((resolve) => setTimeout(resolve, 2000));
|
||||
await tmuxSendKeys(sessionName, composedPrompt);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -129,6 +129,8 @@ export async function sendKeys(
|
|||
): Promise<void> {
|
||||
// Clear any partial input first (matches bash reference scripts)
|
||||
await tmux("send-keys", "-t", sessionName, "Escape");
|
||||
// Small delay to ensure Escape is processed before pasting
|
||||
await new Promise((resolve) => setTimeout(resolve, 100));
|
||||
|
||||
if (text.includes("\n") || text.length > 200) {
|
||||
// Use a named buffer to avoid global paste buffer race conditions
|
||||
|
|
@ -158,9 +160,11 @@ export async function sendKeys(
|
|||
}
|
||||
|
||||
if (pressEnter) {
|
||||
// Small delay for paste to complete before sending Enter
|
||||
// Delay for paste to complete before sending Enter
|
||||
// Higher delay needed when using paste-buffer to ensure tmux processes the paste
|
||||
// before receiving the Enter keystroke (especially with Claude permission prompts)
|
||||
if (text.includes("\n") || text.length > 200) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 300));
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||
}
|
||||
await tmux("send-keys", "-t", sessionName, "Enter");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue