Fix provider models per workspace (#1167)

* Scope provider snapshots by workspace

* Fix provider snapshot cwd test on Windows
This commit is contained in:
Mohamed Boudra
2026-05-25 17:12:15 +08:00
committed by GitHub
parent 6b35c0a640
commit f137705f1e
15 changed files with 336 additions and 91 deletions
@@ -0,0 +1,42 @@
import { describe, expect, it } from "vitest";
import {
isProvidersSnapshotHomeScope,
normalizeProvidersSnapshotCwd,
providersSnapshotQueryKey,
providersSnapshotQueryRoot,
providersSnapshotRequestOptions,
} from "./providers-snapshot-query";
describe("providers snapshot query scope", () => {
it("normalizes blank cwd values to the home scope", () => {
expect(normalizeProvidersSnapshotCwd(undefined)).toBeNull();
expect(normalizeProvidersSnapshotCwd(null)).toBeNull();
expect(normalizeProvidersSnapshotCwd(" ")).toBeNull();
expect(isProvidersSnapshotHomeScope("")).toBe(true);
});
it("keeps home and workspace query keys separate under one server root", () => {
expect(providersSnapshotQueryRoot("server-1")).toEqual(["providersSnapshot", "server-1"]);
expect(providersSnapshotQueryKey("server-1")).toEqual([
"providersSnapshot",
"server-1",
"home",
]);
expect(providersSnapshotQueryKey("server-1", "/repo-a")).toEqual([
"providersSnapshot",
"server-1",
"cwd",
"/repo-a",
]);
});
it("builds request options with cwd only for workspace scopes", () => {
expect(providersSnapshotRequestOptions({ cwd: null, providers: ["codex"] })).toEqual({
providers: ["codex"],
});
expect(providersSnapshotRequestOptions({ cwd: "/repo-a", providers: ["codex"] })).toEqual({
cwd: "/repo-a",
providers: ["codex"],
});
});
});