fix: collapse completed AgentRun trace noise

This commit is contained in:
Codex
2026-06-02 01:35:31 +08:00
parent 90f030e8f7
commit 7dfd79daa1
2 changed files with 28 additions and 1 deletions
+24
View File
@@ -121,6 +121,30 @@ test("trace display rows suppress low-value AgentRun backend noise", () => {
assert.match(text, / 1 device-pod/u);
});
test("trace display rows collapse successful assistant-only AgentRun turns", () => {
const events = [
event(1, "agentrun:request:accepted", { message: "accepted" }),
event(2, "agentrun:run:reused"),
event(3, "agentrun:command:created"),
event(4, "agentrun:runner-job:reused"),
event(5, "agentrun:backend:codex-app-server:reused"),
event(6, "agentrun:backend:turn/start:completed"),
event(7, "agentrun:assistant:message", {
type: "assistant",
status: "completed",
terminal: true,
message: "HWLAB663_FINAL_T2_OK"
}),
event(8, "agentrun:terminal:completed", { type: "result", terminal: true, status: "completed" })
];
const rows = traceDisplayRows({ traceId: "trc_agentrun_assistant_only", events }, events);
assert.equal(rows.length, 1);
assert.equal(rows[0].tone, "ok");
assert.match(rows[0].header, //u);
assert.match(rows[0].body ?? "", /HWLAB663_FINAL_T2_OK/u);
});
function traceEvents() {
return [
event(1, "request:accepted", { promptSummary: "请检查 trace" }),
+4 -1
View File
@@ -289,6 +289,7 @@ export function traceDisplayRows(trace, events) {
const commandGroups = traceCommandExecutionGroups(events);
const requestEvent = tracePrimaryRequestEvent(events);
const hasTerminalAssistant = events.some((event) => isTerminalAssistantTraceEvent(event));
const terminalAssistantOnly = hasTerminalAssistant && !events.some((event) => isCommandExecutionTraceEvent(event));
const renderedCommands = new Set();
let requestRendered = false;
let setupRendered = false;
@@ -315,6 +316,7 @@ export function traceDisplayRows(trace, events) {
continue;
}
if (isRequestTraceEvent(event)) {
if (terminalAssistantOnly) continue;
if (!requestRendered) {
const row = traceRequestSummaryRow(trace, event, requestEvent ?? event);
if (row) rows.push(row);
@@ -323,6 +325,7 @@ export function traceDisplayRows(trace, events) {
continue;
}
if (isSetupTraceEvent(event)) {
if (terminalAssistantOnly) continue;
if (!setupRendered) {
const row = traceSetupSummaryRow(trace, events, event);
if (row) rows.push(row);
@@ -638,7 +641,7 @@ function traceAssistantSummaryRow(trace, event, index = 0) {
return {
rowId: `event:${event.seq ?? `${event.label ?? event.type ?? "assistant"}:${event.createdAt ?? "unknown"}`}`,
seq: event.seq ?? null,
tone: traceEventTone(event),
tone: terminal ? "ok" : traceEventTone(event),
header: terminal
? `${traceClock(event.createdAt)} 🤖 助手最后一条消息,轮次完成(总耗时 ${elapsed}`
: `${traceClock(event.createdAt)} 🤖 助手消息${index === 0 ? "(第一条)" : ""}`,