Skip to content

[架构维护] 将工作流上下文与数值失败传播纳入 CI 检查 - #85

Open
xi-zhao wants to merge 1 commit into
mainfrom
c/maintenance-regression-guards
Open

xi-zhao wants to merge 1 commit into
mainfrom
c/maintenance-regression-guards

Conversation

@xi-zhao

@xi-zhao xi-zhao commented Nov 15, 2026 •

Copy link
Copy Markdown
Owner

CI 曾因两类相同写法返修:在不支持 runner 的 job 环境中引用临时目录,以及计算通过 tee 保存日志后丢失失败状态。本 PR 将这些已发生的问题变成可重复执行的检查;仅修改现有 CI 和测试,不修改 AGENTS.md、生产行为或科学阈值。

问题与验收规格

  • Lean 修复 26b10a18 和 TNQS 修复 ffbb1917 都曾将不允许出现在 job.env 的 runner.temp 改到 step 内处理。验收:所有工作流接受语法、表达式和上下文检查,旧写法被拒绝。
  • TNQS 修复 f8f460ee 曾补上显式 Bash,避免数值程序失败而日志保存成功时 CI 假通过。验收:现有 PPVM、RcmpsCore、TNQS 的实际流水线都保留非零计算退出码、保留诊断日志,并允许成功计算正常通过。
  • 复用 CI / quality 与 node --test tests/*.test.mjs;无新增工作流、调度器、生产依赖、宿主或模型设置变更。

改动

  1. 在现有 quality job 的依赖安装前运行官方 actionlint 1.7.12,扫描全部工作流,包括本次未触发的路径限定工作流。工具为 MIT 许可;只下载到 runner 临时目录,执行前校验固定 SHA-256。下载或校验失败都会使检查失败。
  2. 新增 tests/workflow-gates.test.mjs,读取三份真实 workflow 的数值步骤及其 shell 继承配置,按 GitHub 的 Bash 执行合同 运行实际日志管道。仅将外部计算进程替换成返回 0/23 的测试程序;禁止这三条验收路径用 continue-on-error 吞掉失败。

固定 Linux 发行包摘要:8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc387b349a3d8,与官方校验表一致。未引入另一个手写的工作流解析器。

验证

检查 实测结果
当前 10 份 workflow,actionlint 1.7.12 通过
从 Git 读取 Lean、TNQS 修复前版本,再运行 actionlint 两份均被拒绝,明确指出 job.env 中的 runner 上下文非法
TNQS 首个回归测试,临时恢复旧 shell 配置 先失败:计算返回 23,流水线错误返回 0;恢复后通过
分别删除 PPVM、RcmpsCore、TNQS 的严格 shell 默认值 三次均使对应回归测试失败;已恢复文件
三份实际流水线,各执行成功/失败对照 全部通过,失败时仍保留日志
新回归 + 既有容器启动/发布检查 13 项通过,0 失败、0 跳过
全仓 npm run lint、git diff --check 通过
在办 #75、#79、#82 的新增工作流 分别以当前 head 的原文运行 actionlint,全部通过
PR 的既有完整 CI 8 项全部通过:quality / 双平台安装 / 容器、三平台能力包、独立 macOS 应用

审查与边界

固定 base:508ed5cd05eb44276fd5009641efa7e82a3b70c0;head:ea2832c7a70e48d5d6bb1429139cb6f0f3f9a77e。单代理顺序自审(reviewMode=self-review、independent=false):Standards 通过,Spec 通过。已对照 AGENTS.md、CONTRIBUTING.md、当前架构合同和完整 smell baseline;没有新增阻断发现。设计复用现成检查器和现有测试入口;回归验证采用先失败后通过的有界步骤。

远端 quality 日志确认新增的三组成功/失败测试均执行通过。主测试组 1257 项,其中 898 通过、359 条件跳过、0 失败;其余既有质量步骤亦通过,未把条件跳过计为实测成功。

这些测试证明工作流配置与失败传播,不证明量子数值正确性。数值计算仍由各库原有真实验证负责;本测试不安装或执行量子 SDK。actionlint 的可选 ShellCheck/Pyflakes 集成关闭,范围是工作流结构与表达式。三条 Bash 回归在 Linux/macOS 运行,Windows 跳过。未修改分支保护设置;检查失败会报告 CI 失败,是否阻止合并取决于仓库已有规则。

回退:撤销本 PR 的单个提交即可,用户环境、能力 pin、宿主适配和科学合同均不受影响。

@xi-zhao
xi-zhao marked this pull request as ready for review November 15, 2026 06:51
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 15, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-15T06:52:21.469193Z ea2832c Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant