fix: align declared node version floor

This commit is contained in:
Advait Paliwal
2026-03-26 17:22:56 -07:00
parent 30d07246d1
commit 10c93a673b
10 changed files with 17 additions and 11 deletions

View File

@@ -25,7 +25,7 @@ curl -fsSL https://feynman.is/install | bash
irm https://feynman.is/install.ps1 | iex irm https://feynman.is/install.ps1 | iex
``` ```
If you install via `pnpm` or `bun` instead of the standalone bundle, Feynman requires Node.js `20.18.1` or newer. If you install via `pnpm` or `bun` instead of the standalone bundle, Feynman requires Node.js `20.19.0` or newer.
### Skills Only ### Skills Only

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env node #!/usr/bin/env node
const MIN_NODE_VERSION = "20.18.1"; const MIN_NODE_VERSION = "20.19.0";
function parseNodeVersion(version) { function parseNodeVersion(version) {
const [major = "0", minor = "0", patch = "0"] = version.replace(/^v/, "").split("."); const [major = "0", minor = "0", patch = "0"] = version.replace(/^v/, "").split(".");

2
package-lock.json generated
View File

@@ -24,7 +24,7 @@
"typescript": "^5.9.3" "typescript": "^5.9.3"
}, },
"engines": { "engines": {
"node": ">=20.18.1" "node": ">=20.19.0"
} }
}, },
"node_modules/@anthropic-ai/sdk": { "node_modules/@anthropic-ai/sdk": {

View File

@@ -5,7 +5,7 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"engines": { "engines": {
"node": ">=20.18.1" "node": ">=20.19.0"
}, },
"bin": { "bin": {
"feynman": "bin/feynman.js" "feynman": "bin/feynman.js"

View File

@@ -1,4 +1,4 @@
const MIN_NODE_VERSION = "20.18.1"; const MIN_NODE_VERSION = "20.19.0";
function parseNodeVersion(version) { function parseNodeVersion(version) {
const [major = "0", minor = "0", patch = "0"] = version.replace(/^v/, "").split("."); const [major = "0", minor = "0", patch = "0"] = version.replace(/^v/, "").split(".");

View File

@@ -1,4 +1,4 @@
export const MIN_NODE_VERSION = "20.18.1"; export const MIN_NODE_VERSION = "20.19.0";
type ParsedNodeVersion = { type ParsedNodeVersion = {
major: number; major: number;

View File

@@ -9,10 +9,10 @@ import {
} from "../src/system/node-version.js"; } from "../src/system/node-version.js";
test("isSupportedNodeVersion enforces the exact minimum floor", () => { test("isSupportedNodeVersion enforces the exact minimum floor", () => {
assert.equal(isSupportedNodeVersion("20.18.1"), true); assert.equal(isSupportedNodeVersion("20.19.0"), true);
assert.equal(isSupportedNodeVersion("20.19.0"), true); assert.equal(isSupportedNodeVersion("20.19.0"), true);
assert.equal(isSupportedNodeVersion("21.0.0"), true); assert.equal(isSupportedNodeVersion("21.0.0"), true);
assert.equal(isSupportedNodeVersion("20.18.0"), false); assert.equal(isSupportedNodeVersion("20.18.1"), false);
assert.equal(isSupportedNodeVersion("18.17.0"), false); assert.equal(isSupportedNodeVersion("18.17.0"), false);
}); });
@@ -30,6 +30,6 @@ test("ensureSupportedNodeVersion throws a guided upgrade message", () => {
test("unsupported version guidance reports the detected version", () => { test("unsupported version guidance reports the detected version", () => {
const lines = getUnsupportedNodeVersionLines("18.17.0"); const lines = getUnsupportedNodeVersionLines("18.17.0");
assert.equal(lines[0], "feynman requires Node.js 20.18.1 or later (detected 18.17.0)."); assert.equal(lines[0], "feynman requires Node.js 20.19.0 or later (detected 18.17.0).");
assert.ok(lines.some((line) => line.includes("curl -fsSL https://feynman.is/install | bash"))); assert.ok(lines.some((line) => line.includes("curl -fsSL https://feynman.is/install | bash")));
}); });

View File

@@ -7,6 +7,9 @@
"": { "": {
"name": "website", "name": "website",
"version": "0.0.1", "version": "0.0.1",
"engines": {
"node": ">=20.19.0"
},
"dependencies": { "dependencies": {
"@astrojs/react": "^4.4.2", "@astrojs/react": "^4.4.2",
"@fontsource-variable/ibm-plex-sans": "^5.2.8", "@fontsource-variable/ibm-plex-sans": "^5.2.8",

View File

@@ -3,6 +3,9 @@
"type": "module", "type": "module",
"version": "0.0.1", "version": "0.0.1",
"private": true, "private": true,
"engines": {
"node": ">=20.19.0"
},
"scripts": { "scripts": {
"dev": "astro dev", "dev": "astro dev",
"build": "node ../scripts/sync-website-installers.mjs && astro build", "build": "node ../scripts/sync-website-installers.mjs && astro build",

View File

@@ -77,7 +77,7 @@ You can also pin an exact version by replacing `stable` with a version such as `
## pnpm ## pnpm
If you already have Node.js `20.18.1` or newer installed, you can install Feynman globally via `pnpm`: If you already have Node.js `20.19.0` or newer installed, you can install Feynman globally via `pnpm`:
```bash ```bash
pnpm add -g @companion-ai/feynman pnpm add -g @companion-ai/feynman
@@ -91,7 +91,7 @@ pnpm dlx @companion-ai/feynman
## bun ## bun
`bun add -g` and `bunx` still use your local Node runtime for Feynman itself, so the same Node.js `20.18.1+` requirement applies. `bun add -g` and `bunx` still use your local Node runtime for Feynman itself, so the same Node.js `20.19.0+` requirement applies.
```bash ```bash
bun add -g @companion-ai/feynman bun add -g @companion-ai/feynman