From 7d277f931ea058562aa19b47690f3164fe77cd7b Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Fri, 10 Jul 2026 12:17:59 -0400 Subject: [PATCH] fix(tui): keep global event routing unchanged --- packages/tui/src/context/data.tsx | 16 +------- packages/tui/test/cli/tui/data.test.tsx | 53 ------------------------- 2 files changed, 1 insertion(+), 68 deletions(-) diff --git a/packages/tui/src/context/data.tsx b/packages/tui/src/context/data.tsx index 8352eba0b1..b3a4c60eca 100644 --- a/packages/tui/src/context/data.tsx +++ b/packages/tui/src/context/data.tsx @@ -104,7 +104,6 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({ const [defaultLocation, setDefaultLocation] = createSignal({ directory: process.cwd(), }) - let defaultLocationReady = false const messageIndex = new Map>() let bootstrapping: Promise | undefined let connected = false @@ -234,16 +233,6 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({ } function handleEvent(event: OpenCodeEvent) { - if ( - defaultLocationReady && - event.type.startsWith("session.") && - "sessionID" in event.data && - typeof event.data.sessionID === "string" && - !store.session.info[event.data.sessionID] && - event.location && - locationKey(event.location) !== locationKey(defaultLocation()) - ) - return switch (event.type) { case "session.created": void result.session.refresh(event.data.sessionID) @@ -923,10 +912,7 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({ const location = await sdk.api.location.get({ location: locationQuery(ref ?? defaultLocation()) }) const key = locationKey(location) if (!store.location[key]) setStore("location", key, {}) - if (!ref) { - setDefaultLocation({ directory: location.directory, workspaceID: location.workspaceID }) - defaultLocationReady = true - } + if (!ref) setDefaultLocation({ directory: location.directory, workspaceID: location.workspaceID }) }, agent: { list(location?: LocationRef) { diff --git a/packages/tui/test/cli/tui/data.test.tsx b/packages/tui/test/cli/tui/data.test.tsx index 847627c7ea..f2f996bf5e 100644 --- a/packages/tui/test/cli/tui/data.test.tsx +++ b/packages/tui/test/cli/tui/data.test.tsx @@ -122,59 +122,6 @@ test("refreshes resources into reactive getters", async () => { } }) -test("does not materialize messages for unknown sessions in other locations", async () => { - const events = createEventStream() - const sessionID = "ses_unloaded" - const calls = createFetch((url) => { - if (url.pathname === `/api/session/${sessionID}/message`) return json({ data: [], cursor: {} }) - }, events) - let data!: ReturnType - - function Probe() { - data = useData() - return - } - - const app = await testRender(() => ( - - - - - - - - - - )) - - const started = (id: string, seq: number): OpenCodeEvent => ({ - id: `evt_${id}`, - created: seq, - type: "session.step.started", - durable: durable(sessionID, seq), - data: { - sessionID, - assistantMessageID: id, - agent: "build", - model: { providerID: "provider", id: "model" }, - }, - }) - - try { - await wait(() => data.location.default().directory === directory) - events.emit({ ...started("msg_ignored", 1), location: { directory: "/tmp/other" } }) - await Bun.sleep(20) - expect(data.session.message.ids(sessionID)).toEqual([]) - - await data.session.message.refresh(sessionID) - emitEvent(events, started("msg_loaded", 2)) - await wait(() => data.session.message.ids(sessionID).length === 1) - expect(data.session.message.ids(sessionID)).toEqual(["msg_loaded"]) - } finally { - app.renderer.destroy() - } -}) - test("applies absolute usage events to session info", async () => { const events = createEventStream() const sessionID = "ses_usage_refresh"