diff --git a/src/main/providers/local-pty-provider-shell-readiness.test.ts b/src/main/providers/local-pty-provider-shell-readiness.test.ts index c4621382e66..0d80fedf4a1 100644 --- a/src/main/providers/local-pty-provider-shell-readiness.test.ts +++ b/src/main/providers/local-pty-provider-shell-readiness.test.ts @@ -114,6 +114,7 @@ vi.mock('../shell-prompt-readiness-probe', () => ({ })) import { LocalPtyProvider } from './local-pty-provider' +import { STARTUP_COMMAND_READY_MAX_WAIT_MS } from './local-pty-shell-ready-startup-command' import { applyLocalPtyProviderMockDefaults, createLocalPtyMockProcess, @@ -240,6 +241,12 @@ describe('LocalPtyProvider', () => { vi.advanceTimersByTime(1500) await Promise.resolve() + expect(onData).not.toHaveBeenCalled() + expect(mockProc.write).not.toHaveBeenCalled() + + vi.advanceTimersByTime(STARTUP_COMMAND_READY_MAX_WAIT_MS - 1500) + await Promise.resolve() + expect(onData).toHaveBeenCalledWith( expect.any(String), '\x1b]777;orca-shell-ready', diff --git a/src/main/providers/local-pty-shell-ready-startup-command.ts b/src/main/providers/local-pty-shell-ready-startup-command.ts index bf7f73c19d7..39ce2c4bbc9 100644 --- a/src/main/providers/local-pty-shell-ready-startup-command.ts +++ b/src/main/providers/local-pty-shell-ready-startup-command.ts @@ -4,7 +4,8 @@ import type * as pty from 'node-pty' import { buildStartupCommandSubmission } from '../../shared/startup-command-submission' -export const STARTUP_COMMAND_READY_MAX_WAIT_MS = 1500 +// Match the daemon barrier so slow interactive rc files do not receive queued commands mid-startup. +export const STARTUP_COMMAND_READY_MAX_WAIT_MS = 15_000 const POST_SHELL_READY_STARTUP_COMMAND_DELAY_MS = 30 const POST_SHELL_READY_STARTUP_COMMAND_FALLBACK_MS = 200