From b365ca26e3c2bfed64b3ae60f3a32edb4c345dfc Mon Sep 17 00:00:00 2001 From: JJ Lee Date: Fri, 7 Aug 2026 16:31:12 -0400 Subject: [PATCH] Revert "fix: resume SSE stream on pageshow regardless of persisted flag" --- packages/app/src/context/server-sdk.test.ts | 15 ++------------- packages/app/src/context/server-sdk.tsx | 3 ++- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/packages/app/src/context/server-sdk.test.ts b/packages/app/src/context/server-sdk.test.ts index fea5252170..57e1cd86f3 100644 --- a/packages/app/src/context/server-sdk.test.ts +++ b/packages/app/src/context/server-sdk.test.ts @@ -4,25 +4,14 @@ import type { OpenCodeEvent } from "@opencode-ai/client/promise" import type { Event } from "@opencode-ai/sdk/v2/client" describe("resumeStreamAfterPageShow", () => { - test("restarts the stream on pageshow regardless of persisted flag", () => { + test("restarts a stream only after a back-forward cache restore", () => { let starts = 0 const start = () => starts++ resumeStreamAfterPageShow({ persisted: false } as PageTransitionEvent, start) resumeStreamAfterPageShow({ persisted: true } as PageTransitionEvent, start) - expect(starts).toBe(2) - }) - - test("is safe to call repeatedly (start is idempotent)", () => { - let starts = 0 - const start = () => starts++ - - resumeStreamAfterPageShow({ persisted: false } as PageTransitionEvent, start) - resumeStreamAfterPageShow({ persisted: false } as PageTransitionEvent, start) - resumeStreamAfterPageShow({ persisted: false } as PageTransitionEvent, start) - - expect(starts).toBe(3) + expect(starts).toBe(1) }) }) diff --git a/packages/app/src/context/server-sdk.tsx b/packages/app/src/context/server-sdk.tsx index 1425a53fdf..af6d5d1aee 100644 --- a/packages/app/src/context/server-sdk.tsx +++ b/packages/app/src/context/server-sdk.tsx @@ -159,7 +159,8 @@ function currentDeltaFragment(event: CurrentDelta) { return event.type === "session.compaction.delta" ? event.data.text : event.data.delta } -export function resumeStreamAfterPageShow(_event: PageTransitionEvent, start: () => unknown) { +export function resumeStreamAfterPageShow(event: PageTransitionEvent, start: () => unknown) { + if (!event.persisted) return start() }