From cf50386a0ecb54c42bee7a319e5bf223ba99c61a Mon Sep 17 00:00:00 2001 From: Brad Groux Date: Thu, 29 Jan 2026 07:02:50 -0600 Subject: [PATCH] fix: open-task fallback to API fetch for archived/deleted tasks --- web/src/components/board/KanbanBoard.tsx | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/web/src/components/board/KanbanBoard.tsx b/web/src/components/board/KanbanBoard.tsx index 113cb845..0e18577b 100644 --- a/web/src/components/board/KanbanBoard.tsx +++ b/web/src/components/board/KanbanBoard.tsx @@ -82,13 +82,28 @@ export function KanbanBoard() { // Listen for open-task events from dashboard drill-downs useEffect(() => { - const handler = (e: Event) => { + const handler = async (e: Event) => { const taskId = (e as CustomEvent).detail?.taskId; if (!taskId) return; - const task = tasks?.find((t) => t.id === taskId); - if (task) { - setSelectedTask(task); + + // Try local task list first + const localTask = tasks?.find((t) => t.id === taskId); + if (localTask) { + setSelectedTask(localTask); setDetailOpen(true); + return; + } + + // Fallback: fetch from API (task may be archived or filtered out) + try { + const { api } = await import('@/lib/api'); + const fetchedTask = await api.tasks.get(taskId); + if (fetchedTask) { + setSelectedTask(fetchedTask); + setDetailOpen(true); + } + } catch { + // Task no longer exists — ignore silently } }; window.addEventListener('open-task', handler);