Skip to content

feat(deps): upgrade eslint to v10 across the frontend toolchain - #697

Merged
gkorland merged 1 commit into
stagingfrom
feat/eslint-10-upgrade
Aug 12, 2026
Merged

feat(deps): upgrade eslint to v10 across the frontend toolchain#697
gkorland merged 1 commit into
stagingfrom
feat/eslint-10-upgrade

Conversation

@gkorland

@gkorland gkorland commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Unblocks Dependabot PR #691 (@eslint/js 9.39.2 → 10.0.1), which cannot pass CI on its own: @eslint/js@10 declares peerOptional eslint@^10.0.0 while the project pins eslint@^9.32.0, so npm ci fails with ERESOLVE in the unit-tests job.

Moving to eslint 10 requires a coordinated bump rather than a single dev-dep update.

Changes

Package Before After Reason
eslint ^9.32.0 ^10.8.1 required by @eslint/js@10
@eslint/js ^9.32.0 ^10.0.1 the bump from #691
eslint-plugin-react-hooks ^5.2.0 ^7.1.1 v5 peers on eslint <=9

Unchanged because they already declare eslint 10 support:

  • typescript-eslint@8.66.0 — peers ^8.57.0 || ^9.0.0 || ^10.0.0
  • eslint-plugin-react-refresh@0.4.20 — peers >=8.40

No flat-config migration was needed: app/eslint.config.cjs does not reference @eslint/js or the React plugins (they are currently unused devDependencies).

Root package-lock.json is regenerated alongside app/, since it embeds the app workspace tree via "queryweaver-app": "file:app" (see #696).

Testing

Memory / Performance Impact

N/A — dev tooling only, no runtime dependencies affected.

Related Issues

Supersedes #691.

Summary by CodeRabbit

  • Chores
    • Updated development linting tools to newer versions.
    • Improved compatibility with the latest linting and React Hooks validation standards.

Unblocks the @eslint/js 9 -> 10 bump (#691), which alone caused an
ERESOLVE failure because @eslint/js@10 peers on eslint@^10 while the
project pinned eslint@^9.

Coordinated bumps:
- eslint ^9.32.0 -> ^10.8.1
- @eslint/js ^9.32.0 -> ^10.0.1
- eslint-plugin-react-hooks ^5.2.0 -> ^7.1.1 (v5 peers on eslint <=9)

typescript-eslint 8.66 and eslint-plugin-react-refresh 0.4.20 already
declare eslint 10 support, so they are unchanged.

Root package-lock.json regenerated as well, since it embeds the app
workspace tree via "queryweaver-app": "file:app".

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@overcut-ai

overcut-ai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Completed Working on "Code Review"

✅ Review publication complete: all chunk comments were posted and final review was submitted (COMMENT). Total comments: 2 across 2 files.

✅ Workflow completed successfully.


👉 View complete log

@railway-app

railway-app Bot commented Aug 12, 2026

Copy link
Copy Markdown

🚅 Deployed to the QueryWeaver-pr-697 environment in queryweaver

Service Status Web Updated (UTC)
QueryWeaver ✅ Success (View Logs) Web Aug 12, 2026 at 8:50 pm

@railway-app
railway-app Bot temporarily deployed to queryweaver / QueryWeaver-pr-697 August 12, 2026 20:49 Destroyed
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 398ccf14-e82f-4d16-a13f-e1df8ac3efae

📥 Commits

Reviewing files that changed from the base of the PR and between b636d65 and 145dbc5.

⛔ Files ignored due to path filters (2)
  • app/package-lock.json is excluded by !**/package-lock.json
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (1)
  • app/package.json

📝 Walkthrough

Walkthrough

The pull request upgrades ESLint tooling in app/package.json. It updates @eslint/js and eslint to version 10.x and eslint-plugin-react-hooks to version 7.x.

Changes

Development tooling

Layer / File(s) Summary
Linting dependency upgrades
app/package.json
Upgrades @eslint/js and eslint to 10.x, and eslint-plugin-react-hooks to 7.x.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Suggested reviewers: barakb, copilot, galshubeli

🚥 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 clearly and concisely describes the main change: upgrading ESLint to v10 across the frontend toolchain.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/eslint-10-upgrade

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.

@github-actions

Copy link
Copy Markdown

Dependency Review

The following issues were found:

  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ✅ 0 package(s) with unknown licenses.
  • ⚠️ 4 packages with OpenSSF Scorecard issues.

View full job summary

@overcut-ai overcut-ai 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.

Thanks for the dependency upgrade work — I reviewed the posted findings and there are 2 MAJOR comments across 2 files (app/package.json, package-lock.json).

Key themes

  1. Environment compatibility risk: The ESLint 10 upgrade introduces a stricter Node engine floor that may break installs/lint in older CI/local environments.
  2. Lockfile maintainability/determinism: Root lockfile regeneration appears to include broad app transitive churn beyond the intended scoped dependency updates.

Recommended next steps

  • Align CI/docs/runtime tooling baseline to the Node version required by the upgraded ESLint stack (or adjust versions to match current baseline).
  • Re-generate and narrow lockfile changes to only intended workspace-scoped deltas to reduce future drift/churn.
  • Re-run install/lint checks in the target CI Node environment after lockfile cleanup to confirm stability.

Comment thread app/package.json
"autoprefixer": "^10.4.27",
"eslint": "^9.32.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint": "^10.8.1",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[major]: This bump moves lint tooling to eslint@10, whose engine requirement is ^20.19.0 || ^22.13.0 || >=24; environments on Node 18 or early Node 20 will fail install/lint after this change.

Comment thread package-lock.json
"node": ">=6.9.0"
}
},
"app/node_modules/@eslint/config-array": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[major]: The root lockfile now includes a large set of app-scoped entries (app/node_modules/*) plus many unrelated transitive changes (e.g. browserslist toolchain), which makes workspace installs less deterministic across npm versions and creates high churn unrelated to the ESLint bump. This can cause CI/local lockfile drift on future npm install runs.

@gkorland
gkorland merged commit 067515c into staging Aug 12, 2026
14 checks passed
@gkorland
gkorland deleted the feat/eslint-10-upgrade branch August 12, 2026 20:56
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