mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-10 05:52:51 +00:00
fix(codex): cap app-server idle timers
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { MAX_TIMER_TIMEOUT_MS } from "openclaw/plugin-sdk/number-runtime";
|
||||
import { afterEach, describe, expect, it, vi } from "vitest";
|
||||
import {
|
||||
CODEX_APP_SERVER_STARTUP_TIMEOUT_FLOOR_MS,
|
||||
@@ -28,6 +29,15 @@ describe("Codex app-server attempt timeouts", () => {
|
||||
CODEX_APP_SERVER_STARTUP_TIMEOUT_FLOOR_MS,
|
||||
);
|
||||
expect(resolveCodexStartupTimeoutMs({ timeoutMs: 500, timeoutFloorMs: Number.NaN })).toBe(500);
|
||||
expect(resolveCodexStartupTimeoutMs({ timeoutMs: Number.MAX_SAFE_INTEGER })).toBe(
|
||||
MAX_TIMER_TIMEOUT_MS,
|
||||
);
|
||||
expect(
|
||||
resolveCodexStartupTimeoutMs({
|
||||
timeoutMs: Number.MAX_SAFE_INTEGER,
|
||||
timeoutFloorMs: Number.MAX_SAFE_INTEGER,
|
||||
}),
|
||||
).toBe(MAX_TIMER_TIMEOUT_MS);
|
||||
expect(
|
||||
resolveCodexStartupTimeoutMs({
|
||||
timeoutMs: Number.NaN,
|
||||
@@ -50,6 +60,9 @@ describe("Codex app-server attempt timeouts", () => {
|
||||
);
|
||||
expect(resolveCodexTurnCompletionIdleTimeoutMs(2.9)).toBe(2);
|
||||
expect(resolveCodexTurnCompletionIdleTimeoutMs(0)).toBe(1);
|
||||
expect(resolveCodexTurnCompletionIdleTimeoutMs(Number.MAX_SAFE_INTEGER)).toBe(
|
||||
MAX_TIMER_TIMEOUT_MS,
|
||||
);
|
||||
|
||||
expect(resolveCodexTurnAssistantCompletionIdleTimeoutMs(undefined)).toBe(
|
||||
CODEX_TURN_ASSISTANT_COMPLETION_IDLE_TIMEOUT_MS,
|
||||
@@ -77,6 +90,12 @@ describe("Codex app-server attempt timeouts", () => {
|
||||
);
|
||||
expect(resolveCodexPostToolRawAssistantCompletionIdleTimeoutMs(7.9, 123)).toBe(7);
|
||||
expect(resolveCodexPostToolRawAssistantCompletionIdleTimeoutMs(0, 123)).toBe(1);
|
||||
expect(
|
||||
resolveCodexPostToolRawAssistantCompletionIdleTimeoutMs(
|
||||
Number.MAX_SAFE_INTEGER,
|
||||
Number.MAX_SAFE_INTEGER,
|
||||
),
|
||||
).toBe(MAX_TIMER_TIMEOUT_MS);
|
||||
|
||||
expect(resolveCodexTurnTerminalIdleTimeoutMs(undefined)).toBe(
|
||||
CODEX_TURN_TERMINAL_IDLE_TIMEOUT_MS,
|
||||
@@ -86,6 +105,9 @@ describe("Codex app-server attempt timeouts", () => {
|
||||
);
|
||||
expect(resolveCodexTurnTerminalIdleTimeoutMs(3.7)).toBe(3);
|
||||
expect(resolveCodexTurnTerminalIdleTimeoutMs(-1)).toBe(1);
|
||||
expect(resolveCodexTurnTerminalIdleTimeoutMs(Number.MAX_SAFE_INTEGER)).toBe(
|
||||
MAX_TIMER_TIMEOUT_MS,
|
||||
);
|
||||
});
|
||||
|
||||
it("returns the startup operation result before timeout", async () => {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { parseFiniteNumber } from "openclaw/plugin-sdk/number-runtime";
|
||||
import { resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
|
||||
|
||||
export const CODEX_APP_SERVER_STARTUP_TIMEOUT_FLOOR_MS = 100;
|
||||
export const CODEX_TURN_COMPLETION_IDLE_TIMEOUT_MS = 60_000;
|
||||
@@ -11,9 +11,8 @@ export const CODEX_POST_REASONING_SOURCE_REPLY_IDLE_TIMEOUT_MS = 5 * 60_000;
|
||||
export const CODEX_TURN_TERMINAL_IDLE_TIMEOUT_MS = 30 * 60_000;
|
||||
|
||||
function resolvePositiveIntegerTimeoutMs(value: number | undefined, fallbackMs: number): number {
|
||||
const fallback = parseFiniteNumber(fallbackMs) ?? 1;
|
||||
const candidate = parseFiniteNumber(value) ?? fallback;
|
||||
return Math.max(1, Math.floor(candidate));
|
||||
const fallback = resolveTimerTimeoutMs(fallbackMs, 1);
|
||||
return resolveTimerTimeoutMs(value, fallback);
|
||||
}
|
||||
|
||||
export async function withCodexStartupTimeout<T>(params: {
|
||||
|
||||
Reference in New Issue
Block a user