From 1847358e64620be71128f4acdc4046711e82985b Mon Sep 17 00:00:00 2001 From: "J. Lewis" <6710419+lewxdev@users.noreply.github.com> Date: Fri, 14 Aug 2026 18:00:22 -0400 Subject: [PATCH 1/4] build: move runtime to Node.js 24 Prompt: go ahead and fix everything here, but keep each area should be a single slice in a $gh-stack, you can make each area a subagent too Co-authored-by: Codex --- Dockerfile | 2 +- package-lock.json | 21 +++++++++++++-------- package.json | 5 ++++- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 309a7ce..682eefb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax = docker/dockerfile:1 # Adjust NODE_VERSION as desired -ARG NODE_VERSION=20.10.0 +ARG NODE_VERSION=24.18.0 FROM node:${NODE_VERSION}-slim as base LABEL fly_launch_runtime="Next.js" diff --git a/package-lock.json b/package-lock.json index 8a7282e..e044849 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,7 @@ "@tsconfig/next": "^2.0.3", "@tsconfig/strictest": "^2.0.5", "@types/lodash": "^4.17.6", - "@types/node": "^20", + "@types/node": "^24.13.3", "@types/react": "^18", "@types/react-dom": "^18", "autoprefixer": "^10.4.20", @@ -50,6 +50,9 @@ "tailwindcss": "^3.4.1", "tailwindcss-animate": "^1.0.7", "typescript": "^5" + }, + "engines": { + "node": ">=24" } }, "node_modules/@alloc/quick-lru": { @@ -2716,11 +2719,12 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz", + "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~7.18.0" } }, "node_modules/@types/prop-types": { @@ -8896,9 +8900,10 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "license": "MIT" }, "node_modules/unicorn-magic": { "version": "0.1.0", diff --git a/package.json b/package.json index 3e07585..fe66079 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,9 @@ { "name": "mmmines", "private": true, + "engines": { + "node": ">=24" + }, "scripts": { "dev": "esrun --watch app/server.ts", "start": "NODE_ENV=production esrun app/server.ts", @@ -38,7 +41,7 @@ "@tsconfig/next": "^2.0.3", "@tsconfig/strictest": "^2.0.5", "@types/lodash": "^4.17.6", - "@types/node": "^20", + "@types/node": "^24.13.3", "@types/react": "^18", "@types/react-dom": "^18", "autoprefixer": "^10.4.20", From 07623750a5a7135d7c274648a682412db8a1bbc9 Mon Sep 17 00:00:00 2001 From: "J. Lewis" <6710419+lewxdev@users.noreply.github.com> Date: Fri, 14 Aug 2026 18:47:00 -0400 Subject: [PATCH 2/4] docs: require Node.js 24 locally Prompt: adjust the stack, #48 is unnecessary that was already fixed, we can just pull the latest changes Co-authored-by: Codex --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c05ec18..4656994 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ and Redis. ## run locally -requires Node.js 20, npm, and either Redis or Docker. +requires Node.js 24, npm, and either Redis or Docker. ```sh npm ci From 1246cc1029bb3294f95cdfb90c5368b63434b143 Mon Sep 17 00:00:00 2001 From: "J. Lewis" <6710419+lewxdev@users.noreply.github.com> Date: Fri, 14 Aug 2026 20:08:44 -0400 Subject: [PATCH 3/4] build: pin Node.js development versions Prompt: ```json { "name": "mmmines", "private": true, "engines": { "node": ">=24" }, "scripts": { ``` please use `devEngines`, not `engines` they have different meanings, no? and it should be exact, pinned to the precise version of `@types/node` that is currently available for node 24 Co-authored-by: Codex --- README.md | 2 +- package-lock.json | 5 +---- package.json | 10 +++++++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4656994..440d312 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ and Redis. ## run locally -requires Node.js 24, npm, and either Redis or Docker. +requires Node.js 24.18.0, npm, and either Redis or Docker. ```sh npm ci diff --git a/package-lock.json b/package-lock.json index e044849..f014483 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,7 @@ "@tsconfig/next": "^2.0.3", "@tsconfig/strictest": "^2.0.5", "@types/lodash": "^4.17.6", - "@types/node": "^24.13.3", + "@types/node": "24.13.3", "@types/react": "^18", "@types/react-dom": "^18", "autoprefixer": "^10.4.20", @@ -50,9 +50,6 @@ "tailwindcss": "^3.4.1", "tailwindcss-animate": "^1.0.7", "typescript": "^5" - }, - "engines": { - "node": ">=24" } }, "node_modules/@alloc/quick-lru": { diff --git a/package.json b/package.json index fe66079..97ec7f7 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,12 @@ { "name": "mmmines", "private": true, - "engines": { - "node": ">=24" + "devEngines": { + "runtime": { + "name": "node", + "version": "24.18.0", + "onFail": "error" + } }, "scripts": { "dev": "esrun --watch app/server.ts", @@ -41,7 +45,7 @@ "@tsconfig/next": "^2.0.3", "@tsconfig/strictest": "^2.0.5", "@types/lodash": "^4.17.6", - "@types/node": "^24.13.3", + "@types/node": "24.13.3", "@types/react": "^18", "@types/react-dom": "^18", "autoprefixer": "^10.4.20", From c43d13830f57c10d5f8ca054bce630530083ff3f Mon Sep 17 00:00:00 2001 From: "J. Lewis" <6710419+lewxdev@users.noreply.github.com> Date: Fri, 14 Aug 2026 20:25:13 -0400 Subject: [PATCH 4/4] build: rely on the devEngines failure default Prompt: ```json "devEngines": { "runtime": { "name": "node", "version": "24.18.0", "onFail": "error" } } ``` onFail is not necessary here, it's default Co-authored-by: Codex --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 97ec7f7..b9e0711 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,7 @@ "devEngines": { "runtime": { "name": "node", - "version": "24.18.0", - "onFail": "error" + "version": "24.18.0" } }, "scripts": {