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 {
|
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);
|
||||||
|
|||||||
@@ -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"] };
|
||||||
|
|||||||
Reference in New Issue
Block a user