From 146416e987f374fd57190b23789fa5a3183fc8b3 Mon Sep 17 00:00:00 2001 From: bmad Date: Tue, 5 May 2026 02:17:45 -0300 Subject: [PATCH] fix(installer): guard automator registry lookups --- tools/installer/ide/_config-driven.js | 11 +++++++++-- tools/installer/ui.js | 18 ++++++++++++++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/tools/installer/ide/_config-driven.js b/tools/installer/ide/_config-driven.js index 08d0bafb3..c47b9808c 100644 --- a/tools/installer/ide/_config-driven.js +++ b/tools/installer/ide/_config-driven.js @@ -217,8 +217,15 @@ class ConfigDrivenIdeSetup { const { ExternalModuleManager } = require('../modules/external-manager'); this.externalModuleManager = this.externalModuleManager || new ExternalModuleManager(); - const moduleInfo = await this.externalModuleManager.getModuleByCode(moduleName); - const targets = moduleInfo?.installTargets?.length ? moduleInfo.installTargets : null; + let targets = null; + try { + const moduleInfo = await this.externalModuleManager.getModuleByCode(moduleName); + targets = moduleInfo?.installTargets?.length ? moduleInfo.installTargets : null; + } catch (error) { + await prompts.log.warn( + `ExternalModuleManager.getModuleByCode failed for module '${moduleName}' while installing ${this.name}; installing skill anyway. ${error.message}`, + ); + } this.moduleTargetCache.set(moduleName, targets); return !targets || targets.includes(this.name); diff --git a/tools/installer/ui.js b/tools/installer/ui.js index 8dd6be3cb..c3e0db27c 100644 --- a/tools/installer/ui.js +++ b/tools/installer/ui.js @@ -961,7 +961,14 @@ class UI { async showSelectedExternalModuleNotes(selectedModuleIds, externalModules = null) { if (!externalModules) { const externalManager = new ExternalModuleManager(); - externalModules = await externalManager.listAvailable(); + try { + externalModules = await externalManager.listAvailable(); + } catch (error) { + await prompts.log.warn( + `ExternalModuleManager.listAvailable failed while loading module notes; continuing without external module notes. ${error.message}`, + ); + externalModules = []; + } } const notes = externalModules @@ -975,7 +982,14 @@ class UI { async showSelectedModuleIdeWarnings(selectedModuleIds, selectedIdes = []) { const externalManager = new ExternalModuleManager(); - const externalModules = await externalManager.listAvailable(); + let externalModules = []; + try { + externalModules = await externalManager.listAvailable(); + } catch (error) { + await prompts.log.warn( + `ExternalModuleManager.listAvailable failed while loading IDE compatibility warnings; continuing without external module warnings. ${error.message}`, + ); + } for (const mod of externalModules) { if (!selectedModuleIds.includes(mod.code) || !mod.installTargets || mod.installTargets.length === 0) {