chore(toolchain): node 24.19.0, @kno2 release-age exclude, drop dead Travis config - #60
Merged
Merged
Conversation
…guard min-release-age-exclude needs npm 11.17.0, which first ships with node 24.19.0. Without it npm silently resolves a stale @Kno2 version when a fresh one is inside the release-age window, at exit 0. Scope the exemption to @kno2/* so third-party packages keep the guard. Lockfile verified unchanged under npm 11.17.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
Update or remove the Travis Node 14 runtime so the toolchain bump applies consistently.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Updates Node.js to 24.19.0 and exempts internal @kno2/* packages from npm’s release-age guard.
Changes:
- Bumps
.nvmrcfrom Node 24.18.0 to 24.19.0. - Adds the
@kno2/*npm release-age exclusion.
File summaries
| File | Summary |
|---|---|
.nvmrc |
Pins Node.js 24.19.0; .travis.yml still explicitly uses Node 14. |
.npmrc |
Exempts @kno2/* packages from the release-age guard. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Addresses Copilot review comment 4031277375 on #60. .travis.yml pins node_js: 14 and reads as though it were a live CI path, but Travis posts no checks on this repo (PR checks are CodeQL and the Analyze jobs), nothing references the file, and it has not been touched since 2021-04-19. CI runs from .github/workflows, which already resolves node from .nvmrc. Removing it so the repo has one source of truth for the CI runtime. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
kyleshultz-kno2
approved these changes
Sep 17, 2026
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.
Toolchain changes, plus removal of the dead Travis config they exposed. (Folds in what was previously split out as #61.)
.nvmrc: 24.18.0 -> 24.19.0.npmrc: addsmin-release-age-exclude[]=@kno2/*min-release-age=1is a supply-chain guard aimed at third-party packages, but it applies to our own scoped packages too. When a fresh@kno2version is inside the window, npm does not error. It silently resolves an older version at exit 0, so a dependency bump looks successful while pinning a stale build.Measured against
@kno2/sdk@1.184.3(published inside the window) on node 24.19.0 / npm 11.17.0:.npmrcmin-release-age=1min-release-age=1+min-release-age-exclude[]=@kno2/*This replaces the blunter workaround of passing
--min-release-age=0, which disables the guard for every package in that install. The exclude exempts only matching names, and per npm's docs an exempted package's own dependencies still follow the policy.Why the runtime bump is required
min-release-age-excludeneeds npm >= 11.17.0, which first ships with node 24.19.0. On 24.18.0 (npm 11.16.0) the config does not exist and is silently ignored. Confirmed across every locally installed runtime:min-release-age-excludeNode 24 is the active LTS line, so this stays on LTS.
Removes
.travis.ymlRaised by Copilot on this PR (comment 4031277375): the file pins
node_js: 14and so would not follow the toolchain bump above.The finding was half right. The file does pin node 14, but it is not a live CI path:
Analyze (actions),Analyze (javascript)andCodeQL.grep -rl travis, excludingnode_modules, returns nothing).So nothing was running on node 14 and there is no behaviour change. The problem is that the file reads as though it were live, which is exactly what prompted the review comment. Real CI is
.github/workflows/npm-publish.yml, which resolves node from.nvmrcand so moves with this PR.Removing it leaves one source of truth for the CI runtime.
Verification
npm config ls -lin this repo now reportsmin-release-age = 1andmin-release-age-exclude = ["@kno2/*"].npm installunder npm 11.17.0 is a no-op and rewrites nothing, so no lockfile churn rides along with the runtime bump. That was the main risk worth checking, since a different npm can otherwise rewrite a lockfile.npm run build(webpack) succeeds.🤖 Generated with Claude Code