hermes-agent/.github/workflows
ethernet 713a983e4a feat(runtime)!: require Node 26 across all installers, heal, and upgrade paths
Hermes now pins its toolchain to Node 26 everywhere. Every path that
installs, accepts, heals, or upgrades a Node runtime moves from the old
22-default / `^20.19 || >=22.12` floor to a single rule: Node >=26.

Installers:
- scripts/install.sh — NODE_VERSION=26; node_satisfies_build() collapses
  the two-branch Vite floor to `major >= 26`; user-facing messages updated.
- scripts/install.ps1 — $NodeVersion=26; Test-NodeVersionOk likewise;
  winget fallback switches OpenJS.NodeJS.LTS -> OpenJS.NodeJS (26 is
  Current, not LTS — the LTS manifest would reinstall a too-old Node).
- Dockerfile — node_source stage node:22-bookworm-slim -> node:26 (digest
  pinned, amd64 sha256:9e6f...bf73).
- nix/ was already on nodejs_26 (lib.nix, npm-12-0-2.nix); the checks.nix
  wrapper check ratchets from `>= 20` to `>= 26`.

Heal/upgrade paths:
- scripts/lib/node-bootstrap.sh — HERMES_NODE_TARGET_MAJOR default 22->26
  and HERMES_NODE_MIN_VERSION default 20->26, so heal_managed_node,
  _nb_install_bundled_node, and the fnm/proto/nvm/brew rungs all target 26
  and stop accepting an on-PATH Node below it. Both remain env-overridable.
- hermes_constants.py — _HERMES_NODE_TARGET_MAJOR fallback 22->26, which
  drives the Windows heal path's latest-v26.x download.

Version gates:
- package.json engines.node >=20 -> >=26; apps/desktop engines
  `^20.19.0 || >=22.12.0` -> `>=26.0.0`.
- CI setup-node: all five workflows 22 -> 26.
- Docs describing Hermes's own toolchain updated (windows-native, docker,
  acp, nix-setup, contributing). Skill docs describing third-party tools'
  own requirements are untouched.

Termux still installs via `pkg install nodejs` best-effort (nodejs.org
ships no Android tarballs); that path was never version-gated.

Verified: bash -n on both shell scripts, PowerShell AST parse of
install.ps1, latest-v26.x index resolves (node-v26.5.1), and the install
test suite — 18 tests across the 5 install/runtime test files — passes.
2026-08-01 21:17:51 -04:00
..
ci.yml ci: skip Desktop E2E + Docker build on tests-only PRs (python_prod lane) 2026-08-01 14:59:14 -07:00
contributor-check.yml ci: live-updating PR review comment with structured job statuses 2026-07-20 16:48:25 -04:00
deploy-site.yml feat(runtime)!: require Node 26 across all installers, heal, and upgrade paths 2026-08-01 21:17:51 -04:00
docker-lint.yml change(ci): docker-publish.yml -> docker.yml 2026-06-26 19:15:18 -07:00
docker.yml ci(docker): retry buildx setup on transient Docker Hub failures 2026-07-30 21:12:59 +05:30
docs-site-checks.yml feat(runtime)!: require Node 26 across all installers, heal, and upgrade paths 2026-08-01 21:17:51 -04:00
e2e-desktop.yml feat(runtime)!: require Node 26 across all installers, heal, and upgrade paths 2026-08-01 21:17:51 -04:00
history-check.yml ci: live-updating PR review comment with structured job statuses 2026-07-20 16:48:25 -04:00
infographic-check.yml chore: untrack committed PR infographics and enforce the rule in CI 2026-07-26 11:54:03 -07:00
js-autofix.yml feat(runtime)!: require Node 26 across all installers, heal, and upgrade paths 2026-08-01 21:17:51 -04:00
js-tests.yml feat(runtime)!: require Node 26 across all installers, heal, and upgrade paths 2026-08-01 21:17:51 -04:00
label-rerun.yml ci: live-updating PR review comment with structured job statuses 2026-07-20 16:48:25 -04:00
lint.yml ci: pin uv version in setup-uv to eliminate per-job manifest fetch 2026-07-28 17:59:23 -07:00
lockfile-diff.yml ci: live-updating PR review comment with structured job statuses 2026-07-20 16:48:25 -04:00
osv-scanner.yml ci(security): include photon sidecar + whatsapp bridge lockfiles in OSV scan 2026-07-31 21:24:47 -07:00
publish-e2e-evidence.yml fix(ci): authenticate gh-image installation (#69793) 2026-07-23 03:23:28 +00:00
review-labels.yml ci: surface E2E screenshots in review comment (#69631) 2026-07-22 23:19:53 +00:00
skills-index-freshness.yml fix(ci): publish inline E2E evidence (#69699) 2026-07-23 02:15:23 +00:00
skills-index.yml fix(ci): publish inline E2E evidence (#69699) 2026-07-23 02:15:23 +00:00
supply-chain-audit.yml fix(ci): publish inline E2E evidence (#69699) 2026-07-23 02:15:23 +00:00
tests.yml Refresh on upstream/main: resolve conflicts (no behavior change) 2026-07-29 18:55:10 -07:00
uv-lockfile-check.yml ci: pin uv version in setup-uv to eliminate per-job manifest fetch 2026-07-28 17:59:23 -07:00