fix: make workspace policy waits selection-safe
This commit is contained in:
@@ -84,8 +84,7 @@ export function SteerInput({
|
||||
setLastUserEntry({ kind: "input", text: trimmed });
|
||||
onSessionCreating?.(trimmed);
|
||||
try {
|
||||
await workspacePolicyGate.waitFor(workspacePreferences.load().workspaceId);
|
||||
const { id } = await createSession({ question: trimmed, ...workspacePreferences.load() });
|
||||
const { id } = await createSession({ question: trimmed });
|
||||
onSessionCreated?.(id);
|
||||
setText("");
|
||||
} catch (error) {
|
||||
@@ -190,6 +189,11 @@ export function ComposerFooter() {
|
||||
? models.filter((candidate) => allowedModels.includes(`${candidate.provider}/${candidate.id}`))
|
||||
: models;
|
||||
|
||||
useEffect(() => {
|
||||
if (selectedWorkspace?.revision) workspacePolicyGate.select(workspace);
|
||||
else workspacePolicyGate.clear();
|
||||
}, [selectedWorkspace, workspace]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!allowedModels?.length) return;
|
||||
const selected = preferences.provider && preferences.model
|
||||
@@ -222,7 +226,7 @@ export function ComposerFooter() {
|
||||
patch.workspaceId
|
||||
&& patch.workspaceId !== workspace
|
||||
&& workspaces.some((candidate) => candidate.id === patch.workspaceId && candidate.revision)
|
||||
) workspacePolicyGate.begin(patch.workspaceId);
|
||||
) workspacePolicyGate.select(patch.workspaceId);
|
||||
const next = workspacePreferences.save({ ...preferences, ...patch });
|
||||
setPreferences(next);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user