fix(ci): lazy-load installer so mcp/help work without cli deps#73
Conversation
…i deps cli.js statically imported install.js, which imports the cli-only 'decompress' dep. In CI only root deps are installed (cli/ is not a workspace), so that eager import failed for EVERY command incl. 'mcp --help' -> non-zero exit -> release test step failed. install.js is now imported lazily inside the installer path only; the mcp + --help paths load nothing beyond picocolors + node builtins. Verified with cli/node_modules removed: mcp --help exit 0, mcp-server test 3/3.
There was a problem hiding this comment.
Code Review
This pull request refactors the CLI entry point cli/bin/cli.js to lazily load the installer module (../src/install.js) via a new asynchronous loadInstaller function. This prevents eager importing of the decompress dependency, which was causing crashes in environments where only root dependencies are present (such as CI) when running other subcommands or the help menu. There are no review comments, and I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Follow-up to #72. The release test step still failed:
cli.jsstatically importedinstall.js, which imports the cli-onlydecompressdep. CI installs only root deps (cli/ isn't a workspace), so that eager import failed for every command — includingmcp --help— → non-zero exit →npm testfailed.install.jsis now imported lazily inside the installer path only;mcp/--helpload nothing beyond picocolors + node builtins. Verified withcli/node_modulesremoved:mcp --helpexit 0, mcp-server test 3/3, full suite 455+1skip.🤖 Generated with Claude Code