Checkpoint: workflow-node24-compat
日期:2026-05-14
Controller:Labs-FinTecAI Admin
Lane:knowledge-refactor
状态:Proposed
1. 本批完成
Batch 7A 完成 GitHub Actions Node.js 24 compatibility cleanup。
本批只处理 tooling surface,不修改治理正文、项目正文、Controller 产品事实源、公共入口语义或知识库 IA。
2. 变更内容
| Workflow | 旧配置 | 新配置 | 目的 |
|---|---|---|---|
.github/workflows/docs.yml | actions/checkout@v4 | actions/checkout@v5 | 使用 Node.js 24 action runtime |
.github/workflows/docs.yml | actions/setup-node@v4 + Node 22 | actions/setup-node@v5 + Node 24 | 让门户构建在 Node.js 24 下运行 |
.github/workflows/docs.yml | actions/upload-artifact@v4 | actions/upload-artifact@v6 | 使用默认 Node.js 24 artifact action runtime |
.github/workflows/change-scope.yml | actions/checkout@v4 | actions/checkout@v5 | 使用 Node.js 24 action runtime |
.github/workflows/change-scope.yml | actions/setup-node@v4 + Node 22 | actions/setup-node@v5 + Node 24 | 让 scope guard 在 Node.js 24 下运行 |
官方 release surface 显示这些版本已经切到 Node.js 24 runtime;ubuntu-latest hosted runner 满足所需 runner 版本。若未来迁移到 self-hosted runner,需要单独确认 runner version 不低于对应 action 要求。
3. 验证
DOC_CHANGE_SCOPE=public-entrypoints,controllers,tooling npm run verify:change-scope:通过,6 个变更文件均在声明范围内。ruby -e 'require "yaml"; Dir[".github/workflows/*.{yml,yaml}"].each { |f| YAML.load_file(f); puts "YAML OK #{f}" }':通过,两个 workflow 均可解析。node -e "JSON.parse(require('fs').readFileSync('docs-manifest.json','utf8')); console.log('docs-manifest JSON parse OK')":通过。git diff --check:通过。npm run prepare:portal && npx -y node@24 node_modules/.bin/docusaurus build && npx -y node@24 node_modules/.bin/pagefind --site build:通过,Node.js 24.15.0 下 Docusaurus build 和 Pagefind 均成功,Pagefind 索引 140 pages / 6239 words。test -f build/controllers/labs-fintecai-admin/checkpoints/2026-05-14-workflow-node24-compat/index.html:通过,新 checkpoint 页面已进入本地 build。rg -n "workflow-node24-compat|Workflow Node.js 24" build/docs-manifest.json build/llms.txt build/controllers/labs-fintecai-admin/checkpoints/2026-05-14-workflow-node24-compat/index.html:通过,机器入口和页面产物均包含新 checkpoint。
4. 远端发布闭环
提交 219b1a3573b16ff6a31fb3454ecdf85ed4e2c903 推送到 main 后,远端发布侧已完成验证:
| 项目 | 证据 |
|---|---|
| GitHub Actions | Docs run 25812049695,status completed,conclusion success |
| Workflow actions | 远端日志下载 actions/checkout@v5、actions/setup-node@v5、actions/upload-artifact@v6 |
| Workflow Node | 远端日志显示 node-version: 24,实际 Node 为 v24.14.1 |
| Deployment | GitHub deployment 4677890466,environment topquant.org / production,state success |
| Public checkpoint page | https://fin-tec-ai.up.railway.app/controllers/labs-fintecai-admin/checkpoints/2026-05-14-workflow-node24-compat/ 返回 HTTP 200 |
| Public manifest | https://fin-tec-ai.up.railway.app/docs-manifest.json?ts=... 包含 workflow-node24-compat |
| Public llms | https://fin-tec-ai.up.railway.app/llms.txt?ts=... 包含 Workflow Node.js 24 compatibility |
| Pagefind | https://fin-tec-ai.up.railway.app/pagefind/pagefind-entry.json 返回 HTTP 200 |
远端日志未再出现 actions/checkout@v4、actions/setup-node@v4 或 actions/upload-artifact@v4 对应的 Node.js 20 action-runtime warning。仍观察到依赖层面的 punycode、url.parse() 和 uuid@8.3.2 warning;这不是本批 Node.js 20 action runtime cleanup 的阻断项,若后续噪声升高,应作为 dependency hygiene 单独处理。
5. 后续动作
- 下一批进入
scope-guard-required-check,把Change Scope作为 GitHub required check; - 再后一批进入
published-site-verify-script,把线上 manifest / llms / 关键页面 / Pagefind 检查固化为脚本; - 若依赖 warning 后续影响 CI 可读性,再开 dependency hygiene 小批次。
6. 不做事项
- 不修改项目 Controller 正文;
- 不重开 Batch 3 核心入口;
- 不把 Node.js 24 tooling cleanup 与知识库事实源迁移混在一个批次;
- 不在本批处理 GitHub branch protection 设置。