Address PR review thread feedback for Node 25 upgrade docs and dev environment metadata#516
Address PR review thread feedback for Node 25 upgrade docs and dev environment metadata#516
Conversation
…dd EOL/workflow documentation Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
…ES2024 across all tsconfig files Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Updates the repository’s runtime/tooling baseline to Node.js 25 and modernizes TypeScript compilation targets, while adding documentation around CI/CD workflows and Node.js lifecycle planning.
Changes:
- Bump TypeScript
target/libacross app/node/cypress tsconfigs to ES2024. - Set repo baseline to Node.js 25 (GitHub Actions workflows, devcontainer, and
package.jsonengines). - Add CI/CD and Node.js lifecycle documentation under
docs/.
Reviewed changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
tsconfig.json |
Raise compiler target/lib to ES2024 for the main TS config. |
tsconfig.app.json |
Raise app TS target/lib to ES2024. |
tsconfig.node.json |
Raise node-tooling TS target/lib to ES2024. |
cypress/tsconfig.json |
Raise Cypress TS target/lib to ES2024. |
package.json |
Declare Node engine requirement >=25. |
.github/workflows/test-and-report.yml |
Update CI jobs to run on Node.js 25. |
.github/workflows/release.yml |
Update release workflow jobs to run on Node.js 25. |
.github/workflows/codeql.yml |
Update CodeQL workflow to run on Node.js 25. |
.github/workflows/copilot-setup.yml |
Update Copilot setup workflow to run/report Node.js 25. |
.github/workflows/copilot-setup-steps.yml |
Update Copilot setup steps workflow to run on Node.js 25. |
.devcontainer/devcontainer.json |
Update devcontainer image/feature to Node.js 25. |
docs/WORKFLOWS.md |
Add documentation describing CI/CD workflows and Node version usage. |
docs/FUTURE_WORKFLOWS.md |
Add forward-looking plan for Node.js 26 upgrade. |
docs/End-of-Life-Strategy.md |
Add Node.js lifecycle/EOL strategy documentation. |
docs/End-of-Life-Strategy.md
Outdated
| - **Every October** — A new major version is published as "Current" | ||
| - **Every April** — Odd-numbered Current versions reach EOL; Even-numbered versions graduate to "Active LTS" |
docs/WORKFLOWS.md
Outdated
| ## Security Practices Applied to All Workflows | ||
|
|
||
| 1. **Hardened runners** — `step-security/harden-runner` with egress auditing on every job | ||
| 2. **Pinned action versions** — all actions pinned to full SHA digest |
docs/FUTURE_WORKFLOWS.md
Outdated
|
|
||
| This document describes the planned upgrade of all CI/CD workflows, devcontainer configuration, and documentation from **Node.js 25** to **Node.js 26**. | ||
|
|
||
| Node.js 26 is expected in **April 2026** — approximately **2 weeks** from the current date (March 18, 2026). This upgrade plan is designed to be executed immediately after the official Node.js 26 release. |
| "engines": { | ||
| "node": ">=25" | ||
| }, |
.devcontainer/devcontainer.json
Outdated
| @@ -1,11 +1,11 @@ | |||
| { | |||
| "name": "CIA Compliance Manager Dev Container", | |||
|
@copilot apply changes based on the comments in this thread |
|
@copilot apply changes based on the comments in this thread |
Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Updates the project’s runtime/tooling baseline to Node.js 25 and modernizes TypeScript compilation settings, while adding CI/CD workflow and Node.js lifecycle documentation for the game template.
Changes:
- Bump GitHub Actions workflows and devcontainer to Node.js 25; add
engines.node >=25. - Update TypeScript
target/libacross configs to ES2024. - Add/expand docs for workflows inventory and a Node.js EOL + upgrade plan.
Reviewed changes
Copilot reviewed 13 out of 15 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
tsconfig.node.json |
Move Node-side TS config to ES2024 target/lib. |
tsconfig.json |
Move primary TS config to ES2024 target/lib. |
tsconfig.app.json |
Move app TS config to ES2024 target/lib. |
cypress/tsconfig.json |
Move Cypress TS config to ES2024 target/lib. |
package.json |
Require Node >=25; add @types/node devDependency. |
package-lock.json |
Lockfile updates for engines + @types/node version bump. |
docs/WORKFLOWS.md |
New CI/CD workflows documentation (Node 25 baseline). |
docs/FUTURE_WORKFLOWS.md |
New Node 26 upgrade plan document. |
docs/End-of-Life-Strategy.md |
New Node.js lifecycle/EOL strategy document. |
.github/workflows/test-and-report.yml |
Update CI workflow Node version to 25. |
.github/workflows/release.yml |
Update release workflow Node version to 25. |
.github/workflows/copilot-setup.yml |
Update Copilot setup workflow Node version/reference to 25. |
.github/workflows/copilot-setup-steps.yml |
Update Copilot setup-steps workflow Node version to 25. |
.github/workflows/codeql.yml |
Update CodeQL workflow Node version to 25. |
.devcontainer/devcontainer.json |
Update devcontainer image/feature Node version to 25 and rename. |
Comments suppressed due to low confidence (1)
.devcontainer/devcontainer.json:12
- The devcontainer comment references
.github/mcp-config.json, but the repository appears to use.github/copilot-mcp.jsonfor MCP configuration. Updating this reference would prevent confusion when setting up MCP servers.
"version": "25"
}
},
// MCP Servers: See .github/mcp-config.json for Model Context Protocol configuration
// These enhance GitHub Copilot with filesystem, git, github, and search capabilities
package.json
Outdated
| "@testing-library/react": "^16.3.2", | ||
| "@testing-library/user-event": "^14.6.1", | ||
| "@types/howler": "^2.2.12", | ||
| "@types/node": "^24.12.0", |
docs/WORKFLOWS.md
Outdated
| | Setup Node.js 25 | `actions/setup-node@v6.3.0` with `cache: npm` | | ||
| | Cache apt packages | `actions/cache@v5.0.3` | | ||
| | Install system deps | xvfb, libgtk, Chrome dependencies | | ||
| | Cache npm | `actions/cache@v5.0.3` (`~/.npm`) | |
|
@copilot apply changes based on the comments in this thread |
Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Applied both changes from the review thread in
All validations pass (lint, 169 tests, build). |
There was a problem hiding this comment.
Pull request overview
This PR updates the repo’s runtime/tooling baseline to Node.js 25, aligns TypeScript compilation targets to ES2024, and adds CI/CD lifecycle documentation (current workflows + Node EOL/upgrade planning) to support ongoing maintenance.
Changes:
- Bump GitHub Actions workflows and devcontainer configuration from Node 24 to Node 25; add
engines.node >=25and align@types/nodeto 25.x. - Update TS
target/libacross app/node/cypress tsconfigs toES2024. - Add new docs covering workflow inventory/explanations and a Node.js EOL + Node 26 upgrade plan.
Reviewed changes
Copilot reviewed 13 out of 15 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
tsconfig.node.json |
Raises Node-side TS target/lib to ES2024. |
tsconfig.json |
Raises base TS target/lib to ES2024. |
tsconfig.app.json |
Raises app TS target/lib to ES2024. |
cypress/tsconfig.json |
Raises Cypress TS target/lib to ES2024. |
package.json |
Sets Node engine baseline to >=25 and adds @types/node@^25.5.0. |
package-lock.json |
Locks @types/node@25.5.0 (and related transitive updates) and records engines. |
docs/WORKFLOWS.md |
New CI/CD workflow documentation and inventory. |
docs/FUTURE_WORKFLOWS.md |
New Node 26 upgrade plan / checklist. |
docs/End-of-Life-Strategy.md |
New Node.js lifecycle/EOL strategy document for the repo. |
.github/workflows/test-and-report.yml |
Updates workflow Node version to 25. |
.github/workflows/release.yml |
Updates workflow Node version to 25. |
.github/workflows/copilot-setup.yml |
Updates workflow Node version and reported version text to 25. |
.github/workflows/copilot-setup-steps.yml |
Updates workflow Node version to 25. |
.github/workflows/codeql.yml |
Updates workflow Node version to 25. |
.devcontainer/devcontainer.json |
Updates devcontainer image + Node feature to 25; renames container. |
.devcontainer/devcontainer.json
Outdated
| "version": "25" | ||
| } | ||
| }, | ||
| // MCP Servers: See .github/mcp-config.json for Model Context Protocol configuration |
| | Setup Node.js 25 | `actions/setup-node@v6.3.0` with `cache: npm` | | ||
| | Cache apt packages | `actions/cache@v5.0.3` | | ||
| | Install system deps | xvfb, libgtk, Chrome dependencies | | ||
| | Install dependencies | `npm install` | | ||
| | Cache Cypress binary | `actions/cache@v5.0.3` (`~/.cache/Cypress`) | |
docs/WORKFLOWS.md
Outdated
| | Cache apt packages | `actions/cache@v5.0.3` | | ||
| | Install system deps | xvfb, libgtk, Chrome dependencies | | ||
| | Install dependencies | `npm install` | | ||
| | Cache Cypress binary | `actions/cache@v5.0.3` (`~/.cache/Cypress`) | | ||
| | Verify Cypress | `npx cypress verify` | | ||
|
|
|
@copilot apply changes based on the comments in this thread |
…d apt cache tradeoff note Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Applied all three changes from the review thread in
|
There was a problem hiding this comment.
Pull request overview
This pull request updates the repository’s Node/TypeScript baselines and CI configuration to align on Node.js 25, modernizes TypeScript compilation targets to ES2024, and adds/updates operational documentation for workflows and Node.js lifecycle planning.
Changes:
- Bump TypeScript
target/libto ES2024 across app/node/cypress tsconfigs. - Standardize CI/devcontainer on Node.js 25, and add
package.jsonengines.node >=25plus explicit@types/node. - Add documentation covering CI/CD workflows and Node.js EOL / future upgrade plan.
Reviewed changes
Copilot reviewed 13 out of 15 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
tsconfig.node.json |
Align Node-side TS compilation target/lib to ES2024. |
tsconfig.json |
Align base TS target/lib to ES2024. |
tsconfig.app.json |
Align app TS target/lib to ES2024. |
cypress/tsconfig.json |
Align Cypress TS target/lib to ES2024. |
package.json |
Add Node engine constraint (>=25) and explicit @types/node. |
package-lock.json |
Lockfile updates reflecting @types/node and related dependency changes + engines. |
docs/WORKFLOWS.md |
New consolidated documentation for GitHub Actions workflows and Node version usage. |
docs/FUTURE_WORKFLOWS.md |
New Node.js 26 upgrade planning checklist/automation notes. |
docs/End-of-Life-Strategy.md |
New Node.js lifecycle/EOL strategy documentation. |
.github/workflows/test-and-report.yml |
Move CI to Node 25 and remove redundant npm cache step. |
.github/workflows/release.yml |
Move release workflow to Node 25. |
.github/workflows/copilot-setup.yml |
Move Copilot setup workflow to Node 25 and update setup-report Node text. |
.github/workflows/copilot-setup-steps.yml |
Move Copilot setup steps workflow to Node 25. |
.github/workflows/codeql.yml |
Move CodeQL workflow to Node 25. |
.devcontainer/devcontainer.json |
Update devcontainer image/feature to Node 25 and fix MCP config comment reference. |
Comments suppressed due to low confidence (2)
.github/workflows/codeql.yml:58
actions/setup-nodeis already configured withcache: "npm", but this workflow also caches~/.npmviaactions/cache. This is redundant and can cause confusion about which cache is authoritative; remove the extraCache dependenciesstep (or dropcache: "npm"if you prefer managing it yourself).
node-version: "25"
cache: "npm"
- name: Cache dependencies
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
.github/workflows/copilot-setup.yml:41
- This job uses
actions/setup-nodewithcache: 'npm'and also adds a separateactions/cachestep for~/.npm. The second cache is redundant; consider removing theCache dependenciesstep to simplify the workflow and avoid double-caching.
node-version: '25'
cache: 'npm'
- name: Cache dependencies
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
This PR continues the Node 25/ES2024 upgrade work by resolving outstanding review-thread issues that were blocking merge readiness. It removes documentation inconsistencies, eliminates a time-relative statement that would quickly rot, hardens TypeScript typing stability for Cypress config, and cleans up CI workflow redundancies.
Documentation consistency: Node lifecycle cadence
docs/End-of-Life-Strategy.mdrelease-cadence bullets to match the timeline table semantics:Documentation durability: remove date-relative wording
docs/FUTURE_WORKFLOWS.mdto remove "~2 weeks from current date" phrasing and keep only stable schedule language.Workflow security wording alignment
docs/WORKFLOWS.mdto clarify that workflow files are SHA-pinned, while docs may use human-readable version labels.Workflow documentation: remove redundant npm cache entry
actions/cachefor~/.npm) row fromdocs/WORKFLOWS.mdsinceactions/setup-nodewithcache: npmalready handles npm caching, making the additional step redundant.Workflow cleanup: remove redundant
~/.npmcache stepsCache dependencies(actions/cachefor~/.npm) steps from.github/workflows/test-and-report.ymlacross theprepare,build-validation, andunit-testsjobs, sinceactions/setup-nodewithcache: npmalready handles npm caching.Workflow documentation: apt cache tradeoff note
docs/WORKFLOWS.mddocumenting that the apt package cache (/var/cache/apt/archives) may producetar: exit code 2warnings on GitHub-hosted runners, so maintainers are aware of the cosmetic CI log noise.Devcontainer identity cleanup
.devcontainer/devcontainer.jsonto match this repository's actual purpose (React/Three.js game template), removing cross-project naming leakage.Devcontainer MCP config path fix
.devcontainer/devcontainer.jsonfrom.github/mcp-config.jsonto.github/copilot-mcp.json(the file that actually exists in the repository).TypeScript dependency hardening
@types/nodedevDependency inpackage.json(and lockfile update) socypress/tsconfig.json's"types": ["cypress", "node"]does not rely on transitive dependency presence.@types/nodefrom^24.12.0to^25.5.0to align type definitions with theengines.node: ">=25"requirement, ensuring Node 25 APIs are properly typed for Cypress, Vite, and Vitest configs.{ "devDependencies": { "@types/node": "^25.5.0" } }✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.