修复 queue dry-run 与默认摘要输出

This commit is contained in:
Codex
2026-06-10 08:29:57 +08:00
parent 423d841298
commit e0f1a142f4
4 changed files with 302 additions and 40 deletions
+48 -2
View File
@@ -1,7 +1,7 @@
import assert from "node:assert/strict";
import type { JsonRecord } from "../../common/types.js";
import { assertNoSecretLeak, type SelfTestContext, type SelfTestResult } from "../harness.js";
import { renderRunEventSummaryTsv, summarizeQueueDispatchResult, summarizeRunEventPage, summarizeSessionEventPage } from "../../../scripts/src/cli.js";
import { renderRunEventSummaryTsv, summarizeQueueCommanderSnapshot, summarizeQueueDispatchResult, summarizeQueueTaskListResult, summarizeQueueTaskShowResult, summarizeRunEventPage, summarizeSessionEventPage } from "../../../scripts/src/cli.js";
export default function selfTest(_context: SelfTestContext): SelfTestResult {
const summary = summarizeRunEventPage({ items: [
@@ -74,5 +74,51 @@ export default function selfTest(_context: SelfTestContext): SelfTestResult {
assert.equal(((queueSummary.expandedOutput as JsonRecord).fullFlag), "--full");
assertNoSecretLeak(queueSummary);
return { name: "15-cli-events-summary", tests: ["runs-events-summary-tail", "runs-events-summary-tsv-redaction", "sessions-events-low-noise-summary", "queue-dispatch-low-noise-summary"] };
const noisyTask = {
id: "qt_noisy",
state: "completed",
queue: "dev",
lane: "case",
title: "noisy queue task",
priority: 50,
backendProfile: "codex",
providerId: "G14",
version: 9,
payload: { prompt: hugeRunnerTrace },
latestAttempt: { attemptId: "attempt_noisy", state: "completed", runId: "run_noisy", commandId: "cmd_noisy", runnerJobId: "rj_noisy", sessionId: "sess_noisy", sessionPath: "/api/v1/sessions/sess_noisy" },
sessionRef: { sessionId: "sess_noisy" },
unread: true,
active: false,
attentionState: "unread",
};
const commanderSummary = summarizeQueueCommanderSnapshot({
queue: null,
readerId: "cli",
stats: { queue: null, total: 2, maxVersion: 9, byState: { completed: 1 }, byLane: { case: 1 }, byBackendProfile: { codex: 1 }, generatedAt: "2026-06-10T00:00:00.000Z" },
items: [noisyTask, { ...noisyTask, id: "qt_hidden" }],
generatedAt: "2026-06-10T00:00:00.000Z",
}, { limit: 1 });
assert.equal(commanderSummary.action, "queue-commander-summary");
assert.equal(commanderSummary.sourceCount, 2);
assert.equal(commanderSummary.displayedCount, 1);
assert.equal(JSON.stringify(commanderSummary).includes("runner trace line"), false);
assert.equal((((commanderSummary.items as JsonRecord[])[0]?.latestAttempt as JsonRecord).sessionId), "sess_noisy");
assert.equal(String(((commanderSummary.drillDownCommands as JsonRecord).full)).includes("--full"), true);
assertNoSecretLeak(commanderSummary);
const listSummary = summarizeQueueTaskListResult({ items: [noisyTask], nextCursor: "9" }, { limit: 20 });
assert.equal(listSummary.action, "queue-list-summary");
assert.equal(JSON.stringify(listSummary).includes("runner trace line"), false);
assert.equal(String(((listSummary.drillDownCommands as JsonRecord).next)).includes("--cursor 9"), true);
assertNoSecretLeak(listSummary);
const showSummary = summarizeQueueTaskShowResult(noisyTask, "qt_noisy");
assert.equal(showSummary.action, "queue-show-summary");
assert.equal(JSON.stringify(showSummary).includes("runner trace line"), false);
assert.ok(Number(showSummary.payloadBytes) > 10_000);
assert.equal(String(((showSummary.pollCommands as JsonRecord).trace)).includes("sess_noisy"), true);
assertNoSecretLeak(showSummary);
return { name: "15-cli-events-summary", tests: ["runs-events-summary-tail", "runs-events-summary-tsv-redaction", "sessions-events-low-noise-summary", "queue-dispatch-low-noise-summary", "queue-list-show-commander-low-noise-summary"] };
}