From d8a1ee8c3c5404a348a36852be73cb7eb00a6abb Mon Sep 17 00:00:00 2001 From: gavrielc Date: Tue, 10 Mar 2026 22:39:26 +0200 Subject: [PATCH] fix: use npm ci in bootstrap to prevent dirty lockfile blocking merges setup.sh ran npm install which modified package-lock.json, causing git merge to refuse during channel skill installation. Switch to npm ci (deterministic, doesn't modify lockfile) and clean up stale peer flags in the lockfile. Co-Authored-By: Claude Opus 4.6 --- .claude/skills/setup/SKILL.md | 2 +- package-lock.json | 5 ----- setup.sh | 4 ++-- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.claude/skills/setup/SKILL.md b/.claude/skills/setup/SKILL.md index 544ee1d..18515f6 100644 --- a/.claude/skills/setup/SKILL.md +++ b/.claude/skills/setup/SKILL.md @@ -58,7 +58,7 @@ Run `bash setup.sh` and parse the status block. - macOS: `brew install node@22` (if brew available) or install nvm then `nvm install 22` - Linux: `curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs`, or nvm - After installing Node, re-run `bash setup.sh` -- If DEPS_OK=false → Read `logs/setup.log`. Try: delete `node_modules` and `package-lock.json`, re-run `bash setup.sh`. If native module build fails, install build tools (`xcode-select --install` on macOS, `build-essential` on Linux), then retry. +- If DEPS_OK=false → Read `logs/setup.log`. Try: delete `node_modules`, re-run `bash setup.sh`. If native module build fails, install build tools (`xcode-select --install` on macOS, `build-essential` on Linux), then retry. - If NATIVE_OK=false → better-sqlite3 failed to load. Install build tools and re-run. - Record PLATFORM and IS_WSL for later steps. diff --git a/package-lock.json b/package-lock.json index ef19a6c..8d63787 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1740,7 +1740,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -2295,7 +2294,6 @@ "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" @@ -2355,7 +2353,6 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -2431,7 +2428,6 @@ "integrity": "sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vitest/expect": "4.0.18", "@vitest/mocker": "4.0.18", @@ -2532,7 +2528,6 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "license": "ISC", - "peer": true, "bin": { "yaml": "bin.mjs" }, diff --git a/setup.sh b/setup.sh index ef7d683..c37f143 100755 --- a/setup.sh +++ b/setup.sh @@ -79,8 +79,8 @@ install_deps() { log "Running as root, using --unsafe-perm" fi - log "Running npm install $npm_flags" - if npm install $npm_flags >> "$LOG_FILE" 2>&1; then + log "Running npm ci $npm_flags" + if npm ci $npm_flags >> "$LOG_FILE" 2>&1; then DEPS_OK="true" log "npm install succeeded" else