fix: 收敛 queue commander 默认记录字节噪声

This commit is contained in:
Codex
2026-06-10 12:29:18 +08:00
parent 1b25a6cb15
commit 5b89d7b4b5
3 changed files with 9 additions and 6 deletions
+5 -5
View File
@@ -683,7 +683,7 @@ function summarizeMutationBody(body: JsonRecord): JsonRecord {
function summarizeQueueStats(record: JsonRecord | null): JsonRecord | null { function summarizeQueueStats(record: JsonRecord | null): JsonRecord | null {
if (!record) return null; if (!record) return null;
return { return withoutFullRecordBytes({
queue: stringValue(record.queue), queue: stringValue(record.queue),
total: numberValue(record.total), total: numberValue(record.total),
maxVersion: numberValue(record.maxVersion), maxVersion: numberValue(record.maxVersion),
@@ -693,7 +693,7 @@ function summarizeQueueStats(record: JsonRecord | null): JsonRecord | null {
generatedAt: stringValue(record.generatedAt), generatedAt: stringValue(record.generatedAt),
fullRecordBytes: jsonByteLength(record), fullRecordBytes: jsonByteLength(record),
valuesPrinted: false, valuesPrinted: false,
}; });
} }
function summarizeQueueTaskWithAttempt(record: JsonRecord | null, fallbackTaskId: string): JsonRecord { function summarizeQueueTaskWithAttempt(record: JsonRecord | null, fallbackTaskId: string): JsonRecord {
@@ -728,15 +728,15 @@ function sessionEventDrillDownCommands(kind: "trace" | "output", sessionId: stri
} }
function summarizeQueueTaskRecord(record: JsonRecord | null, fallbackTaskId: string): JsonRecord { function summarizeQueueTaskRecord(record: JsonRecord | null, fallbackTaskId: string): JsonRecord {
return compactRecord(record, { return withoutFullRecordBytes(compactRecord(record, {
fallback: { id: fallbackTaskId }, fallback: { id: fallbackTaskId },
keys: ["id", "state", "queue", "lane", "title", "priority", "backendProfile", "providerId", "sessionPath", "version", "updatedAt", "cancelledAt", "cancelReason", "readerId", "attentionState", "unread", "active"], keys: ["id", "state", "queue", "lane", "title", "priority", "backendProfile", "providerId", "sessionPath", "version", "updatedAt", "cancelledAt", "cancelReason", "readerId", "attentionState", "unread", "active"],
}); }));
} }
function summarizeAttemptRecord(record: JsonRecord | null): JsonRecord | null { function summarizeAttemptRecord(record: JsonRecord | null): JsonRecord | null {
if (!record) return null; if (!record) return null;
return compactRecord(record, { keys: ["attemptId", "state", "runId", "commandId", "runnerJobId", "sessionId", "sessionPath"] }); return withoutFullRecordBytes(compactRecord(record, { keys: ["attemptId", "state", "runId", "commandId", "runnerJobId", "sessionId", "sessionPath"] }));
} }
function summarizeSupervisorRecord(record: JsonRecord | null): JsonRecord | null { function summarizeSupervisorRecord(record: JsonRecord | null): JsonRecord | null {
@@ -126,6 +126,7 @@ export default function selfTest(_context: SelfTestContext): SelfTestResult {
assert.equal(commanderSummary.sourceCount, 2); assert.equal(commanderSummary.sourceCount, 2);
assert.equal(commanderSummary.displayedCount, 1); assert.equal(commanderSummary.displayedCount, 1);
assert.equal(JSON.stringify(commanderSummary).includes("runner trace line"), false); assert.equal(JSON.stringify(commanderSummary).includes("runner trace line"), false);
assert.equal(JSON.stringify(commanderSummary).includes("fullRecordBytes"), false);
assert.equal((((commanderSummary.items as JsonRecord[])[0]?.latestAttempt as JsonRecord).sessionId), "sess_noisy"); assert.equal((((commanderSummary.items as JsonRecord[])[0]?.latestAttempt as JsonRecord).sessionId), "sess_noisy");
assert.equal(String(((commanderSummary.drillDownCommands as JsonRecord).full)).includes("--full"), true); assert.equal(String(((commanderSummary.drillDownCommands as JsonRecord).full)).includes("--full"), true);
assertNoSecretLeak(commanderSummary); assertNoSecretLeak(commanderSummary);
@@ -133,11 +134,13 @@ export default function selfTest(_context: SelfTestContext): SelfTestResult {
const listSummary = summarizeQueueTaskListResult({ items: [noisyTask], nextCursor: "9" }, { limit: 20 }); const listSummary = summarizeQueueTaskListResult({ items: [noisyTask], nextCursor: "9" }, { limit: 20 });
assert.equal(listSummary.action, "queue-list-summary"); assert.equal(listSummary.action, "queue-list-summary");
assert.equal(JSON.stringify(listSummary).includes("runner trace line"), false); assert.equal(JSON.stringify(listSummary).includes("runner trace line"), false);
assert.equal(JSON.stringify(listSummary).includes("fullRecordBytes"), false);
assert.equal(String(((listSummary.drillDownCommands as JsonRecord).next)).includes("--cursor 9"), true); assert.equal(String(((listSummary.drillDownCommands as JsonRecord).next)).includes("--cursor 9"), true);
assertNoSecretLeak(listSummary); assertNoSecretLeak(listSummary);
const showSummary = summarizeQueueTaskShowResult(noisyTask, "qt_noisy"); const showSummary = summarizeQueueTaskShowResult(noisyTask, "qt_noisy");
assert.equal(showSummary.action, "queue-show-summary"); assert.equal(showSummary.action, "queue-show-summary");
assert.equal(JSON.stringify(showSummary).includes("fullRecordBytes"), false);
assert.equal(JSON.stringify(showSummary).includes("runner trace line"), false); assert.equal(JSON.stringify(showSummary).includes("runner trace line"), false);
assert.ok(Number(showSummary.payloadBytes) > 10_000); assert.ok(Number(showSummary.payloadBytes) > 10_000);
assert.equal(String(((showSummary.pollCommands as JsonRecord).trace)).includes("sess_noisy"), true); assert.equal(String(((showSummary.pollCommands as JsonRecord).trace)).includes("sess_noisy"), true);
+1 -1
View File
@@ -65,7 +65,7 @@ const selfTest: SelfTestCase = async (context: SelfTestContext) => {
const summaryItem = ((commanderSummary.items as JsonRecord[]) ?? []).find((item) => item.id === task.id) as JsonRecord; const summaryItem = ((commanderSummary.items as JsonRecord[]) ?? []).find((item) => item.id === task.id) as JsonRecord;
assert.equal(((summaryItem.supervisor as JsonRecord).phase), "terminal"); assert.equal(((summaryItem.supervisor as JsonRecord).phase), "terminal");
assert.equal(JSON.stringify(commanderSummary).includes("hwpod workspace apply-patch"), false, "commander summary must stay compact and avoid dumping command bodies"); assert.equal(JSON.stringify(commanderSummary).includes("hwpod workspace apply-patch"), false, "commander summary must stay compact and avoid dumping command bodies");
assert.equal(JSON.stringify(summaryItem.supervisor).includes("fullRecordBytes"), false, "commander supervisor must not add bookkeeping noise"); assert.equal(JSON.stringify(summaryItem).includes("fullRecordBytes"), false, "commander item must not add bookkeeping noise");
assertNoSecretLeak({ toolResult, assistantLive, inactiveLive, terminalResult, session, commanderSummary }); assertNoSecretLeak({ toolResult, assistantLive, inactiveLive, terminalResult, session, commanderSummary });
return { name: "timeout-liveness", tests: ["tool-in-flight-liveness", "assistant-progress-liveness", "stdio-inactive-timeout-budget", "terminal-timeout-recovery", "queue-commander-supervisor"] }; return { name: "timeout-liveness", tests: ["tool-in-flight-liveness", "assistant-progress-liveness", "stdio-inactive-timeout-budget", "terminal-timeout-recovery", "queue-commander-supervisor"] };