summaryrefslogtreecommitdiffhomepage
path: root/src/app
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-08-12 22:21:23 +0900
committerAdam Malczewski <[email protected]>2026-08-12 22:21:23 +0900
commit7b9763951cbbaa366b506d1628414c6a883b7d0b (patch)
tree77593063a93dc3956d5400c2969d030125cb26b2 /src/app
parent5f10a40b26dbfdc10b2c02cdf23ec3a7edfa9443 (diff)
downloaddispatch-web-7b9763951cbbaa366b506d1628414c6a883b7d0b.tar.gz
dispatch-web-7b9763951cbbaa366b506d1628414c6a883b7d0b.zip
fix(models): verify persisted-state migration write-back + numbered probe fixtures
- app/store.test: the persisted-tab migration test now also asserts the migrated opencode-1/<model> value was ACTUALLY written back to the storage adapter (dispatch.tabs), not merely changed in memory, and that no legacy opencode/ value remains (idempotent; issue 7). - scripts/live-probe + live-probe-provider-retry: default PROBE_MODEL and usage examples updated from the obsolete 'opencode/<model>' namespace to numbered 'opencode-1/<model>' so generic fixtures no longer normalize the old namespace as ordinary valid data (issue 8). Verification: bun run typecheck (0 errors), bun run test (1179 passed), bun run check (clean, exit 0), bun run build (vite OK).
Diffstat (limited to 'src/app')
-rw-r--r--src/app/store.test.ts8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/app/store.test.ts b/src/app/store.test.ts
index 16d1760..e172c8f 100644
--- a/src/app/store.test.ts
+++ b/src/app/store.test.ts
@@ -652,6 +652,14 @@ describe("createAppStore", () => {
const restored = store.tabs.find((t) => t.conversationId === "c-legacy");
expect(restored?.model).toBe("opencode-1/deepseek-v4-flash");
expect(store.activeModel).toBe("opencode-1/deepseek-v4-flash");
+ // Issue 7: the migrated tab state is ACTUALLY written back to the storage
+ // adapter immediately (not merely kept in memory) — a re-load is now a no-op.
+ const persisted = JSON.parse(storage.getItem("dispatch.tabs") ?? "") as {
+ tabs: Array<{ conversationId: string; model: string }>;
+ };
+ const persistedModel = persisted.tabs.find((t) => t.conversationId === "c-legacy")?.model;
+ expect(persistedModel).toBe("opencode-1/deepseek-v4-flash");
+ expect(persisted.tabs.some((t) => t.model.startsWith("opencode/"))).toBe(false);
store.dispose();
});