From 0ef682e053c247fd07bd1c94f412f8ac128bc50a Mon Sep 17 00:00:00 2001 From: Jarvis Date: Wed, 24 Jun 2026 16:46:03 -0500 Subject: [PATCH] feat(gateway): honor MOSAIC_GATEWAY_SKIP_NPM_INSTALL to skip registry reinstall Lets dev/offline installs keep an already-present global @mosaicstack/gateway (e.g. a build-from-source `install.sh --dev`) instead of overwriting it with the registry @latest build during `mosaic wizard` / `mosaic gateway install`. Refs #675 Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01RMoEx7hfdFGjUiCHuN1RRi --- packages/mosaic/src/stages/gateway-config.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/mosaic/src/stages/gateway-config.ts b/packages/mosaic/src/stages/gateway-config.ts index fdfd8ba..6002169 100644 --- a/packages/mosaic/src/stages/gateway-config.ts +++ b/packages/mosaic/src/stages/gateway-config.ts @@ -294,7 +294,12 @@ export async function gatewayConfigStage( } // Install the gateway npm package on first install or after failure. - if (!opts.skipInstall && !daemonRunning) { + // MOSAIC_GATEWAY_SKIP_NPM_INSTALL=1 forces a skip even without opts.skipInstall: + // used by dev/offline installs where @mosaicstack/gateway is already present + // globally (e.g. a build-from-source `install.sh --dev`) and must not be + // overwritten by the registry @latest build. + const skipNpmInstall = opts.skipInstall || process.env['MOSAIC_GATEWAY_SKIP_NPM_INSTALL'] === '1'; + if (!skipNpmInstall && !daemonRunning) { installGatewayPackage(); }