fix: preserve claimed code queue read state

This commit is contained in:
Codex
2026-05-17 11:22:22 +00:00
parent b281906e19
commit a24f8b9968
2 changed files with 9 additions and 1 deletions
@@ -1620,6 +1620,14 @@ async function runDatabaseClaimMoveSelfTest(): Promise<JsonValue | null> {
}
async function loadPrunedDatabaseTaskRows(where: "all" | "hot"): Promise<DatabaseTaskRow[]> {
if (where === "hot") {
return await sql<DatabaseTaskRow[]>`
SELECT id, updated_at, status, read_at, task_json - 'output' - 'events' AS task_json
FROM unidesk_code_queue_tasks
WHERE status IN ('queued', 'running', 'judging', 'retry_wait')
ORDER BY created_at ASC, id ASC
`;
}
return await sql<DatabaseTaskRow[]>`
SELECT id, updated_at, status, read_at, task_json
FROM (
@@ -74,7 +74,7 @@ function taskUpdatedAtMs(task: QueueTask): number {
}
function memoryTaskIsNewerThanDatabase(memoryTask: QueueTask, databaseTask: QueueTask): boolean {
return taskUpdatedAtMs(memoryTask) > taskUpdatedAtMs(databaseTask);
return preferHotTaskForRead(memoryTask, databaseTask);
}
function mergeReadTaskByFreshness(target: Map<string, QueueTask>, task: QueueTask): void {