From fe0c0fac1e903599b4333bad23a8f47108a38b3f Mon Sep 17 00:00:00 2001 From: Phantom <59059173+EurFelux@users.noreply.github.com> Date: Wed, 24 Sep 2025 12:24:28 +0800 Subject: [PATCH] fix(assistant): enforce id requirement when updating assistant (#10321) * fix(assistant): enforce id requirement when updating assistant Ensure assistant id is always provided when updating assistant properties by making it a required field in the update payload. This prevents potential bugs where updates might be applied to wrong assistants. * refactor(useAssistant): simplify updateAssistant callback by removing redundant id Update InputbarTools to use simplified callback signature --- src/renderer/src/hooks/useAssistant.ts | 5 ++++- src/renderer/src/store/assistants.ts | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/hooks/useAssistant.ts b/src/renderer/src/hooks/useAssistant.ts index 096c91b5a1..8a038bec31 100644 --- a/src/renderer/src/hooks/useAssistant.ts +++ b/src/renderer/src/hooks/useAssistant.ts @@ -172,7 +172,10 @@ export function useAssistant(id: string) { (model: Model) => assistant && dispatch(setModel({ assistantId: assistant?.id, model })), [assistant, dispatch] ), - updateAssistant: useCallback((assistant: Partial) => dispatch(updateAssistant(assistant)), [dispatch]), + updateAssistant: useCallback( + (update: Partial>) => dispatch(updateAssistant({ id, ...update })), + [dispatch, id] + ), updateAssistantSettings } } diff --git a/src/renderer/src/store/assistants.ts b/src/renderer/src/store/assistants.ts index 8f53977835..5462f4bb3e 100644 --- a/src/renderer/src/store/assistants.ts +++ b/src/renderer/src/store/assistants.ts @@ -46,8 +46,9 @@ const assistantsSlice = createSlice({ removeAssistant: (state, action: PayloadAction<{ id: string }>) => { state.assistants = state.assistants.filter((c) => c.id !== action.payload.id) }, - updateAssistant: (state, action: PayloadAction>) => { - state.assistants = state.assistants.map((c) => (c.id === action.payload.id ? { ...c, ...action.payload } : c)) + updateAssistant: (state, action: PayloadAction & { id: string }>) => { + const { id, ...update } = action.payload + state.assistants = state.assistants.map((c) => (c.id === id ? { ...c, ...update } : c)) }, updateAssistantSettings: ( state,