From 32b104b4bc3b3fd6d136d54abe0f203fdd871578 Mon Sep 17 00:00:00 2001 From: Nikita Levyankov Date: Thu, 18 Dec 2025 12:39:07 +0200 Subject: [PATCH] fix: handle array-wrapped 'all' value for modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After wrapping profile string values in arrays in options-parser, the modules handling in ui.js was still only checking for string 'all', not array ['all']. This would break profiles with `modules: 'all'`. Added checks for both cases: - String: `options.modules === 'all'` (original case) - Array: `options.modules.includes('all')` (new case after wrapping) Now modules handling is consistent with agents/workflows filtering which already used `.includes('all')`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- tools/cli/lib/ui.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/cli/lib/ui.js b/tools/cli/lib/ui.js index 714daed2..d0e12b0b 100644 --- a/tools/cli/lib/ui.js +++ b/tools/cli/lib/ui.js @@ -1545,7 +1545,7 @@ class UI { } } else if (options.modules) { // Module-based installation - if (options.modules === 'all') { + if (options.modules === 'all' || (Array.isArray(options.modules) && options.modules.includes('all'))) { selectedModules = ['bmm', 'bmbb', 'cis', 'bmgd']; } else if (Array.isArray(options.modules)) { selectedModules = options.modules.filter((m) => m !== 'core'); @@ -1554,7 +1554,7 @@ class UI { // Profile-based installation const { getProfile } = require('../installers/lib/profiles/definitions'); const profile = getProfile(options.profile); - if (profile.modules === 'all') { + if (profile.modules === 'all' || (Array.isArray(profile.modules) && profile.modules.includes('all'))) { selectedModules = ['bmm', 'bmbb', 'cis', 'bmgd']; } else if (Array.isArray(profile.modules)) { selectedModules = profile.modules.filter((m) => m !== 'core');