fix: 收敛 queue commander 默认记录字节噪声
This commit is contained in:
+5
-5
@@ -683,7 +683,7 @@ function summarizeMutationBody(body: JsonRecord): JsonRecord {
|
||||
|
||||
function summarizeQueueStats(record: JsonRecord | null): JsonRecord | null {
|
||||
if (!record) return null;
|
||||
return {
|
||||
return withoutFullRecordBytes({
|
||||
queue: stringValue(record.queue),
|
||||
total: numberValue(record.total),
|
||||
maxVersion: numberValue(record.maxVersion),
|
||||
@@ -693,7 +693,7 @@ function summarizeQueueStats(record: JsonRecord | null): JsonRecord | null {
|
||||
generatedAt: stringValue(record.generatedAt),
|
||||
fullRecordBytes: jsonByteLength(record),
|
||||
valuesPrinted: false,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
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 {
|
||||
return compactRecord(record, {
|
||||
return withoutFullRecordBytes(compactRecord(record, {
|
||||
fallback: { id: fallbackTaskId },
|
||||
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 {
|
||||
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 {
|
||||
|
||||
@@ -126,6 +126,7 @@ export default function selfTest(_context: SelfTestContext): SelfTestResult {
|
||||
assert.equal(commanderSummary.sourceCount, 2);
|
||||
assert.equal(commanderSummary.displayedCount, 1);
|
||||
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(String(((commanderSummary.drillDownCommands as JsonRecord).full)).includes("--full"), true);
|
||||
assertNoSecretLeak(commanderSummary);
|
||||
@@ -133,11 +134,13 @@ export default function selfTest(_context: SelfTestContext): SelfTestResult {
|
||||
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(JSON.stringify(listSummary).includes("fullRecordBytes"), 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("fullRecordBytes"), false);
|
||||
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);
|
||||
|
||||
@@ -65,7 +65,7 @@ const selfTest: SelfTestCase = async (context: SelfTestContext) => {
|
||||
const summaryItem = ((commanderSummary.items as JsonRecord[]) ?? []).find((item) => item.id === task.id) as JsonRecord;
|
||||
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(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 });
|
||||
|
||||
return { name: "timeout-liveness", tests: ["tool-in-flight-liveness", "assistant-progress-liveness", "stdio-inactive-timeout-budget", "terminal-timeout-recovery", "queue-commander-supervisor"] };
|
||||
|
||||
Reference in New Issue
Block a user