diff options
| author | Adam Malczewski <[email protected]> | 2026-08-12 22:21:23 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-08-12 22:21:23 +0900 |
| commit | 7b9763951cbbaa366b506d1628414c6a883b7d0b (patch) | |
| tree | 77593063a93dc3956d5400c2969d030125cb26b2 /src | |
| parent | 5f10a40b26dbfdc10b2c02cdf23ec3a7edfa9443 (diff) | |
| download | dispatch-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')
| -rw-r--r-- | src/app/store.test.ts | 8 |
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(); }); |
