From 6ce4fd1fe45519df1ff73800eda276037a5ebb19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Thu, 16 Apr 2026 23:00:06 -0400 Subject: [PATCH] fix(onboarding): log skill scan failures instead of silent swallow --- src/main/onboarding-service.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/onboarding-service.ts b/src/main/onboarding-service.ts index 1dc203c6..fab944eb 100644 --- a/src/main/onboarding-service.ts +++ b/src/main/onboarding-service.ts @@ -37,6 +37,8 @@ interface OnboardingDependencies { publishDomainChanged: () => void; /** Scan workspace directories for skills and import them. Best-effort — may be undefined during early init. */ scanAndAssignSkills?: (companyId: string, agentId: string) => Promise; + /** Optional logger for non-fatal errors from best-effort operations (skill seeding, etc.). */ + logger?: { warn: (...args: unknown[]) => void }; } const DEFERRABLE_RUN_ERRORS = new Set([ @@ -75,6 +77,7 @@ export function createOnboardingService({ queueTaskRun, publishDomainChanged, scanAndAssignSkills, + logger, }: OnboardingDependencies) { function updateAgentWorkspaceBinding(agentId: string, workspaceId: string | null) { if (!workspaceId) return; @@ -260,7 +263,10 @@ export function createOnboardingService({ seedDefaultAutomationRules(companyId); if (scanAndAssignSkills) { - void scanAndAssignSkills(companyId, ceoId).catch(() => {}); + void scanAndAssignSkills(companyId, ceoId).catch((error) => { + const message = error instanceof Error ? error.message : String(error); + logger?.warn(`[onboarding] skill scan failed for agent ${ceoId}: ${message}`); + }); } const kickoff = createInitialExecutionLoop(companyId, workspaceId);