From 5d7709a24080f819bf9a614d6db02d6d18a28637 Mon Sep 17 00:00:00 2001 From: Alex Southwell <4596216+saphid@users.noreply.github.com> Date: Tue, 3 Nov 2026 09:25:48 +1100 Subject: [PATCH] perf(opencode): provider event logs skip per-token reply deltas Co-Authored-By: Claude Opus 5.5 --- packages/provider-opencode/src/server/adapter.test.ts | 7 +++++++ packages/provider-opencode/src/server/adapter.ts | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/provider-opencode/src/server/adapter.test.ts b/packages/provider-opencode/src/server/adapter.test.ts index 2ef7f2c5bbd02..5313eb72a9d8f 100644 --- a/packages/provider-opencode/src/server/adapter.test.ts +++ b/packages/provider-opencode/src/server/adapter.test.ts @@ -2507,7 +2507,14 @@ describe("OpenCodeAdapterV2", () => { method: "session.prompt", payload: { prompt: secret, nested: { token: secret } }, }); + yield* logProtocolEvent({ + direction: "incoming", + messageKind: "notification", + method: "message.part.delta", + payload: { type: "message.part.delta", properties: { delta: secret } }, + }); + assert.lengthOf(records, 1); const serialized = encodeUnknownJson(records); assert.notInclude(serialized, secret); assert.include(serialized, '"protocol":"opencode-sdk.sse"'); diff --git a/packages/provider-opencode/src/server/adapter.ts b/packages/provider-opencode/src/server/adapter.ts index 271259631ea4c..b32528257944f 100644 --- a/packages/provider-opencode/src/server/adapter.ts +++ b/packages/provider-opencode/src/server/adapter.ts @@ -446,7 +446,8 @@ export function makeOpenCodeProtocolLogger(input: { }): (event: OpenCodeProtocolLogEvent) => Effect.Effect { return (event) => Effect.gen(function* () { - if (!input.nativeEventLogger) return; + // Per-token deltas; the part's final message.part.updated is still logged. + if (!input.nativeEventLogger || event.method === "message.part.delta") return; const observedAt = DateTime.formatIso(yield* DateTime.now); const method = structuralProtocolMethod(event.method); yield* input.nativeEventLogger.write(