fix(workbench): pass projection context to message writer (#2012)

This commit is contained in:
Lyon
2026-06-24 04:38:15 +08:00
committed by GitHub
parent da86d56821
commit db6e889009
2 changed files with 6 additions and 3 deletions
@@ -45,7 +45,7 @@ test("code agent trace store dedupes repeated AgentRun source events", () => {
assert.deepEqual(snapshot.events.map((item) => item.label), ["agentrun:backend:resource-bundle-materialized", "agentrun:assistant:message"]); assert.deepEqual(snapshot.events.map((item) => item.label), ["agentrun:backend:resource-bundle-materialized", "agentrun:assistant:message"]);
}); });
test("durable code agent trace store projects appended events without counting assistant deltas", () => { test("durable code agent trace store projects appended events without counting assistant deltas", async () => {
const writes = []; const writes = [];
const workbenchWrites = []; const workbenchWrites = [];
const baseStore = createCodeAgentTraceStore({ maxEvents: 20 }); const baseStore = createCodeAgentTraceStore({ maxEvents: 20 });
@@ -66,6 +66,8 @@ test("durable code agent trace store projects appended events without counting a
traceStore.append(traceId, { type: "request", status: "accepted", label: "request:accepted", sessionId: "ses_trace_store_durable" }); traceStore.append(traceId, { type: "request", status: "accepted", label: "request:accepted", sessionId: "ses_trace_store_durable" });
traceStore.appendAssistantDelta(traceId, { itemId: "assistant", chunk: "hello" }); traceStore.appendAssistantDelta(traceId, { itemId: "assistant", chunk: "hello" });
await Promise.resolve();
await Promise.resolve();
const snapshot = traceStore.snapshot(traceId); const snapshot = traceStore.snapshot(traceId);
assert.equal(snapshot.eventCount, 1); assert.equal(snapshot.eventCount, 1);
@@ -76,7 +78,8 @@ test("durable code agent trace store projects appended events without counting a
assert.equal(writes[0].requestMeta.agentSessionId, "ses_trace_store_durable"); assert.equal(writes[0].requestMeta.agentSessionId, "ses_trace_store_durable");
assert.equal(workbenchWrites.length, 1); assert.equal(workbenchWrites.length, 1);
assert.equal(workbenchWrites[0].event.traceId, traceId); assert.equal(workbenchWrites[0].event.traceId, traceId);
assert.equal(workbenchWrites[0].requestMeta.sessionId, undefined); assert.equal(workbenchWrites[0].requestMeta.sessionId, "ses_trace_store_durable");
assert.equal(workbenchWrites[0].requestMeta.agentSessionId, "ses_trace_store_durable");
}); });
test("code agent trace store retains six thousand regular events", () => { test("code agent trace store retains six thousand regular events", () => {
+1 -1
View File
@@ -265,7 +265,7 @@ async function persistTraceEventAsync(traceEventStore, event, meta = {}, workben
} }
if (typeof workbenchEventWriter === "function") { if (typeof workbenchEventWriter === "function") {
try { try {
await workbenchEventWriter(event, meta); await workbenchEventWriter(event, projectionContext);
} catch (error) { } catch (error) {
console.error(`[workbench-projection] workbench event writer failed: traceId=${event.traceId} error=${error?.message ?? error}`); console.error(`[workbench-projection] workbench event writer failed: traceId=${event.traceId} error=${error?.message ?? error}`);
} }