From 8d9b629b262921985ec849cf4e817341eef79a00 Mon Sep 17 00:00:00 2001 From: "buf0-bot[bot]" <252831055+buf0-bot[bot]@users.noreply.github.com> Date: Thu, 7 May 2026 21:58:55 -0700 Subject: [PATCH] fix: pr-bug-scan findings from #1468 (#1559) Co-authored-by: orca-bug-scan-bot --- src/renderer/src/components/TaskPage.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/renderer/src/components/TaskPage.tsx b/src/renderer/src/components/TaskPage.tsx index 04bd6348374..4ca5d1990d2 100644 --- a/src/renderer/src/components/TaskPage.tsx +++ b/src/renderer/src/components/TaskPage.tsx @@ -785,14 +785,18 @@ export default function TaskPage(): React.JSX.Element { } }, [pageData.taskSource]) - // Why: settings.defaultTaskSource can change while Tasks is open (Settings - // panel is reachable without unmounting Tasks). The one-shot resume effect - // only seeds taskSource on first mount, so without this sync a mid-session - // change to the default would not propagate when no explicit page-level - // taskSource was passed. + // Why: when settings hydrate after Tasks mounts, seed taskSource from + // defaultTaskSource — but only once. Re-running on every defaultTaskSource + // change would clobber an in-session manual source pick (e.g. the user + // clicked the Linear icon and then changed the default in Settings). + const defaultTaskSourceSeededRef = useRef(false) useEffect(() => { + if (defaultTaskSourceSeededRef.current) { + return + } if (!pageData.taskSource && settings?.defaultTaskSource) { setTaskSource(settings.defaultTaskSource) + defaultTaskSourceSeededRef.current = true } }, [settings?.defaultTaskSource, pageData.taskSource])