From 3e1f677834ecb4b0550eb2a79c7812c3e2a337ed Mon Sep 17 00:00:00 2001 From: Jarvis Date: Sat, 4 Apr 2026 15:34:43 -0500 Subject: [PATCH] fix: gateway install uses --@mosaic:registry flag to preserve npm prefix Replace temp .npmrc + --userconfig approach with the --@mosaic:registry CLI flag so the user's real ~/.npmrc (including prefix=/home/user/.npm-global) is honoured. This eliminates EACCES errors for non-root installs that relied on a user-level prefix config. Bump @mosaic/cli and @mosaic/mosaic to 0.0.15. Co-Authored-By: Claude Opus 4.6 --- packages/cli/package.json | 2 +- packages/cli/src/commands/gateway/daemon.ts | 21 ++++----------------- packages/mosaic/package.json | 2 +- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 74f7120..d5b9445 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@mosaic/cli", - "version": "0.0.14", + "version": "0.0.15", "repository": { "type": "git", "url": "https://git.mosaicstack.dev/mosaic/mosaic-stack.git", diff --git a/packages/cli/src/commands/gateway/daemon.ts b/packages/cli/src/commands/gateway/daemon.ts index 7d05c5b..d3bba52 100644 --- a/packages/cli/src/commands/gateway/daemon.ts +++ b/packages/cli/src/commands/gateway/daemon.ts @@ -211,23 +211,10 @@ const GITEA_REGISTRY = 'https://git.mosaicstack.dev/api/packages/mosaic/npm/'; export function installGatewayPackage(): void { console.log('Installing @mosaic/gateway from Gitea registry...'); - // Scope only @mosaic packages to Gitea; all other deps resolve from npmjs normally - const npmrcContent = `@mosaic:registry=${GITEA_REGISTRY}\n`; - const tmpNpmrc = join(GATEWAY_HOME, '.npmrc'); - ensureDirs(); - writeFileSync(tmpNpmrc, npmrcContent); - try { - execSync(`npm install -g @mosaic/gateway@latest --userconfig=${tmpNpmrc}`, { - stdio: 'inherit', - timeout: 120_000, - }); - } finally { - try { - unlinkSync(tmpNpmrc); - } catch { - // Ignore cleanup failure - } - } + execSync(`npm install -g @mosaic/gateway@latest --@mosaic:registry=${GITEA_REGISTRY}`, { + stdio: 'inherit', + timeout: 120_000, + }); } export function uninstallGatewayPackage(): void { diff --git a/packages/mosaic/package.json b/packages/mosaic/package.json index 541ac9b..4d465d4 100644 --- a/packages/mosaic/package.json +++ b/packages/mosaic/package.json @@ -1,6 +1,6 @@ { "name": "@mosaic/mosaic", - "version": "0.0.14", + "version": "0.0.15", "repository": { "type": "git", "url": "https://git.mosaicstack.dev/mosaic/mosaic-stack.git",