Skip to content

Commit 73c8d11

Browse files
committed
Fix redundant extractModelSelectionOptions call and prevent silent model options injection on session restart
- ChatView: Store extractModelSelectionOptions result in a local variable instead of calling it twice with identical arguments in selectedModelSelection useMemo - ProviderCommandReactor: Only derive model options from requestedModelSelection (explicit user request), not from thread.modelSelection fallback, to prevent silent injection of persisted options during runtime-mode-triggered session restarts
1 parent 07e86e9 commit 73c8d11

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

apps/server/src/orchestration/Layers/ProviderCommandReactor.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,10 @@ const make = Effect.gen(function* () {
249249
const desiredModelSelection = requestedModelSelection ?? thread.modelSelection;
250250
const desiredModel = desiredModelSelection.model;
251251
const desiredModelOptions =
252-
options?.modelOptions ?? toProviderModelOptions(desiredModelSelection);
252+
options?.modelOptions ??
253+
(requestedModelSelection !== undefined
254+
? toProviderModelOptions(requestedModelSelection)
255+
: undefined);
253256
const effectiveCwd = resolveThreadWorkspaceCwd({
254257
thread,
255258
projects: readModel.projects,

apps/web/src/components/ChatView.tsx

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -643,21 +643,14 @@ export default function ChatView({ threadId }: ChatViewProps) {
643643
);
644644
const selectedPromptEffort = composerProviderState.promptEffort;
645645
const selectedModelOptionsForDispatch = composerProviderState.modelOptionsForDispatch;
646-
const selectedModelSelection = useMemo<ModelSelection>(
647-
() => ({
646+
const selectedModelSelection = useMemo<ModelSelection>(() => {
647+
const options = extractModelSelectionOptions(selectedProvider, selectedModelOptionsForDispatch);
648+
return {
648649
provider: selectedProvider,
649650
model: selectedModel,
650-
...(extractModelSelectionOptions(selectedProvider, selectedModelOptionsForDispatch)
651-
? {
652-
options: extractModelSelectionOptions(
653-
selectedProvider,
654-
selectedModelOptionsForDispatch,
655-
),
656-
}
657-
: {}),
658-
}),
659-
[selectedModel, selectedModelOptionsForDispatch, selectedProvider],
660-
);
651+
...(options ? { options } : {}),
652+
};
653+
}, [selectedModel, selectedModelOptionsForDispatch, selectedProvider]);
661654
const providerOptionsForDispatch = useMemo(() => getProviderStartOptions(settings), [settings]);
662655
const selectedModelForPicker = selectedModel;
663656
const modelOptionsByProvider = useMemo(

0 commit comments

Comments
 (0)