From 26fba706f2d070db7a4624b5324e3deacebdfedf Mon Sep 17 00:00:00 2001 From: goulustis Date: Thu, 5 Mar 2026 15:31:58 +0800 Subject: [PATCH] graph_id button bug fix --- frontend/src/App.tsx | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 5329e68..33740fd 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -283,16 +283,27 @@ export default function App() { if (!editor) { return; } + const targetEditorId = editor.id; setBusy(true); setStatusMessage("Loading default prompts for selected graph..."); try { const defaults = await loadPromptDefaults(graphId); - setEditorAndSyncDraft((prev) => ({ - ...prev, - graphId, - prompts: { ...defaults.prompt_dict }, - toolKeys: defaults.tool_keys || [], - })); + setEditor((prev) => { + if (!prev || prev.id !== targetEditorId) { + // Selection changed while defaults were loading; do not mutate another agent. + return prev; + } + const next: EditableAgent = { + ...prev, + graphId, + prompts: { ...defaults.prompt_dict }, + toolKeys: defaults.tool_keys || [], + }; + if (next.isDraft) { + setDraftAgents((drafts) => drafts.map((draft) => (draft.id === next.id ? next : draft))); + } + return next; + }); setStatusMessage(""); } catch (error) { setStatusMessage((error as Error).message);