From 82842c425860c8b4ed0ced54b6d83061851d4336 Mon Sep 17 00:00:00 2001 From: iven Date: Sun, 5 Apr 2026 01:06:48 +0800 Subject: [PATCH] fix(frontend): initializeStores dedup + retryAllMessages guard + as any cleanup - index.ts: add _storesInitialized guard to prevent triple initialization - offlineStore.ts: add isRetrying mutex for retryAllMessages concurrency - PropertyPanel.tsx: replace 13x (data as any) with typed d accessor - chatStore.ts: replace window as any with Record - kernel-*.ts: replace prototype as any with Record - gateway-heartbeat.ts: delete dead code (9 as any, zero imports) --- .../WorkflowBuilder/PropertyPanel.tsx | 28 +++-- desktop/src/lib/gateway-api.ts | 2 +- desktop/src/lib/gateway-heartbeat.ts | 117 ------------------ desktop/src/lib/kernel-a2a.ts | 2 +- desktop/src/lib/kernel-agent.ts | 2 +- desktop/src/lib/kernel-chat.ts | 6 +- desktop/src/lib/kernel-hands.ts | 2 +- desktop/src/lib/kernel-skills.ts | 2 +- desktop/src/lib/kernel-triggers.ts | 2 +- desktop/src/store/chatStore.ts | 10 +- desktop/src/store/index.ts | 5 + desktop/src/store/offlineStore.ts | 10 ++ 12 files changed, 45 insertions(+), 143 deletions(-) delete mode 100644 desktop/src/lib/gateway-heartbeat.ts diff --git a/desktop/src/components/WorkflowBuilder/PropertyPanel.tsx b/desktop/src/components/WorkflowBuilder/PropertyPanel.tsx index daede90..f60095e 100644 --- a/desktop/src/components/WorkflowBuilder/PropertyPanel.tsx +++ b/desktop/src/components/WorkflowBuilder/PropertyPanel.tsx @@ -87,6 +87,8 @@ function renderTypeSpecificFields( data: Partial, onChange: (field: string, value: unknown) => void ) { + // Type-safe property accessor for union-typed node data + const d = data as Record; switch (type) { case 'input': return ( @@ -97,7 +99,7 @@ function renderTypeSpecificFields( onChange('variableName', e.target.value)} className="w-full px-3 py-2 border border-gray-300 rounded-lg font-mono" /> @@ -107,7 +109,7 @@ function renderTypeSpecificFields( Default Value