chore(deps): record why typescript 7 and @types/node 26 are held back - #15
Merged
Merged
Conversation
Both were opened by Dependabot, checked, and closed rather than merged. Without an `ignore` rule they come back weekly and the reasoning gets rediscovered every time, so it goes in the config next to the decision. **typescript 7.x** — `typescript-eslint` declares `typescript >=4.8.4 <6.1.0`, and type-aware linting is what `lint` runs, so 7.x fails the lane outright rather than degrading. The closed PR's own `lint` job is the evidence. `vscode-ext-kit` has carried this same rule for the same reason. **@types/node majors** — these types decide what Node API the code may compile against, so they must not exceed the runtime. VS Code 1.132's extension host runs Node 24.18.0, measured by running the cached build under `ELECTRON_RUN_AS_NODE` rather than looked up, and `engines.vscode: ^1.125.0` puts the floor lower still. That second one is worth stating carefully: the bump **passed every CI job**. Nothing in the tree reaches for a newer API yet, which is exactly why CI cannot be the thing that catches it — it would start failing at runtime, in a real extension host, the first time someone used one. Same rule as `@types/vscode`, where the types floor is also the ceiling. Both comments say when to drop the rule: when the peer range widens, and when the extension host itself moves. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Dependabot opened both of these, I checked them, and both were closed rather than
merged. Without an
ignorerule they return weekly and the reasoning getsrediscovered every time — so it goes in the config, next to the decision.
typescriptmajorstypescript-eslintdeclarestypescript >=4.8.4 <6.1.0. Type-aware linting iswhat
lintruns, so 7.x takes the lane down rather than degrading gracefully —the closed PR's own
lintjob failed, which is the evidence rather than aprediction.
vscode-ext-kithas carried this same rule for the same reason.@types/nodemajorsThese types decide what Node API the code may compile against, so they must not
exceed the runtime. VS Code 1.132's extension host runs Node 24.18.0
(Electron 42.7.1) — measured by running the cached build under
ELECTRON_RUN_AS_NODE, not looked up — andengines.vscode: ^1.125.0puts thefloor lower still.
Worth stating plainly: the bump passed every CI job. Nothing in the tree
reaches for a newer API yet, which is precisely why CI cannot be the thing that
catches this. It would surface at runtime, in a real extension host, the first
time someone used a Node 26 API. Same rule as
@types/vscode, where the typesfloor is also the ceiling.
Both comments say when to remove the rule
When
typescript-eslintwidens its peer range, and when the extension hostitself moves to a newer Node. An
ignorewith no exit condition is how a projectgets stuck.
Config-only change — no code, no version bump.
🤖 Generated with Claude Code