Conversation
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) to 5.0.7 and updates ancestor dependency [eslint](https://github.com/eslint/eslint). These dependencies need to be updated together. Updates `brace-expansion` from 5.0.6 to 5.0.7 - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](juliangruber/brace-expansion@v5.0.6...v5.0.7) Updates `eslint` from 9.39.4 to 10.7.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.39.4...v10.7.0) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 5.0.7 dependency-type: indirect - dependency-name: eslint dependency-version: 10.7.0 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
|
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_a63ec7c5-d234-4f37-a039-c11cb5279763) |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThe ESLint development dependency in ChangesESLint Version Update
Estimated code review effort: 1 (Trivial) | ~2 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
✨ Simplify code
Warning Review ran into problems🔥 ProblemsThese MCP integrations need to be re-authenticated in the Integrations settings: Sentry Comment |
🌊 WAVE BugBot — 5 finding(s)🔴 4 · 🟠 1
severity: critical · major · minor · info — local review · $0 inference · wave-dispatch · react 👍/👎 to tune |
Resolves the package-lock.json conflict left by two independent moves on the
same transitive dependency:
- this branch takes eslint to ^10.7.0, whose tree resolves brace-expansion
on the 5.x line, pinned at 5.0.8 (5.0.7 is still vulnerable);
- main stayed on eslint 9 and moved brace-expansion to 1.1.18.
package.json merged cleanly and keeps eslint ^10.7.0, so the eslint-10 tree is
the correct side of the lock. The lockfile was then reconciled against the
merged manifest with npm install --package-lock-only rather than hand-edited,
so it is a real npm resolution and not a stitched-together file. That
reconciliation moved exactly three lines -- the package version to 1.0.15 and
the declared bin to dist/cli/index.js, both of which are main package.json
changes the lock had to pick up. No other dependency drifted.
Verified after the merge:
package.json "eslint": "^10.7.0"
package-lock.json "node_modules/eslint" -> 10.7.0
package-lock.json "node_modules/brace-expansion" -> 5.0.8
npm audit reports 0 vulnerabilities over 182 packages
Also confirmed no main-only file was dropped: git diff --diff-filter=D
--name-only origin/main HEAD is empty, and the only paths differing from main
are package.json and package-lock.json. The merge honours main deleting
.github/workflows/publish.yml (superseded by release.yml).
🤖 CodeAnt AI — Review Status
|
Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_6017fc10-0391-4bd6-a3e8-d0e0b88aeed8) |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The change is confined to dependency metadata and lockfile paths and appears limited to the development toolchain, with no production source or API changes. Its explicit purpose is to remediate a vulnerable dependency, so the security-sensitive nature warrants manual review despite the narrow scope. Not approved because:
Review your spending limits in Billing settings. You can add or adjust custom eligibility rules. Learn more. |
| "@eslint/js": "^9.39.4", | ||
| "@types/node": "^25.9.2", | ||
| "eslint": "^9.39.4", | ||
| "eslint": "^10.7.0", |
There was a problem hiding this comment.
Suggestion: On Node 18 or Node 20 before 20.19, this ESLint version is unsupported; installation may continue with a warning, then npm run lint can fail at runtime. [possible bug]
Assessment: 🟠 Major · 🔁 Occurrence: Rarely
Prompt for AI Agent 🤖
This is a comment left during a code review.
**Path:** package.json
**Line:** 57:57
**Comment:**
*Possible Bug: On Node 18 or Node 20 before 20.19, this ESLint version is unsupported; installation may continue with a warning, then `npm run lint` can fail at runtime.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
User description
Builds on #50 and takes
brace-expansionone version further, to the one that actually clears the advisory.Four lines on top of #50. Merge this instead of #50 — it contains #50 in full.
#50 does the hard part, then stops one version short
brace-expansionhas two live advisories. #50 targets the older>= 3.0.0, < 5.0.7(fix5.0.7). The newer — GHSA-mh99-v99m-4gvg, range<= 5.0.7, patched in5.0.8— puts5.0.7inside the vulnerable range. So #50 lands on a version that is still flagged.Measured, dev scope included, on all three states:
brace-expansionmain@eb79119Why #50's approach is the right one, and worth saying out loud
I expected this repo to be unfixable. It was the worst case in the fleet survey (wave-av/claude-workstation#562):
maincarries two trees at once —minimatch@3.1.5doesconst expand = require('brace-expansion')and calls the result as a function, while every patchedbrace-expansionexports an object. Forcing a patched version onto that tree producesTypeError: expand is not a functionat runtime whilenpm auditreports clean — claude-workstation#554, where it also passed 195/195 tests. And the root tree's own alert (< 1.1.16) is a trap inside the trap:1.1.16is API-compatible, but it was published 2026-07-08, before the fix landed on 2026-07-23, and the v1 line never got the backport. API-compatible is not the same as patched.The conclusion I'd drawn from that was "dismiss it, no safe fix exists." That was wrong, and #50 is why. Rather than overriding
brace-expansionunder a consumer that can't take it, #50 upgrades the consumer: bumping eslint moves@eslint/config-arrayfromminimatch: ^3.1.5to^10.2.4and drops@eslint/eslintrcentirely — the two things that were pinningminimatch@3. The result is a single hoisted tree with nominimatch@3anywhere:Once
minimatch@3is gone,5.0.8is simply safe —minimatch@10uses named exports and expects the object shape. The general rule, the one worth keeping: when a transitive dependency can't be patched, upgrade the parent that pins it rather than overriding the child.It also incidentally clears the
js-yamlHIGH (alert #5), because@eslint/eslintrcwas what pulledjs-yaml@4.2.0in. That makes #53 redundant — see my comment there.Verification
CI can't run — Actions are refusing every job org-wide on an account-level billing lock (
plan=free,locked=yes, re-confirmed live today). All local, Node 22.14.0:npm run lintis the one that matters here, not a formality: eslint is the actual consumer ofminimatch/brace-expansion, and #50 upgrades eslint itself. A clean--max-warnings 0run oversrc/exercises the changed dependency end-to-end.This repo has no test suite, so I also drove the module directly —
npm auditonly compares version strings and never loads anything:That last line is precisely the shape that breaks
minimatch@3— and brace expansion resolves correctly throughminimatch@10.Measurement caveat: this workstation exports
NODE_ENV=production, which makesnpm auditinheritomit=devand hide dev-scope entries entirely — which is all of these. Every figure above was taken withNODE_ENV=developmentset explicitly.Unrelated thing I noticed
This repo has no
.gitignore, sonode_modules/shows up as untracked rather than ignored. On a public repo that's onegit add -Aaway from a very bad commit. Not fixing it in this PR; flagging it as worth its own.Note
Low Risk
Dev-only dependency and lockfile updates; runtime/published
@wave-av/adkcode is unchanged, with main risk being local/CI lint on older Node versions.Overview
Bumps the dev dependency
eslintfrom ^9.39.4 to ^10.7.0 and refreshespackage-lock.jsonso the lint toolchain no longer pulls the oldminimatch@3/brace-expansion@1.xtree.The lockfile change hoists
minimatch@10andbrace-expansion@5.0.8(clearing the remaining advisory that5.0.7still hit), drops@eslint/eslintrcand related legacy packages (e.g.js-yaml, chalk stack), and raises ESLint’s Node engine to ^20.19.0 || ^22.13.0 || >=24 for localnpm run lint. No source or ESLint config files are modified in this diff.Reviewed by Cursor Bugbot for commit 2f5225e. Bugbot is set up for automated code reviews on this repo. Configure here.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is enabled.Summary by cubic
Upgrades
eslintto ^10.7.0 and resolvesbrace-expansionto 5.0.8 so the dev tree clears the remaining advisory (GHSA-mh99-v99m-4gvg) with zero vulnerabilities across 182 packages. 5.0.7 is still inside the vulnerable range, so this goes one version past #50 instead of stopping there.Dependencies
eslint@10hoistsminimatchto 10.x and removes@eslint/eslintrc, which also clears thejs-yamladvisory.npm install --package-lock-only..github/workflows/publish.yml.Migration
Written for commit 2f5225e. Summary will update on new commits.
Summary by Sourcery
Upgrade ESLint and its dependency tree to eliminate the remaining vulnerable brace-expansion version.
Bug Fixes:
Enhancements:
Tests:
CodeAnt-AI Description
Update development tooling and remove the remaining vulnerable brace-expansion version
What Changed
brace-expansionat 5.0.8 instead of vulnerable 5.0.7 or older versionsImpact
✅ Vulnerable brace-expansion version removed✅ Current ESLint development checks✅ Cleaner dependency installation💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.