diff --git a/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts b/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts index 58b05082d0..3df945fec7 100644 --- a/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts +++ b/packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts @@ -95,11 +95,16 @@ describe.skipIf(!hasPwsh)('persistent pwsh through a real cordis.yml Loader comp ' idleSilenceMs: 300', ' handoffGraceMs: 300', ' scrollbackLines: 20000', - ' timeoutMs: 60000', + // The first call pays the full pwsh cold-start latency (spawn + .NET + + // PSReadLine + Defender) inside the tool deadline; a 60s bound on the + // fully loaded self-hosted Windows pool is exceeded often enough to + // reset the session mid-test (2026-09-01, two runs ~62s each). 300s + // matches the product default so cold start no longer races the budget. + ' timeoutMs: 300000', ' disposeGraceMs: 500', "- name: '@deepseek-ai/dsh-tool-pwsh-persistent'", ' config:', - ' timeoutMs: 60000', + ' timeoutMs: 300000', '', ].join('\n')) @@ -166,5 +171,5 @@ describe.skipIf(!hasPwsh)('persistent pwsh through a real cordis.yml Loader comp const exited = text(await execute('exit', 'exit')) expect(exited).toContain('next pwsh call starts from the workspace') expect(text(await execute('after-exit', 'Write-Output "$PWD"'))).toBe(root) - }, 120_000) + }, 300_000) })