跳到主要内容

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.ymlactions/checkout@v4actions/checkout@v5使用 Node.js 24 action runtime
.github/workflows/docs.ymlactions/setup-node@v4 + Node 22actions/setup-node@v5 + Node 24让门户构建在 Node.js 24 下运行
.github/workflows/docs.ymlactions/upload-artifact@v4actions/upload-artifact@v6使用默认 Node.js 24 artifact action runtime
.github/workflows/change-scope.ymlactions/checkout@v4actions/checkout@v5使用 Node.js 24 action runtime
.github/workflows/change-scope.ymlactions/setup-node@v4 + Node 22actions/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 ActionsDocs run 25812049695,status completed,conclusion success
Workflow actions远端日志下载 actions/checkout@v5actions/setup-node@v5actions/upload-artifact@v6
Workflow Node远端日志显示 node-version: 24,实际 Node 为 v24.14.1
DeploymentGitHub deployment 4677890466,environment topquant.org / production,state success
Public checkpoint pagehttps://fin-tec-ai.up.railway.app/controllers/labs-fintecai-admin/checkpoints/2026-05-14-workflow-node24-compat/ 返回 HTTP 200
Public manifesthttps://fin-tec-ai.up.railway.app/docs-manifest.json?ts=... 包含 workflow-node24-compat
Public llmshttps://fin-tec-ai.up.railway.app/llms.txt?ts=... 包含 Workflow Node.js 24 compatibility
Pagefindhttps://fin-tec-ai.up.railway.app/pagefind/pagefind-entry.json 返回 HTTP 200

远端日志未再出现 actions/checkout@v4actions/setup-node@v4actions/upload-artifact@v4 对应的 Node.js 20 action-runtime warning。仍观察到依赖层面的 punycodeurl.parse()uuid@8.3.2 warning;这不是本批 Node.js 20 action runtime cleanup 的阻断项,若后续噪声升高,应作为 dependency hygiene 单独处理。

5. 后续动作

  1. 下一批进入 scope-guard-required-check,把 Change Scope 作为 GitHub required check;
  2. 再后一批进入 published-site-verify-script,把线上 manifest / llms / 关键页面 / Pagefind 检查固化为脚本;
  3. 若依赖 warning 后续影响 CI 可读性,再开 dependency hygiene 小批次。

6. 不做事项

  • 不修改项目 Controller 正文;
  • 不重开 Batch 3 核心入口;
  • 不把 Node.js 24 tooling cleanup 与知识库事实源迁移混在一个批次;
  • 不在本批处理 GitHub branch protection 设置。