feat: freeze legacy code queue entry

This commit is contained in:
Codex
2026-06-09 01:14:23 +00:00
parent 7306000ac1
commit 987f41d258
9 changed files with 389 additions and 103 deletions
+41 -10
View File
@@ -64,6 +64,16 @@ const defaultSteerRetryDelayMs = 750;
const maxSteerRetryDelayMs = 5_000;
const codexTaskStatuses = ["queued", "running", "judging", "retry_wait", "succeeded", "failed", "canceled"] as const;
const codexTerminalTaskStatuses = ["succeeded", "failed", "canceled"] as const;
const agentRunQueueReplacementCommands = {
queueCommander: "bun scripts/cli.ts agentrun v01 queue commander --reader-id cli",
queueSubmit: "bun scripts/cli.ts agentrun v01 queue submit --json-file <task.json>",
queueDispatch: "bun scripts/cli.ts agentrun v01 queue dispatch <taskId> --json-file <dispatch.json>",
sessionsTrace: "bun scripts/cli.ts agentrun v01 sessions trace <sessionId> --after-seq 0 --limit 100",
sessionsOutput: "bun scripts/cli.ts agentrun v01 sessions output <sessionId> --after-seq 0 --limit 100",
sessionsSteer: "bun scripts/cli.ts agentrun v01 sessions steer <sessionId> --prompt-file <path>",
sessionsRead: "bun scripts/cli.ts agentrun v01 sessions read <sessionId> --reader-id cli",
queueCancel: "bun scripts/cli.ts agentrun v01 queue cancel <taskId> --reason <text>",
};
const codexTaskStatusAliases: Record<string, string> = {
completed: "succeeded",
complete: "succeeded",
@@ -87,6 +97,31 @@ const codexTaskStatusAliases: Record<string, string> = {
"retry-wait": "retry_wait",
};
function legacyCodeQueueFrozenMutation(command: string): Record<string, unknown> {
return {
ok: false,
frozen: true,
mutation: false,
degradedReason: "legacy-code-queue-frozen",
error: "旧 UniDesk Code Queue 新任务和执行写入口已冻结;新任务使用 AgentRun Queue。",
command,
replacement: agentRunQueueReplacementCommands,
legacy: {
retainedFor: "historical archive/read-only troubleshooting; no new old-runtime work",
allowed: [
"bun scripts/cli.ts codex tasks",
"bun scripts/cli.ts codex task <taskId>",
"bun scripts/cli.ts codex output <taskId>",
"bun scripts/cli.ts codex unread",
"bun scripts/cli.ts codex read <taskId>",
"bun scripts/cli.ts codex queues",
"bun scripts/cli.ts codex interrupt <taskId>",
],
noDoubleWrite: true,
},
};
}
interface CodexTaskOptions {
detail: boolean;
trace: boolean;
@@ -8366,7 +8401,7 @@ export async function runCodeQueueCommand(config: UniDeskConfig, args: string[])
return codexPromptLintTask(args.slice(1));
}
if (action === "submit" || action === "enqueue") {
return codexSubmitTask(args.slice(1));
return legacyCodeQueueFrozenMutation(`codex ${action}`);
}
if (action === "task" || action === "summary" || action === "show") {
const taskId = requireTaskId(taskIdArg, `codex ${action}`);
@@ -8401,27 +8436,23 @@ export async function runCodeQueueCommand(config: UniDeskConfig, args: string[])
if (action === "queue") {
const sub = taskIdArg ?? "list";
if (sub === "list") return codeQueues(args.slice(2));
if (sub === "create") return codexCreateQueue(requireQueueId(args.slice(2), "queue create"));
if (sub === "create") return legacyCodeQueueFrozenMutation("codex queue create");
if (sub === "merge") {
const mergeArgs = args.slice(2);
return codexMergeQueue(requireMergeSourceQueueId(mergeArgs, "queue merge"), requireMergeTargetQueueId(mergeArgs, "queue merge"));
return legacyCodeQueueFrozenMutation("codex queue merge");
}
}
if (action === "move") {
const taskId = requireTaskId(taskIdArg, "codex move");
return codexMoveTask(taskId, requireQueueId(args.slice(2), "codex move"));
return legacyCodeQueueFrozenMutation("codex move");
}
if (action === "interrupt" || action === "cancel") {
const taskId = requireTaskId(taskIdArg, `codex ${action}`);
return codexInterruptTask(taskId);
}
if (action === "steer") {
const taskId = requireTaskId(taskIdArg, "codex steer");
return codexSteerTask(taskId, args.slice(2));
return legacyCodeQueueFrozenMutation("codex steer");
}
if (action === "resume") {
const taskId = requireTaskId(taskIdArg, "codex resume");
return codexResumeTask(taskId, args.slice(2));
return legacyCodeQueueFrozenMutation("codex resume");
}
if (action === "steer-confirm" || action === "steer-confirmation") {
const taskId = requireTaskId(taskIdArg, `codex ${action}`);