Fix Windows workspace provider loading (#1329)

* test: cover Windows provider snapshot cwd updates

* fix: normalize Windows provider snapshot paths

* fix: preserve Claude history path candidates

* fix: match Claude project paths on Windows
This commit is contained in:
Mohamed Boudra
2026-06-05 02:29:34 +08:00
committed by GitHub
parent b5192e577a
commit c3515d74b9
7 changed files with 63 additions and 18 deletions
@@ -39,4 +39,13 @@ describe("providers snapshot query scope", () => {
providers: ["codex"],
});
});
it("uses one query scope for Windows cwd values with either separator", () => {
expect(normalizeProvidersSnapshotCwd("C:\\Users\\Ezekiel Bulver\\project")).toBe(
"C:/Users/Ezekiel Bulver/project",
);
expect(providersSnapshotQueryKey("server-1", "C:\\Users\\Ezekiel Bulver\\project")).toEqual(
providersSnapshotQueryKey("server-1", "C:/Users/Ezekiel Bulver/project"),
);
});
});
@@ -1,10 +1,10 @@
import type { AgentProvider } from "@getpaseo/protocol/agent-types";
import { normalizeWorkspacePath } from "@/utils/workspace-identity";
export const PROVIDERS_SNAPSHOT_QUERY_ROOT = "providersSnapshot";
export function normalizeProvidersSnapshotCwd(cwd?: string | null): string | null {
const trimmed = cwd?.trim();
return trimmed ? trimmed : null;
return normalizeWorkspacePath(cwd);
}
export function providersSnapshotQueryRoot(serverId: string | null) {
@@ -250,6 +250,27 @@ describe("applyProvidersSnapshotUpdate", () => {
providersSnapshot([]),
);
});
it("applies Windows daemon updates to app-normalized workspace paths", () => {
const workspaceCwd = "C:/Users/Ezekiel Bulver/project";
const daemonCwd = "C:\\Users\\Ezekiel Bulver\\project";
queryClient.setQueryData(
providersSnapshotQueryKey(serverId, workspaceCwd),
providersSnapshot([codexEntry("loading")]),
);
applyProvidersSnapshotUpdate({
serverId,
queryClient,
message: updateMessage([codexEntry("ready", [readyCodexModel])], daemonCwd),
});
expect(queryClient.getQueryData(providersSnapshotQueryKey(serverId, workspaceCwd))).toEqual({
entries: [codexEntry("ready", [readyCodexModel])],
generatedAt: "2026-01-01T00:00:01.000Z",
requestId: "providers_snapshot_update",
});
});
});
describe("selectorOpenRefetchDecision", () => {