diff --git a/packages/paperclip-runner/src/live/runnerd-codex-transport.test.ts b/packages/paperclip-runner/src/live/runnerd-codex-transport.test.ts index 87253a57f48..e16292d7641 100644 --- a/packages/paperclip-runner/src/live/runnerd-codex-transport.test.ts +++ b/packages/paperclip-runner/src/live/runnerd-codex-transport.test.ts @@ -5890,12 +5890,16 @@ describe("cold process admission budget", () => { it("bounds Pi cold startup and recovery at 60 seconds", () => { expect(coldAdmissionTimeoutMs("acpx", "pi", true)).toBe(60_000); }); + it("bounds a cold OpenCode restore at 60 seconds", () => { + expect(coldAdmissionTimeoutMs("opencode", undefined, true)).toBe(60_000); + }); it("preserves live adoption and every other provider at 30 seconds", () => { expect(coldAdmissionTimeoutMs("acpx", "pi", false)).toBe(30_000); + expect(coldAdmissionTimeoutMs("opencode", undefined, false)).toBe(30_000); for (const agent of ["codex", "claude", "cursor", "copilot", "grok", undefined]) { expect(coldAdmissionTimeoutMs("acpx", agent, true)).toBe(30_000); } - for (const provider of ["codex", "opencode", undefined]) { + for (const provider of ["codex", "cursor_cloud", undefined]) { expect(coldAdmissionTimeoutMs(provider, "pi", true)).toBe(30_000); } }); diff --git a/packages/paperclip-runner/src/live/runnerd-codex-transport.ts b/packages/paperclip-runner/src/live/runnerd-codex-transport.ts index 551fef7991e..2f19d3aa461 100644 --- a/packages/paperclip-runner/src/live/runnerd-codex-transport.ts +++ b/packages/paperclip-runner/src/live/runnerd-codex-transport.ts @@ -8288,7 +8288,8 @@ export function resolveRunnerdCodexSkillInputs( /** Controller admission budget; ordinary command and turn deadlines are independent. */ export function coldAdmissionTimeoutMs(provider: string | undefined, agent: string | undefined, coldProcess: boolean): number { - return coldProcess && provider === "acpx" && agent === "pi" ? 60_000 : 30_000; + if (!coldProcess) return 30_000; + return (provider === "acpx" && agent === "pi") || provider === "opencode" ? 60_000 : 30_000; } export interface RunnerCommandFailure extends Error {