Skip to content
2 changes: 2 additions & 0 deletions src/browser/components/AppLoader/AppLoader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { useGitStatusStoreRaw } from "../../stores/GitStatusStore";
import { useRuntimeStatusStoreRaw } from "../../stores/RuntimeStatusStore";
import { useBackgroundBashStoreRaw } from "../../stores/BackgroundBashStore";
import { getPRStatusStoreInstance } from "../../stores/PRStatusStore";
import { getProvidersConfigStore } from "../../stores/ProvidersConfigStore";
import { ProjectProvider, useProjectContext } from "../../contexts/ProjectContext";
import { PolicyProvider, usePolicy } from "@/browser/contexts/PolicyContext";
import { PolicyBlockedScreen } from "@/browser/components/PolicyBlockedScreen/PolicyBlockedScreen";
Expand Down Expand Up @@ -182,6 +183,7 @@ function AppLoaderInner() {
runtimeStatusStore.setClient(api ?? null);
backgroundBashStore.setClient(api ?? null);
getPRStatusStoreInstance().setClient(api ?? null);
getProvidersConfigStore().setClient(api ?? null);

if (!workspaceContext.loading) {
workspaceStoreInstance.syncWorkspaces(workspaceContext.workspaceMetadata);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { createMockORPCClient } from "@/browser/stories/mocks/orpc";
import { NOW, createArchivedWorkspace } from "@/browser/stories/mocks/workspaces";
import { lightweightMeta } from "@/browser/stories/meta.js";
import { useWorkspaceStoreRaw } from "@/browser/stores/WorkspaceStore";
import { getProvidersConfigStore } from "@/browser/stores/ProvidersConfigStore";
import { getArchivedWorkspacesExpandedKey } from "@/common/constants/storage";
import type { FrontendWorkspaceMetadata } from "@/common/types/workspace";
import { ArchivedWorkspaces } from "./ArchivedWorkspaces";
Expand Down Expand Up @@ -73,8 +74,12 @@ function ArchivedWorkspacesStoryShell(props: {

useEffect(() => {
workspaceStore.setClient(client);
// useProvidersConfig consumers read the shared store, which gets its
// client from AppLoader in the real app β€” wire it manually here too.
getProvidersConfigStore().setClient(client);
return () => {
workspaceStore.setClient(null);
getProvidersConfigStore().setClient(null);
};
}, [client, workspaceStore]);

Expand Down
324 changes: 170 additions & 154 deletions src/browser/components/ChatPane/ChatPane.tsx

Large diffs are not rendered by default.

Loading
Loading