feat: adapt codex app-server protocol updates
This commit is contained in:
@@ -119,3 +119,64 @@ test("canceling a running task prevents late success completion from overwriting
|
||||
assert.equal(finalTask?.status, "canceled");
|
||||
assert.equal(finalTask?.replyBody, undefined);
|
||||
});
|
||||
|
||||
test("streaming task progress updates mutate the progress card without completing the task", async () => {
|
||||
await queueDesktopTask("live-progress-task");
|
||||
const claimed = await data.claimNextMasterAgentTask("mac-studio");
|
||||
assert.equal(claimed?.status, "running");
|
||||
|
||||
const updated = await data.updateMasterAgentTaskProgress({
|
||||
taskId: "live-progress-task",
|
||||
deviceId: "mac-studio",
|
||||
status: "running",
|
||||
executionProgress: {
|
||||
steps: [
|
||||
{ text: "读取 app-server 事件流", status: "done" },
|
||||
{ text: "等待目标线程回复", status: "running" },
|
||||
],
|
||||
artifacts: [{ label: "codex_app_server_protocol.schemas.json", kind: "file" }],
|
||||
},
|
||||
});
|
||||
|
||||
assert.equal(updated.status, "running");
|
||||
assert.equal(updated.completedAt, undefined);
|
||||
|
||||
const state = await data.readState();
|
||||
const progressMessage = state.projects
|
||||
.find((project) => project.id === "master-agent")
|
||||
?.messages.find((message) => message.executionProgress?.taskId === "live-progress-task");
|
||||
assert.equal(progressMessage?.executionProgress?.status, "running");
|
||||
assert.equal(progressMessage?.executionProgress?.steps[0]?.text, "读取 app-server 事件流");
|
||||
assert.equal(progressMessage?.executionProgress?.steps[1]?.status, "running");
|
||||
assert.equal(progressMessage?.executionProgress?.artifacts?.[0]?.label, "codex_app_server_protocol.schemas.json");
|
||||
});
|
||||
|
||||
test("queued thread collaboration tasks retain source and target thread references", async () => {
|
||||
const task = await data.queueMasterAgentTask({
|
||||
taskId: "thread-collaboration-task",
|
||||
projectId: "master-agent",
|
||||
taskType: "conversation_reply",
|
||||
requestMessageId: "msg-thread-collaboration",
|
||||
requestText: "让源线程和目标线程对一下方案",
|
||||
executionPrompt: "让源线程和目标线程对一下方案",
|
||||
requestedBy: "krisolo",
|
||||
requestedByAccount: "krisolo",
|
||||
deviceId: "mac-studio",
|
||||
intentCategory: "thread_collaboration",
|
||||
sourceThreadId: "source-thread-id",
|
||||
sourceThreadDisplayName: "源线程",
|
||||
sourceCodexThreadRef: "019d-source-codex",
|
||||
targetThreadId: "target-thread-id",
|
||||
targetThreadDisplayName: "目标线程",
|
||||
targetCodexThreadRef: "019d-target-codex",
|
||||
});
|
||||
|
||||
assert.equal(task.intentCategory, "thread_collaboration");
|
||||
assert.equal(task.sourceThreadId, "source-thread-id");
|
||||
assert.equal(task.sourceThreadDisplayName, "源线程");
|
||||
assert.equal(task.sourceCodexThreadRef, "019d-source-codex");
|
||||
|
||||
const claimed = await data.claimNextMasterAgentTask("mac-studio");
|
||||
assert.equal(claimed?.sourceCodexThreadRef, "019d-source-codex");
|
||||
assert.equal(claimed?.targetCodexThreadRef, "019d-target-codex");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user