feat: adapt codex app-server protocol updates
This commit is contained in:
@@ -105,6 +105,7 @@ process.exit(0);
|
||||
await chmod(fakeCodexPath, 0o755);
|
||||
|
||||
const completeBodies = [];
|
||||
const progressBodies = [];
|
||||
let claimCount = 0;
|
||||
const controlPlane = createServer(async (request, response) => {
|
||||
const url = request.url || "";
|
||||
@@ -134,6 +135,15 @@ process.exit(0);
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (
|
||||
request.method === "POST" &&
|
||||
url === "/api/v1/master-agent/tasks/conversation-app-server-task/progress"
|
||||
) {
|
||||
progressBodies.push(await readJsonBody(request));
|
||||
response.writeHead(200, { "content-type": "application/json" });
|
||||
response.end(JSON.stringify({ ok: true }));
|
||||
return;
|
||||
}
|
||||
if (
|
||||
request.method === "POST" &&
|
||||
url === "/api/v1/master-agent/tasks/conversation-app-server-task/complete"
|
||||
@@ -201,6 +211,7 @@ process.exit(0);
|
||||
cwd: repoRoot,
|
||||
env: {
|
||||
...process.env,
|
||||
BOSS_CODEX_APP_SERVER_FIXTURE_EMIT_PROGRESS: "1",
|
||||
PATH: `${fakeBinDir}${path.delimiter}${process.env.PATH || ""}`,
|
||||
},
|
||||
stdio: ["ignore", "pipe", "pipe"],
|
||||
@@ -212,6 +223,16 @@ process.exit(0);
|
||||
assert.equal(body.status, "completed");
|
||||
assert.equal(body.replyBody, "APP_SERVER_REPLY:用 app server 回复");
|
||||
assert.notEqual(body.replyBody, "CLI_FALLBACK_USED");
|
||||
assert.ok(progressBodies.length >= 1, "expected local-agent to stream app-server progress before completion");
|
||||
assert.equal(progressBodies[0].status, "running");
|
||||
assert.equal(progressBodies[0].executionProgress.steps[0].text, "读取 Codex 官方 app-server 协议");
|
||||
assert.ok(
|
||||
progressBodies.some((progress) => progress.executionProgress?.branch?.additions === 181),
|
||||
"expected one streamed progress update to include diff stats",
|
||||
);
|
||||
assert.equal(body.executionProgress.steps[0].text, "读取 Codex 官方 app-server 协议");
|
||||
assert.equal(body.executionProgress.branch.additions, 181);
|
||||
assert.equal(body.executionProgress.artifacts[0].label, "codex-app-server-protocol-0.135.0.json");
|
||||
} finally {
|
||||
child.kill("SIGTERM");
|
||||
await new Promise((resolve) => {
|
||||
|
||||
Reference in New Issue
Block a user