chore(deps): clear all 35 HIGH Dependabot alerts; drop Node 18 CI lane - #47
Merged
Conversation
kashishhora
approved these changes
Aug 11, 2026
- Delete stale package-lock.json (npm lockfile in a pnpm-only repo; double-reported 6 alerts) - In-range updates via pnpm update: next 15.5.12->15.5.23, vite 6.4.1->6.4.3 (and 7.x->7.3.6), ws 8.19.0->8.21.3, @modelcontextprotocol/sdk 1.27.1->1.30.0 (pulls hono 4.13.1, @hono/node-server 2.1.0, express-rate-limit 8.6.2, fast-uri 3.1.5, path-to-regexp 8.4.2), rollup 4.62.4 - Add pnpm.overrides for transitive deps exact-pinned upstream: ip-address >=10.3.1 (express-rate-limit pins 10.1.0), postcss >=8.5.18 (next pins 8.4.31), sharp >=0.35.0 (next caps ^0.34.x) - packages/webmcp-server: ws ^8.18.0 -> ^8.21.0 (outside workspace, published separately; needs npm publish to reach consumers) - CI: drop Node 18 lane (EOL; vite >=7.3.5 requires Node >=20.19)
naji247
force-pushed
the
chore/fix-high-dependabot-alerts
branch
from
August 11, 2026 17:42
7984f4e to
b42b41f
Compare
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.
Clears every open HIGH-severity Dependabot alert (35 total) in one pass. No source, config, or behavior changes — lockfile/manifest updates, one CI matrix edit, and the removal of a stale npm lockfile. All verification (frozen-lockfile install, builds, typecheck, lint, 174/174 tests, both example apps, extension) passes from a clean state with pnpm 10.
Advisories cleared
Via
pnpm-lock.yaml(29 alerts):Most land via in-range
pnpm update; hono, @hono/node-server, express-rate-limit, fast-uri, and path-to-regexp arrive through@modelcontextprotocol/sdk1.27.1 → 1.30.0. The @hono/node-server 1.x → 2.1.0 jump is in-range per the SDK's own dependency spec (^1.19.9 || ^2.0.5).Note on vite 7: the base lockfile had no vite 7 at all — vitest's chain sat on vite 6.4.1. This branch introduces vite 7.3.6 into the resolution (in-range per vitest's peer spec); the full verification suite passes on it.
Via
package-lock.jsondeletion (6 alerts): vite #6 #7 #14, ws #13, postcss #104 #105.An audit script checked all 35 alerts against the tree: every locked version of each flagged package ≥ its advisory's patched version — 35/35 pass, 0 failures.
Why delete
package-lock.jsonThis repo is a pnpm workspace (
pnpm-lock.yamlis the real lockfile). Thepackage-lock.jsonat the root was a stale npm artifact (3,672 lines) that nothing installs from, but Dependabot scans it as a second manifest and double-reports the same vulnerable packages (its 6 alerts are duplicates of pnpm-lock ones). Deleting it removes the false surface permanently.Why
pnpm.overridesThree packages could not reach patched versions in-range because upstreams pin them exactly or cap them below the fix:
ip-address: ">=10.3.1"— express-rate-limit exact-pins 10.1.0 → locked 10.5.0postcss: ">=8.5.18"— next exact-pins 8.4.31 → locked 8.5.26sharp: ">=0.35.0"— next caps at^0.34.x→ locked 0.35.3These are minimum-version floors, not pins — they can be dropped once upstreams update.
Node 18 CI lane removed
.github/workflows/ci.ymlmatrix goes[18, 20, 22]→[20, 22]. Node 18 is EOL (April 2025), and the vite ≥7.3.5 in the resolution chain requires Node ≥20.19. This affects dev tooling only — the published packages' runtime support is unchanged.Follow-up required:
webmcp-serverpublishpackages/webmcp-server/package.jsonbumpsws^8.18.0→^8.21.0, but that package sits outside the pnpm workspace and has no lockfile here. Consumers only get the fix after maintainers runnpm publishfor webmcp-server — please treat that as a follow-up to merging this PR.Supersedes Dependabot PR #45
This PR covers everything #45 addressed (and more); #45 can be closed after this merges.
Expected manifest churn (disclosed)
The plan's bare
pnpm updatestep raised range floors across 5 manifests (root,extension/,examples/nextjs,examples/playground,examples/native-harness) — devDependencies (e.g. typescript^5.9.3) and runtimedependenciesin the private packages: next/react/zod in the examples, @modelcontextprotocol/sdk and ws in the extension. Those packages are allprivateand never publish, so the raised runtime floors are harmless. The one floor that touched a published surface — rootzod-to-json-schema(webmcp-react's only runtime dependency), which the update had raised^3.24.1→^3.25.2— has been reverted to^3.24.1; the locked resolution (3.25.2) is unchanged, so npm consumers see no range change. This is pnpm's default manifest rewriting on update, not extra scope creep; the locked versions were already compatible. One over-bump (@biomejs/biome 2.4.2 → 2.5.8, which breaks on schema mismatch) was caught and reverted to the exact pre-existing state —biome.jsonandsrc/have zero diff.Pre-existing build warnings (unaffected by this PR)
Both appear identically before and after this change:
next build(examples/nextjs) — webpack "Critical dependency: Accessing import.meta directly" fromsrc/utils/warn.ts.vite build(examples/playground) — chunk-size warning for a >500 kB bundle.Maintainer heads-up: husky pre-commit vs pnpm 11
.husky/pre-commitruns barepnpm lint-staged. Under a global pnpm 11, that aborts: pnpm 11 rejects/ignores thepnpmfield inpackage.json(including the newoverrides), attempts a modules purge, and dies on no-TTY. Not fixed in this PR — flagging it as a future migration item (CI does not run the hook; lint was run manually via pnpm 10 and passes).Verification (clean state,
npx -y pnpm@10, pnpm 10.34.5)install --frozen-lockfilebuild(tsup)typecheck(tsc --noEmit)lint(biome check .)test(vitest run)build+typecheckexamples/nextjsbuildexamples/playgroundbuild