The GitHub Actions CI workflow failed during the "Install dependencies" step because npm ci --ignore-scripts exited with code 1, printing npm usage/help information.
The underlying error was:
npm error `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.
npm error Missing: @sufiyan-sabeel/airis-cli@0.79.3 from lock file
The root cause was a package-lock.json out of sync with package.json:
- The workspace package
packages/coding-agenthas"name": "@sufiyan-sabeel/airis-cli"in its package.json - The package-lock.json contained an entry for
@earendil-works/airis-coding-agentpointing topackages/coding-agent(old package name) - The lockfile was missing the
@sufiyan-sabeel/airis-clientry entirely - This mismatch caused
npm cito fail because it requires exact lockfile synchronization
.github/workflows/ci.yml(line 33:npm ci --ignore-scripts).github/workflows/build-binaries.yml(line 117:npm ci --ignore-scripts)
Regenerated the root package-lock.json to match the current workspace package.json files:
npm install --package-lock-only --ignore-scriptsThis command:
- Reads all package.json files in the workspace
- Resolves dependencies fresh
- Updates package-lock.json to match current package.json specifications
- Correctly links all workspace packages including
@sufiyan-sabeel/airis-cli
package-lock.json- Regenerated to include correct workspace package entries:@earendil-works/airis-agent-core→packages/agent(link: true)@earendil-works/airis-ai→packages/ai(link: true)@earendil-works/airis-tui→packages/tui(link: true)@sufiyan-sabeel/airis-cli→packages/coding-agent(link: true)airis-extension-custom-provider-anthropic→packages/coding-agent/examples/extensions/custom-provider-anthropic(link: true)airis-extension-custom-provider-gitlab-duo→packages/coding-agent/examples/extensions/custom-provider-gitlab-duo(link: true)airis-extension-gondolin→packages/coding-agent/examples/extensions/gondolin(link: true)airis-extension-sandbox→packages/coding-agent/examples/extensions/sandbox(link: true)airis-extension-with-deps→packages/coding-agent/examples/extensions/with-deps(link: true)
- All workspace packages now correctly listed with
"link": true @sufiyan-sabeel/airis-cli@0.79.3now present in lockfile- No "Missing from lock file" errors
.github/workflows/ci.yml- Valid YAML, correct npm ci usage.github/workflows/build-binaries.yml- Valid YAML, correct npm ci usage- Node version 22 matches project requirement (
engines.node: ">=22.19.0") --ignore-scriptsflag is valid for npm ci
npm ci --ignore-scriptsnow passes the lockfile sync check- Workspace linking configured correctly in lockfile
npm run build- Defined in root package.json, builds all packages in ordernpm run check- Runs biome, pinned-deps, ts-imports, shrinkwrap, tsgo, browser-smokenpm test- Runs vitest across workspaces
- The workflow files themselves did not require modification - the syntax was already correct
- The fix addresses the root cause (lockfile drift) rather than working around it
- Both CI workflows (ci.yml and build-binaries.yml) will now pass the install step
- No changes to source code or package.json files were required
- The
--ignore-scriptsflag is appropriate for CI to avoid running lifecycle scripts during dependency installation