Skip to content

Bump deps and pnpm overrides to clear 22 Dependabot alerts#294

Merged
hackerwins merged 3 commits into
mainfrom
20260525-dependabot-alerts
May 24, 2026
Merged

Bump deps and pnpm overrides to clear 22 Dependabot alerts#294
hackerwins merged 3 commits into
mainfrom
20260525-dependabot-alerts

Conversation

@hackerwins

@hackerwins hackerwins commented May 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

Resolves all 22 open Dependabot alerts (6 high, 14 medium, 2 low) — all npm transitive deps surfaced through pnpm-lock.yaml.

Root cause was twofold:

  • Stale pnpm.overrides that pinned a version which has since received its own advisory: lodash 4.17.23, serialize-javascript 7.0.3, brace-expansion 1.1.12 / 5.0.5.
  • Override ranges too narrow to cover all installed copies: file-type 19.6.0, picomatch 2.x, brace-expansion 2.x lines slipped through.

Changes

  • Updated stale overrides: lodash4.18.1 (not 4.18.0 — npm deprecates 4.18.0 as a bad release), serialize-javascript → 7.0.5, brace-expansion → 1.1.13 / 2.0.3 / 5.0.6, broadened file-type (<21.3.2) and picomatch (<2.3.2).
  • New overrides: fast-uri 3.1.2, fast-xml-builder 1.1.7, fast-xml-parser 5.7.0, path-to-regexp 8.4.0, tmp 0.2.4, esbuild 0.25.0, postcss 8.5.10, qs 6.15.2.
  • Direct bumps: vite ^6.4.1^6.4.2 (frontend, docs, sheets, slides) + a scoped vite@>=6.0.0 <6.4.2 override so vitest's own copy moves; @nestjs/core → 11.1.18.

A lockfile scan confirms zero vulnerable versions remain for any of the 22 advisories.

Known limitation

[email protected] remains via vitepress 1.6.4 (dev-only docs-site builder). The vite advisory range nominally covers it, but it was not among the 22 flagged alerts and can't move to vite 6 without a vitepress major upgrade. Tracked as a follow-up.

Test plan

  • pnpm verify:fast → green (frontend 38, backend 401, sheets 1274, slides 1296, cli 191, docs 792)
  • pnpm build → all packages build
  • pnpm documentation build → vitepress builds with esbuild 0.25 forced into its vite 5 (riskiest override verified)
  • Lockfile scan: no installed version falls in any advisory's vulnerable range

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Added comprehensive documentation on Dependabot alerts resolution and key lessons learned.
    • Updated project task tracking records with completed items.
  • Chores

    • Updated Vite development dependency to latest patch version across packages.
    • Bumped NestJS core backend dependency.
    • Adjusted package dependency override configuration for improved dependency management.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 24, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@hackerwins, we couldn't start this review because you've used your available PR reviews for now.

Your plan currently allows 1 review/hour. Refill in 35 minutes and 29 seconds.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more review capacity refills, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 01e02a6c-9c19-4486-800e-9e942df9a99c

📥 Commits

Reviewing files that changed from the base of the PR and between 46b43f1 and 998e0f6.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (13)
  • docs/tasks/README.md
  • docs/tasks/archive/2026/05/20260524-frontend-vitest-migration-lessons.md
  • docs/tasks/archive/2026/05/20260524-frontend-vitest-migration-todo.md
  • docs/tasks/archive/2026/05/20260525-ci-tokens-build-todo.md
  • docs/tasks/archive/2026/05/20260525-dependabot-alerts-lessons.md
  • docs/tasks/archive/2026/05/20260525-dependabot-alerts-todo.md
  • docs/tasks/archive/README.md
  • package.json
  • packages/backend/package.json
  • packages/docs/package.json
  • packages/frontend/package.json
  • packages/sheets/package.json
  • packages/slides/package.json
📝 Walkthrough

Walkthrough

Root pnpm.overrides configuration updated with revised and expanded transitive dependency constraints; direct dependency versions bumped for @nestjs/core and vite across packages; comprehensive Dependabot resolution plan and lessons documented; task tracking indexes updated to register the completed work.

Changes

Dependabot Alerts Resolution

Layer / File(s) Summary
Root pnpm.overrides dependency constraints
package.json
pnpm.overrides section replaced with revised and expanded version constraints targeting serialize-javascript, brace-expansion, lodash, file-type, picomatch, yauzl, tmp, esbuild, postcss, qs, and vite to enforce vulnerability-free transitive dependency resolution.
Direct dependency version updates across packages
packages/backend/package.json, packages/docs/package.json, packages/frontend/package.json, packages/sheets/package.json, packages/slides/package.json
@nestjs/core bumped from ^11.1.0 to ^11.1.18 in backend; vite bumped from ^6.4.1 to ^6.4.2 in docs, frontend, sheets, and slides packages.
Dependabot resolution plan and lessons documentation
docs/tasks/active/20260525-dependabot-alerts-lessons.md, docs/tasks/active/20260525-dependabot-alerts-todo.md
New documentation files record root causes of 22 alerts, the remediation plan including override adjustments and direct bumps, verification results confirming vulnerability removal and green CI, a known vitepress constraint, and six actionable lessons for managing pnpm.overrides and transitive dependency scans.
Task index and archive updates
docs/tasks/README.md, docs/tasks/archive/README.md
Active tasks table now includes dependabot alerts (2026-05-25) entry; archive metadata updated to reflect 210 total archived tasks; archive table includes newly completed backend hardening, build dependency, and slides-related tasks.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • wafflebase/wafflebase#88: Both PRs directly modify package.json's pnpm.overrides to address Dependabot/vulnerability fixes for overlapping packages (e.g., brace-expansion, lodash, file-type, picomatch, yauzl).

  • wafflebase/wafflebase#208: Both PRs update docs/tasks/README.md—the Active Tasks table, "Latest active task", and archive count metadata—registering task completion in the project's tracking system.

