Merge pull request #667 from pikasTech/fix/v02-hwlab663-trace-render-final
fix: 折叠 AgentRun 完成态 trace 噪音
This commit is contained in:
@@ -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" }),
|
||||
|
||||
@@ -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 ? "(第一条)" : ""}`,
|
||||
|
||||
Reference in New Issue
Block a user