Repository navigation
ci(e2e): commit the harness pnpm lockfile and install it frozen - #1382
Merged
Merged
Conversation
tests/e2e ignored pnpm-lock.yaml since the harness scaffold, so every CI run resolved the transitive graph afresh: runs were not reproducible and the dependency graph (hence Dependabot alerts) only saw the direct pins in package.json. Commit pnpm-lock.yaml (generated with pnpm 11, the version CI pins) and switch both installers -- the ci.yml e2e matrix and the real-provider semantic-embedding smoke -- to `pnpm install --frozen-lockfile`. package-lock.json stays ignored; the suite uses pnpm only. The resolved graph carried three open advisories, fixed here: - vitest / @vitest/coverage-v8 4.1.11 -> 4.1.12 (@vitest/mocker, GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp) - zod pinned to 4.6.7 via a pnpm override (GHSA-mrhx-c7xc-m3w5; no 3.x is patched). It arrives through @modelcontextprotocol/sdk (accepts zod 4) and as openai 4.x's optional peer, used only by its zod helpers, which the harness does not import.
An exact 4.6.7 pin would hold the harness on that release past the next zod fix; ^4.6.6 keeps the advisory floor and lets a lockfile refresh move.
The job's "check harness exists" step set present=false when tests/e2e/package.json was absent, which skipped install, typecheck and the suite with a ::notice:: and left every leg green. It now fails with an ::error::. The pnpm pin's comment claimed to match local development; it now states what CI pins.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The e2e harness under
tests/e2ehas ignoredpnpm-lock.yamlsince the scaffold went in, so every CI run resolved the transitive dependency graph from scratch. That made runs non-reproducible, and the dependency graph (which is what Dependabot alerts read) only ever saw the direct pins inpackage.json.This commits
tests/e2e/pnpm-lock.yaml, generated with pnpm 11 (the version the workflows pin), and switches both places that install the harness topnpm install --frozen-lockfile: thee2ematrix inci.ymland the real-provider semantic-embedding smoke.package-lock.jsonstays ignored since the suite only uses pnpm. Nodependabot.ymlis added: alerts come from the dependency graph, which picks up a committedpnpm-lock.yamlon its own.Resolving the graph surfaced three open advisories, fixed here so the lockfile lands clean:
vitest/@vitest/coverage-v84.1.11 → 4.1.12, for@vitest/mocker(GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp).zodoverridden to^4.6.6(resolves 4.6.7) intests/e2e/pnpm-workspace.yaml(GHSA-mrhx-c7xc-m3w5, no 3.x release is patched). It comes in through@modelcontextprotocol/sdk, which accepts zod 4, and as an optional peer ofopenai4.x that only itsopenai/helpers/zodentry uses; the harness doesn't import that.Two related fixes in the same
e2ejob. It used to skip install, typecheck and the suite whenevertests/e2e/package.jsonwas absent (thecheck harness existsstep setpresent=falseand only emitted a::notice::), so every leg reported green with nothing run. It now fails with an::error::instead; the check stays explicit because pnpm exits 0 in a directory that haspnpm-workspace.yamlbut nopackage.json. And the comment on the pnpm pin, which claimed it matched what developers run locally, now just states that CI pins pnpm 11 (lockfile format v9); the pinned version itself is unchanged.pnpm auditon the new lockfile reports no known vulnerabilities. No product code changes; the harness typechecks and the e2e checks on this PR exercise the frozen install.🤖 Generated with Claude Code
Summary by CodeRabbit