From 058ceace48e93379b4f24ac03160d27b894536cf Mon Sep 17 00:00:00 2001 From: decolua Date: Fri, 18 Sep 2026 17:32:52 +0700 Subject: [PATCH] fix(opencode): declare forceStream on transport for free-tier SSE aggregation Declares forceStream: true so chatCore properly converts upstream forced-stream responses to JSON for non-streaming callers. Co-authored-by: anojndr Co-authored-by: TEGAR-SRC Co-authored-by: yxxrn Co-Authored-By: Claude Code --- open-sse/providers/registry/opencode.js | 1 + tests/unit/opencode-session.test.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/open-sse/providers/registry/opencode.js b/open-sse/providers/registry/opencode.js index 0914f431..b0705066 100644 --- a/open-sse/providers/registry/opencode.js +++ b/open-sse/providers/registry/opencode.js @@ -17,6 +17,7 @@ export default { headers: { "x-opencode-client": "desktop", }, + forceStream: true, noAuth: true, quirks: { forceAutoToolChoiceModels: ["muse-spark-1.3-contributor-free"], diff --git a/tests/unit/opencode-session.test.js b/tests/unit/opencode-session.test.js index 89e06a8f..3e50b9fe 100644 --- a/tests/unit/opencode-session.test.js +++ b/tests/unit/opencode-session.test.js @@ -311,4 +311,9 @@ describe("OpenCode Stable Session Reuse (429 follow-up)", () => { expect(chatFull.tools.length).toBe(2); expect(chatFull.tools[0].function.description).toBe("existing"); }); + + it("declares forceStream on the opencode transport so chatCore serves SSE upstream", async () => { + const { PROVIDERS } = await import("../../open-sse/config/providers.js"); + expect(PROVIDERS.opencode?.forceStream).toBe(true); + }); });