Skip to content

fix(ci): sync the lockfile with 2.0.3 - #21

Merged
rohanpoudel2 merged 1 commit into
mainfrom
fix/ci-lockfile
Aug 5, 2026
Merged

fix(ci): sync the lockfile with 2.0.3#21
rohanpoudel2 merged 1 commit into
mainfrom
fix/ci-lockfile

Conversation

@rohanpoudel2

Copy link
Copy Markdown
Owner

CI is red on main and every open PR. This fixes it.

The failure

npm error `npm ci` can only install packages when your package.json and
npm error package-lock.json are in sync.
npm error Invalid: lock file's image-and-video-compressor@2.0.2
npm error          does not satisfy image-and-video-compressor@2.0.3

Every job fails at npm ci, so nothing downstream ever ran.

Cause

The 2.0.3 release pinned mcp/ to ^2.0.3 while 2.0.3 did not exist on the registry yet.

mcp/ resolves image-and-video-compressor from npm, not from this repo — the root package is the workspace root, not a workspace member, so there is no local link. With the target version unpublished the constraint was unsatisfiable: npm install left the lock entry at 2.0.2, and npm ci, which is strict where install is forgiving, refused it.

The pin itself was correct — the MCP schema promises "never enlarges", which only holds from 2.0.3. The order was wrong: publish first, pin second. 2.0.3 is on the registry now, so the lock resolves.

Verified

With the exact command CI runs, not an approximation:

  • npm ci → exit 0
  • both packages build
  • 184 tests pass

Related finding, not fixed here

Because mcp/ resolves its dependency from the registry, the MCP tests exercise the published library, not this branch's src/. A library change that breaks the MCP server would not be caught until after publishing.

That is a real gap and deserves its own decision rather than a rushed fix — the clean solution is restructuring into packages/core + packages/mcp so the dependency links locally, which is a bigger change than a CI hotfix should carry.

`npm ci` failed on every job, main included:

  Invalid: lock file's image-and-video-compressor@2.0.2
           does not satisfy image-and-video-compressor@2.0.3

Cause: the 2.0.3 release pinned mcp/ to ^2.0.3 while 2.0.3 did not exist
on the registry yet. mcp/ resolves that dependency from npm rather than
from this repo, so the constraint was unsatisfiable, `npm install` left
the lock entry at 2.0.2, and `npm ci` — which is strict where install is
forgiving — rejected the mismatch.

The pin was right, the order was wrong: it should have been published
first and pinned second. 2.0.3 is on the registry now, so the lock
resolves cleanly.

Verified with the exact command CI runs: `npm ci` exits 0, both packages
build, 184 tests pass.
@rohanpoudel2
rohanpoudel2 merged commit e5982e6 into main Aug 5, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant