Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
"eslint-plugin-react-hooks": "^7.1.1",
"globals": "^17.12.0",
"jsdom": "^30.0.1",
"typescript": "^6.0.3",
"typescript": "^7.0.2",

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as outdated.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🚨 P0 β€” Blocking peer-dep conflict; npm install still fails after 2026-10-13 rebase

Renovate refreshed its artifact-update log on this PR today (new timestamp 2026-10-13T19:22:46Z, head still db10281). No change on either side β€” main still pins typescript-eslint@^8.70.0 (unchanged from last review on 2026-10-07) and upstream still has not published a release whose TS peer range includes 7.x. Renovate's refreshed ERESOLVE comment reproduces the same failure, now re-dated:

npm error code ERESOLVE
npm error While resolving: typescript-eslint@8.70.0
npm error Found: typescript@7.0.2
npm error peer typescript@">=4.8.4 <6.1.0" from typescript-eslint@8.70.0
npm error   node_modules/typescript-eslint
npm error     dev typescript-eslint@"^8.70.0" from the root project

Every @typescript-eslint/*@8.70.0 subpackage (eslint-plugin, parser, type-utils, typescript-estree, project-service, tsconfig-utils, utils) still declares peer typescript: ">=4.8.4 <6.1.0" per the same Renovate log. Bumping typescript to ^7.0.2 violates that range, so npm cannot regenerate package-lock.json. Upstream shipped typescript-eslint#12529 "add warning when TS 7 is detected" back in 8.65.0 (~3 months ago) and still has not widened the peer range through 8.70.0 β€” the linter package explicitly refuses TS 7.

Because no updated package-lock.json accompanies this package.json change, merging as-is will break npm ci on main for every CI job that installs deps (lint, typecheck, test, build, e2e). Build-blocker, not just a typecheck concern.

Recommended options (any one unblocks):

  1. Preferred β€” hold this PR until typescript-eslint publishes a release whose peer range includes TS 7, then bump both together. A Renovate packageRules grouping in the shared nsheaps/renovate-config (e.g. matchPackageNames: ["typescript", "typescript-eslint", "@typescript-eslint/**"], groupName: "typescript") would prevent this class of broken PR going forward β€” and avoid the churn of re-reviewing the same byte-identical diff on every rebase (this is the 9th such review).
  2. Close this PR and add a temporary allowedVersions: "<7" entry for typescript in Renovate config until the ecosystem catches up.
  3. Only if you accept the ecosystem-compat risk: extend this PR to also bump typescript-eslint to a version whose peer range covers TS 7, then re-run Renovate so the lockfile actually regenerates. Do not patch around this with --legacy-peer-deps β€” that hides the fact that the linter's TS API assumptions may not hold under a TS major bump.

Per CLAUDE.md (TypeScript strict β€” no any, no @ts-ignore, line 34), silently softening strictness to squeeze past a TS 7 breaking change is also not an option.

Findings based on the diff at package.json:54 and package.json:55 on PR head db10281 (typescript-eslint: ^8.70.0, matching main), Renovate's refreshed ERESOLVE report (comment 5261781302, updated 2026-10-13T19:22:46Z), the typescript-eslint@8.65.0 CHANGELOG (still the most recent TS-7-relevant upstream note; nothing new through 8.70.0), and renovate.json (extends local>nsheaps/renovate-config, no packageRules). Previous inline comments on this line are byte-nearly-identical and have been minimized as outdated.

"typescript-eslint": "^8.70.0",
"vite": "^8.3.0",
"vitest": "^5.0.0"
Expand Down
Loading