Poem

🐰 A rabbit's rhyme for the dependency fix:

Twenty-two alerts in the night,
Overrides mixed, the versions weren't right.
With pnpm and care, we patched every crack,
Bumped the safe versions, and brought green lights back.
Now vite runs swift and the nests are secure—
Lessons recorded, the fixes endure! 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: bumping dependencies and pnpm overrides to resolve 22 Dependabot alerts, which aligns directly with the changeset's primary objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 20260525-dependabot-alerts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/tasks/active/20260525-dependabot-alerts-todo.md`:
- Around line 27-57: The task file's plan checklist under headings "A. Update
stale `pnpm.overrides` entries", "B. Add new `pnpm.overrides`", "C. Direct
dependency bumps", and "D. Verify" is inconsistent with the overall status
(`status: done`)—update each checklist item from `[ ]` to `[x]` (or prepend a
short note like "Historical plan - completed") so the entries match the `status:
done` summary and avoid ambiguity; locate and edit the checklist lines under
those exact headings to flip all unchecked boxes to checked.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2d15d91e-f553-41bf-b85c-41df165b2c22

📥 Commits

Reviewing files that changed from the base of the PR and between 8b55bfb and 46b43f1.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (10)
  • docs/tasks/README.md
  • docs/tasks/active/20260525-dependabot-alerts-lessons.md
  • docs/tasks/active/20260525-dependabot-alerts-todo.md
  • docs/tasks/archive/README.md
  • package.json
  • packages/backend/package.json
  • packages/docs/package.json
  • packages/frontend/package.json
  • packages/sheets/package.json
  • packages/slides/package.json

Comment thread docs/tasks/archive/2026/05/20260525-dependabot-alerts-todo.md
@github-actions

github-actions Bot commented May 24, 2026

Copy link
Copy Markdown
Contributor

Verification: verify:self

Result: ✅ PASS in 250.2s

Lane Status Duration
tokens:build ✅ pass 2.3s
sheets:build ✅ pass 14.2s
docs:build ✅ pass 13.4s
slides:build ✅ pass 14.9s
verify:fast ✅ pass 160.4s
frontend:build ✅ pass 19.8s
verify:frontend:chunks ✅ pass 0.4s
backend:build ✅ pass 5.2s
cli:build ✅ pass 2.3s
verify:entropy ✅ pass 17.3s

Verification: verify:integration

Result: ✅ PASS

@codecov

codecov Bot commented May 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

GitHub Dependabot reported 22 open alerts (6 high, 14 medium, 2 low),
all npm transitive deps surfaced through the lockfile. Several existing
pnpm.overrides had gone stale: they pinned a version that since received
its own advisory (lodash 4.17.23, serialize-javascript 7.0.3,
brace-expansion 1.1.12/5.0.5), and a few ranges were too narrow to cover
all installed copies (file-type 19.x, picomatch 2.x, brace-expansion 2.x).

Update those overrides, add overrides for newly-flagged packages
(fast-uri, fast-xml-builder, fast-xml-parser, path-to-regexp, tmp,
esbuild, postcss, qs), bump vite to ^6.4.2 in the four app packages plus
a scoped vite override so vitest's copy moves too, and pull @nestjs/core
11.1.18. lodash is pinned to 4.18.1, not the advisory's 4.18.0, because
npm deprecates 4.18.0 as a bad release.

A lockfile scan confirms no vulnerable version remains for any of the 22
advisories. verify:fast, pnpm build, and the vitepress docs build all
pass. [email protected] stays via vitepress 1.x (dev-only, not among the 22).

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@hackerwins
hackerwins force-pushed the 20260525-dependabot-alerts branch from 46b43f1 to 2fd3fe4 Compare May 24, 2026 16:25
hackerwins and others added 2 commits May 25, 2026 01:32
Both tasks' work has landed on main: the Vitest migration merged as #291,
and the @wafflebase/tokens deploy fixes (publish-ghpage.yml build:all +
Dockerfile tokens build) are present on main, absorbed into #292. Their
only open todo items were trailing 'open PR / code review' process steps,
now ticked, so pnpm tasks:archive moves both to archive/2026/05 and
regenerates the index.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
The 22-alert remediation is complete and verified in this branch (PR
#294); tick the remaining plan checkboxes and move the todo/lessons to
archive/2026/05 so the active task list reflects only in-flight work.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@hackerwins
hackerwins merged commit 178f11c into main May 24, 2026
1 check passed
@hackerwins
hackerwins deleted the 20260525-dependabot-alerts branch May 24, 2026 16:38
hackerwins added a commit that referenced this pull request May 25, 2026
The v0.4.2 release Docker build exceeded GitHub's 6-hour job limit and
was cancelled, while normal main-push builds finished in ~3 minutes. The
workflow built linux/amd64,linux/arm64 in one job on an amd64 runner, so
arm64 was produced under QEMU emulation. The Dockerfile builder stage is
pinned to $BUILDPLATFORM (native), but the runtime stage is not, so the
arm64 'pnpm install --prod' and 'npx prisma generate' ran emulated. These
were normally inline-cache hits; the preceding dependency bump (#294/#295)
rewrote pnpm-lock.yaml and package.json, invalidating the cache and forcing
the emulated steps to execute for the first time -> 6h timeout.

Build each platform on its own native runner (ubuntu-24.04 /
ubuntu-24.04-arm, free on this public repo), push by digest, and merge a
multi-arch manifest. Replace the broken type=inline cache with
type=gha,mode=max scoped per arch, and add timeout-minutes so a hang fails
fast instead of burning 6h.

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
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