fix: use idle timeout for codex turns

This commit is contained in:
AgentRun Codex
2026-06-11 12:52:46 +08:00
parent dafcfc7ce4
commit f49695a821
11 changed files with 115 additions and 72 deletions
+11 -4
View File
@@ -119,7 +119,7 @@ export function renderAipodSpec(record: AipodSpecRecord, input: RenderAipodInput
const payload = mergeRecords(spec.payloadDefaults, input.payload);
if (typeof input.prompt === "string" && input.prompt.trim().length > 0) payload.prompt = input.prompt;
applyModelPayload(payload, spec.model);
const sessionRef = renderSessionRef(spec.sessionRef ?? null, input);
const sessionRef = renderSessionRef(spec.sessionRef ?? null, input, record, payload);
const queueTask = validateCreateQueueTask({
tenantId: input.tenantId ?? spec.tenantId ?? "unidesk",
projectId: input.projectId ?? spec.projectId ?? "default",
@@ -212,10 +212,17 @@ function validateAipodProviderCredential(profile: BackendProfile, policy: Execut
}
}
function renderSessionRef(base: SessionRef | null, input: RenderAipodInput): SessionRef | null {
function renderSessionRef(base: SessionRef | null, input: RenderAipodInput, record: AipodSpecRecord, payload: JsonRecord): SessionRef | null {
if (input.sessionRef !== undefined) return input.sessionRef;
if (!input.sessionId) return base;
return { ...(base ?? {}), sessionId: input.sessionId };
const sessionId = input.sessionId ?? base?.sessionId ?? defaultAipodSessionId(record, input, payload);
return { ...(base ?? {}), sessionId, conversationId: base?.conversationId ?? sessionId };
}
function defaultAipodSessionId(record: AipodSpecRecord, input: RenderAipodInput, payload: JsonRecord): string {
const seed = input.idempotencyKey ?? `${record.name}:${stableHash({ prompt: input.prompt ?? null, payload })}`;
const suffix = stableHash({ aipod: record.name, seed }).slice(0, 24);
const name = fileSafeAipodName(record.name).toLowerCase().replace(/[^a-z0-9]+/gu, "_").replace(/^_+|_+$/gu, "") || "aipod";
return `sess_${name}_${suffix}`;
}
function validateWorkspaceRef(record: JsonRecord): WorkspaceRef {