Skip to content

Commit 4ee156a

Browse files
dorlugasigalCopilot
andcommitted
chore(deps): drop Node 20 — EOL 2026-04-30
Node 20.x reached end-of-life on 2026-04-30 and the test runner on Windows exhibits different exit semantics than 22+ (the routes.test.js after() process.exit shim cancels the synthetic file wrapper on 20 even though every assertion passes), so keeping it in the matrix would force us to maintain a divergent code path for an unsupported runtime. * package.json engines: node >=22.0.0 * CI matrix: drop Node 20, keep 22 + 24 * Docs: getting-started.md, troubleshooting.md, running-in-background.md bumped to "Node.js 22 or higher" * Copilot instructions cross-platform note bumped No code changes. The routes.test.js Windows worker-exit shim added in the prior commit stays — it's still needed for clean Windows runs on 22 and 24. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent fff3329 commit 4ee156a

6 files changed

Lines changed: 7 additions & 6 deletions

File tree

.github/copilot-instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ TermBeam is a Node.js CLI tool that exposes a local PTY (pseudo-terminal) over H
107107
- **Minimal dependencies** — prefer built-in Node.js APIs over npm packages
108108
- **One responsibility per file** — modules organized in `src/server/`, `src/cli/`, `src/tunnel/`, `src/utils/`, each owning a single concern
109109
- **Prettier formatting** — single quotes, trailing commas, 100 char width, semicolons (`.prettierrc`)
110-
- **Cross-platform support** — must work on Windows, macOS, and Linux; CI tests on Ubuntu + Windows with Node 20, 22, 24
110+
- **Cross-platform support** — must work on Windows, macOS, and Linux; CI tests on Ubuntu + Windows with Node 22 and 24 (Node 20 was dropped after its EOL on 2026-04-30; bump `package.json` engines + this line in lockstep)
111111
- **PTY session cleanup**`pty.kill()` is async; the `onExit` callback removes the session from the Map
112112
- **Coverage exclusion**`src/tunnel/` directory is excluded from coverage (requires external DevTunnel CLI)
113113
- **Build artifact**`public/` is a gitignored build artifact; run `npm run build:frontend` to regenerate from `src/frontend/`

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ jobs:
2121
fail-fast: false
2222
matrix:
2323
os: [ubuntu-latest, windows-latest]
24-
node-version: [20, 22, 24]
24+
# Node 20 dropped after EOL (2026-04-30). See package.json engines.
25+
node-version: [22, 24]
2526
steps:
2627
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
2728
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"url": "https://github.com/dorlugasigal/TermBeam/issues"
4949
},
5050
"engines": {
51-
"node": ">=20.0.0"
51+
"node": ">=22.0.0"
5252
},
5353
"files": [
5454
"bin/",

packages/site/src/content/docs/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: Install TermBeam and connect to your terminal from any device in un
55

66
## Prerequisites
77

8-
- **Node.js** 20 or higher
8+
- **Node.js** 22 or higher
99
- A terminal (macOS, Linux, or Windows)
1010

1111
## Installation

packages/site/src/content/docs/running-in-background.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ If you use `--tunnel` with a background service, pass `--persisted-tunnel` so th
343343

344344
<!-- prettier-ignore -->
345345
:::tip[Node.js Requirement]
346-
TermBeam requires Node.js 20 or higher. Verify with `node --version` before setting up a background service.
346+
TermBeam requires Node.js 22 or higher (Node 20 was dropped after its EOL on 2026-04-30). Verify with `node --version` before setting up a background service.
347347
:::
348348

349349
<!-- prettier-ignore -->

packages/site/src/content/docs/troubleshooting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ curl -H "Authorization: Bearer YOUR_PASSWORD" http://localhost:3456/api/sessions
151151
- **Alpine (Docker):** `apk add build-base python3`
152152
- **Windows (Admin PowerShell):** `npm install --global windows-build-tools`
153153

154-
Ensure your Node.js version is 20 or higher — older versions are not supported.
154+
Ensure your Node.js version is 22 or higher — older versions (including Node 20, EOL 2026-04-30) are not supported.
155155

156156
### "Port already in use"
157157

0 commit comments

Comments
 (0)