fix(code-queue): harden active state recovery
This commit is contained in:
@@ -698,6 +698,7 @@ function normalizeTask(value: unknown): QueueTask {
|
||||
nextPrompt: typeof record.nextPrompt === "string" ? record.nextPrompt : null,
|
||||
nextMode: record.nextMode === "initial" || record.nextMode === "retry" ? record.nextMode : null,
|
||||
};
|
||||
if (task.status !== "running" && task.status !== "judging") task.activeTurnId = null;
|
||||
task.stepCount = numberField(record.stepCount ?? record.llmStepCount, task.output.length);
|
||||
task.llmStepCount = task.stepCount;
|
||||
task.outputMaxSeq = Math.max(outputMaxSeq(task), numberField(record.outputMaxSeq, 0));
|
||||
@@ -1254,7 +1255,7 @@ async function queueSummary(tasks?: QueueTask[], queueRecords?: QueueRecord[]):
|
||||
memo[task.status] = (memo[task.status] ?? 0) + 1;
|
||||
return memo;
|
||||
}, {});
|
||||
const orphanedActiveTaskIds = taskRows.filter((task) => task.status === "running" || task.status === "judging").map((task) => task.id).sort();
|
||||
const databaseActiveTaskIds = taskRows.filter((task) => task.status === "running" || task.status === "judging").map((task) => task.id).sort();
|
||||
const queueList = Array.from(summaries.values()).sort((left, right) => String(left.id).localeCompare(String(right.id)));
|
||||
return {
|
||||
total: taskRows.length,
|
||||
@@ -1267,8 +1268,11 @@ async function queueSummary(tasks?: QueueTask[], queueRecords?: QueueRecord[]):
|
||||
activeRunSlotWaiters: [],
|
||||
activeTaskIds: [],
|
||||
activeTaskId: null,
|
||||
orphanedActiveTaskIds,
|
||||
orphanedActiveTaskCount: orphanedActiveTaskIds.length,
|
||||
databaseActiveTaskIds,
|
||||
databaseActiveTaskCount: databaseActiveTaskIds.length,
|
||||
executionStateSource: "postgres-control-plane",
|
||||
orphanedActiveTaskIds: [],
|
||||
orphanedActiveTaskCount: 0,
|
||||
processing: false,
|
||||
counts,
|
||||
unreadTerminal: taskRows.reduce((total, task) => total + (terminalTaskUnread(task) ? 1 : 0), 0),
|
||||
|
||||
Reference in New Issue
Block a user