import { expect, it } from "bun:test"; import { mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { SessionUiStateStore } from "../../src/sessions/uiStateStore.js"; it("restores plan history independently of chat messages after reconnecting", async () => { const directory = await mkdtemp(join(tmpdir(), "tjwater-plan-state-")); try { const store = new SessionUiStateStore(directory); await store.initialize(); const executionPlans = [{ revision: 1, nodes: [{ id: "sampling", status: "waiting" }] }]; await store.write({ sessionId: "session-1" }, { sessionId: "session-1", messages: [], executionPlans }); const reloaded = await new SessionUiStateStore(directory).read({ sessionId: "session-1" }); expect(reloaded?.executionPlans).toEqual(executionPlans); expect(await store.read({ sessionId: "other-session" })).toBeNull(); } finally { await rm(directory, { recursive: true, force: true }); } });