feat: summarize codex app server turns

This commit is contained in:
AI Bot
2026-06-03 10:17:07 +08:00
parent 74b333ba2f
commit 1ae81fa3af
11 changed files with 200 additions and 5 deletions

View File

@@ -78,6 +78,19 @@ test("codex app-server discovery includes governance and MCP summaries without l
loaded: true,
updatedAt: "2026-06-03T08:20:00.000Z",
});
assert.equal(metadata.threadTurnSummary.threadCount, 2);
assert.equal(metadata.threadTurnSummary.totalTurnCount, 3);
assert.equal(metadata.threadTurnSummary.runningTurnCount, 1);
assert.equal(metadata.threadTurnSummary.completedTurnCount, 2);
assert.equal(metadata.threadTurnSummary.latestUpdatedAt, "2026-06-03T08:21:00.000Z");
assert.deepEqual(metadata.threadTurnSummary.threads[0], {
threadId: "thr-active",
turnCount: 2,
runningTurnCount: 1,
completedTurnCount: 1,
latestTurnStatus: "running",
latestTurnUpdatedAt: "2026-06-03T08:21:00.000Z",
});
const serialized = JSON.stringify(metadata);
assert.equal(serialized.includes("sk-secret-should-not-leak"), false);
@@ -90,6 +103,9 @@ test("codex app-server discovery includes governance and MCP summaries without l
assert.equal(serialized.includes("AGENTS.md"), false);
assert.equal(serialized.includes("secret user text should not leak"), false);
assert.equal(serialized.includes("Old private thread"), false);
assert.equal(serialized.includes("private active turn text should not leak"), false);
assert.equal(serialized.includes("private item content should not leak"), false);
assert.equal(serialized.includes("private idle turn text should not leak"), false);
});
function encodeWsTextFrame(value) {