fix: stabilize code queue retry claims

This commit is contained in:
Codex
2026-05-17 10:05:47 +00:00
parent f775990c90
commit 3d2af9ff86
7 changed files with 816 additions and 152 deletions
@@ -583,6 +583,14 @@ function terminalTask(task: QueueTask): boolean {
return task.status === "succeeded" || task.status === "failed" || task.status === "canceled";
}
function hasClaimMarkers(task: QueueTask): boolean {
return task.startedAt !== null
|| task.currentAttempt > 0
|| task.codexThreadId !== null
|| task.activeTurnId !== null
|| task.attempts.length > 0;
}
function terminalTaskUnread(task: QueueTask): boolean {
return terminalTask(task) && task.readAt === null;
}
@@ -1462,8 +1470,8 @@ function taskListResponse(task: QueueTask, lite = true): JsonRecord {
reasoningEffort: task.reasoningEffort,
maxAttempts: task.maxAttempts,
status: task.status,
queuedReason: task.status === "queued" ? { code: "mgr-visible", label: "QUEUED", message: "Task is visible from master code-queue-mgr; D601 scheduler will pick it up from PostgreSQL." } : null,
queuedReasonLabel: task.status === "queued" ? "QUEUED" : null,
queuedReason: (task.status === "queued" || task.status === "retry_wait") ? { code: "mgr-visible", label: task.status === "retry_wait" ? "RETRY" : "QUEUED", message: "Task is visible from master code-queue-mgr; D601 scheduler will pick it up from PostgreSQL." } : null,
queuedReasonLabel: task.status === "retry_wait" ? "RETRY" : task.status === "queued" ? "QUEUED" : null,
createdAt: task.createdAt,
updatedAt: task.updatedAt,
startedAt: task.startedAt,
@@ -1915,7 +1923,7 @@ async function retryTask(taskId: string, req: Request): Promise<Response> {
if (rows[0] === undefined) return { task: null, changed: false };
const nextTask = rowToTask(rows[0]);
if (!terminalTask(nextTask)) return { task: nextTask, changed: false };
nextTask.status = "queued";
nextTask.status = hasClaimMarkers(nextTask) ? "retry_wait" : "queued";
nextTask.finishedAt = null;
nextTask.readAt = null;
nextTask.cancelRequested = false;