Summary
Move development tooling, frontend builds, release workflows, and the bundled Discord bot from Node 24 to Node 26.12.1 or later in the 26.x line. CI reads .node-version; the reusable publish workflow explicitly selects Node. Both Docker installation paths use NodeSource 26.
Update frontend Node types/configuration, vue-tsc to 3.3.5, and @vitest/eslint-plugin to 1.6.20. The Vue tooling update includes its language-core and picomatch dependencies. CI enforces engine compatibility and checks the Node configuration files. Replace the obsolete Vite esbuild.drop setting with Vite 8's minifier settings, with real production/analysis build-output controls.
Consolidates #681, #683, and #684. The start-server-and-test upgrade in #670 remains separate.
This raises the supported Node requirement to 26.12.1 within the 26.x line. Contributors and standalone bot deployments must update Node; Docker deployments receive the runtime in the image.
Testing
Current head: 98da875e8299f164cbf070d7ff071941e2525ff2. Hosted CI is rerunning for the added tooling updates.
- Current tooling updates: all 681 frontend tests passed on both Windows and Linux under Node 26.12.1. Lint, production builds, app/tooling type checks and 2 production/analysis build-output controls passed on both platforms. Linux strict clean installation and dependency-tree validation passed; npm audit reports zero vulnerabilities.
- Node 26 migration baseline (
d2440bbb): all hosted checks passed; 681 frontend tests passed on each platform; Linux backend 3,878 passed/148 skipped; Windows backend 3,797 passed/213 skipped after rerunning one timeout in an unchanged recovery test. All 8 focused recovery cases passed locally on Windows. - Final-source Node 26 production Docker build and non-root live validation passed: readiness, frontend/assets, sanitization, actual bundled bot startup and real settings SignalR connection. Browser Library/System views loaded with healthy API, active ...
Automated Canary build