Skip to content

Address PR review thread feedback for Node 25 upgrade docs and dev environment metadata#516

Merged
pethers merged 8 commits intomainfrom
copilot/update-node-to-25
Mar 18, 2026
Merged

Address PR review thread feedback for Node 25 upgrade docs and dev environment metadata#516
pethers merged 8 commits intomainfrom
copilot/update-node-to-25

Conversation

Copy link
Contributor

Copilot AI commented Mar 18, 2026

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

    • Updated docs/End-of-Life-Strategy.md release-cadence bullets to match the timeline table semantics:
      • April: even-numbered major release + odd-numbered EOL
      • October: even-numbered line enters Active LTS + new odd major release
  • Documentation durability: remove date-relative wording

    • Updated docs/FUTURE_WORKFLOWS.md to remove "~2 weeks from current date" phrasing and keep only stable schedule language.
  • Workflow security wording alignment

    • Updated docs/WORKFLOWS.md to clarify that workflow files are SHA-pinned, while docs may use human-readable version labels.
  • Workflow documentation: remove redundant npm cache entry

    • Removed the separate "Cache npm" (actions/cache for ~/.npm) row from docs/WORKFLOWS.md since actions/setup-node with cache: npm already handles npm caching, making the additional step redundant.
  • Workflow cleanup: remove redundant ~/.npm cache steps

    • Removed all 3 redundant Cache dependencies (actions/cache for ~/.npm) steps from .github/workflows/test-and-report.yml across the prepare, build-validation, and unit-tests jobs, since actions/setup-node with cache: npm already handles npm caching.
  • Workflow documentation: apt cache tradeoff note

    • Added a note in docs/WORKFLOWS.md documenting that the apt package cache (/var/cache/apt/archives) may produce tar: exit code 2 warnings on GitHub-hosted runners, so maintainers are aware of the cosmetic CI log noise.
  • Devcontainer identity cleanup

    • Renamed devcontainer title in .devcontainer/devcontainer.json to match this repository's actual purpose (React/Three.js game template), removing cross-project naming leakage.
  • Devcontainer MCP config path fix

    • Corrected the MCP configuration file reference in .devcontainer/devcontainer.json from .github/mcp-config.json to .github/copilot-mcp.json (the file that actually exists in the repository).
  • TypeScript dependency hardening

    • Added explicit @types/node devDependency in package.json (and lockfile update) so cypress/tsconfig.json's "types": ["cypress", "node"] does not rely on transitive dependency presence.
    • Bumped @types/node from ^24.12.0 to ^25.5.0 to align type definitions with the engines.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.

…dd EOL/workflow documentation

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Copilot AI changed the title [WIP] Update all configurations and documentation for Node 25 chore: migrate to Node.js 25 with EOL strategy and Node 26 upgrade plan Mar 18, 2026
Copilot AI requested a review from pethers March 18, 2026 09:30
…ES2024 across all tsconfig files

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Copilot AI changed the title chore: migrate to Node.js 25 with EOL strategy and Node 26 upgrade plan chore: upgrade Node.js to 25 and TypeScript target to ES2024 Mar 18, 2026
@pethers pethers requested a review from Copilot March 18, 2026 10:01
@github-actions github-actions bot added documentation Documentation updates dependencies Dependency updates infrastructure CI/CD and build infrastructure config Configuration changes testing Testing improvements security Security improvements e2e End-to-end testing devcontainer Development container updates labels Mar 18, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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/lib across app/node/cypress tsconfigs to ES2024.
  • Set repo baseline to Node.js 25 (GitHub Actions workflows, devcontainer, and package.json engines).
  • 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.

Comment on lines +26 to +27
- **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"
## 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

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.
Comment on lines +18 to +20
"engines": {
"node": ">=25"
},
@@ -1,11 +1,11 @@
{
"name": "CIA Compliance Manager Dev Container",
@pethers
Copy link
Member

pethers commented Mar 18, 2026

@copilot apply changes based on the comments in this thread

@pethers
Copy link
Member

pethers commented Mar 18, 2026

@copilot apply changes based on the comments in this thread

Copilot stopped work on behalf of pethers due to an error March 18, 2026 16:44
Copilot AI and others added 2 commits March 18, 2026 16:53
Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Copilot AI changed the title chore: upgrade Node.js to 25 and TypeScript target to ES2024 Address PR review thread feedback for Node 25 upgrade docs and dev environment metadata Mar 18, 2026
@pethers pethers requested a review from Copilot March 18, 2026 17:07
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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/lib across 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.json for 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",
| 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`) |
@pethers
Copy link
Member

pethers commented Mar 18, 2026

@copilot apply changes based on the comments in this thread

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 18, 2026

@copilot apply changes based on the comments in this thread

Applied both changes from the review thread in 51e039b:

  1. @types/node bumped to ^25.5.0 — now aligned with engines.node: ">=25" so Node 25 APIs are properly typed for Cypress/Vite/Vitest configs.
  2. Removed redundant "Cache npm" row from docs/WORKFLOWS.mdactions/setup-node with cache: npm already handles npm caching, so the separate actions/cache for ~/.npm was redundant in the documentation.

All validations pass (lint, 169 tests, build).

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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 >=25 and align @types/node to 25.x.
  • Update TS target/lib across app/node/cypress tsconfigs to ES2024.
  • 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.

"version": "25"
}
},
// MCP Servers: See .github/mcp-config.json for Model Context Protocol configuration
Comment on lines +56 to +60
| 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`) |
Comment on lines +57 to +62
| 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` |

@pethers
Copy link
Member

pethers commented Mar 18, 2026

@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>
Copy link
Contributor Author

Copilot AI commented Mar 18, 2026

@copilot apply changes based on the comments in this thread

Applied all three changes from the review thread in 79945a1:

  1. Fixed devcontainer MCP config path — updated .github/mcp-config.json.github/copilot-mcp.json (the file that actually exists).
  2. Removed 3 redundant Cache dependencies (~/.npm) steps from test-and-report.ymlactions/setup-node with cache: npm already handles npm caching.
  3. Added apt cache tradeoff note in docs/WORKFLOWS.md documenting that /var/cache/apt/archives cache may produce tar: exit code 2 warnings on hosted runners.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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/lib to ES2024 across app/node/cypress tsconfigs.
  • Standardize CI/devcontainer on Node.js 25, and add package.json engines.node >=25 plus 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-node is already configured with cache: "npm", but this workflow also caches ~/.npm via actions/cache. This is redundant and can cause confusion about which cache is authoritative; remove the extra Cache dependencies step (or drop cache: "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-node with cache: 'npm' and also adds a separate actions/cache step for ~/.npm. The second cache is redundant; consider removing the Cache dependencies step to simplify the workflow and avoid double-caching.
          node-version: '25'
          cache: 'npm'

      - name: Cache dependencies
        uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3

@pethers pethers marked this pull request as ready for review March 18, 2026 18:00
@pethers pethers merged commit ec37a18 into main Mar 18, 2026
23 checks passed
@pethers pethers deleted the copilot/update-node-to-25 branch March 18, 2026 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config Configuration changes dependencies Dependency updates devcontainer Development container updates documentation Documentation updates e2e End-to-end testing infrastructure CI/CD and build infrastructure security Security improvements testing Testing improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants