Repository navigation
fix(ci): pin MK-01 to PostgreSQL 18 and sealed process inputs - #930
Conversation
MK-01 used unpinned postgres:17-alpine and omitted the model and payment process variables that the protocol job already exports, so identity tests failed on every services/core pull request. Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com>
|
Bot 巡检(2026-10-17 02:40 UTC+8):head |
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
变更说明
问题与关联 Issue/PR:
Fixes #929
MK-01 identity and teams 在基线
278ef81e与 tipa901a606上对所有触及services/core/**的 PR 失败,与业务改动无关。对照 run 38928672624(head51d79011)与同一 head 的 protocol run 38928672599:protocol 的 “Rust checks and real database tests” 通过,MK-01 的 identity job 失败。为什么采用此方案:
失败日志确认两处 CI 差异,目录指纹保持
660ddf6f…不变:postgres:17-alpine。core_schema::index_tests得到25dd8365…,期望值为已审核的660ddf6f…。随之tests/cli.rs:1093报Error: Storage,oauth2_lmm_author四处Unavailable,oauth2_lmm_http返回 503。protocol 使用与deployment/docker/compose.identity.yml相同的postgres:18-alpine@sha256:77f585114c32…,这些用例通过。tests/model_process.rs:94对LMM_MODEL_PROCESS_ROOT的unwrap使 7 个用例 panic;tests/payments_process.rs因缺少LMM_PAYMENT_CORE_BIN失败。只改
.github/workflows/mk-01-identity.yml:Postgres 镜像改为 protocol 的固定 digest;测试步骤按 protocol 先cargo test --no-run,再导出模型进程根目录、Core/Go/bootstrap 二进制及其 SHA-256,然后执行cargo test。Go host 构建改为与 protocol 相同的CGO_ENABLED=0 go build -mod=readonly -trimpath。不改业务代码,也不把指纹改成 PostgreSQL 17 的值。复用了什么,替代或删除了什么:
复用 protocol 作业里已验证的镜像 digest 和密封变量脚本。替换未固定的
postgres:17-alpine,以及直接执行、未绑定进程输入的cargo test。可能破坏的行为、外部契约或数据路径:
无运行时契约变化。MK-01 现在跑与 protocol 相同的非忽略支付恢复用例和模型进程用例。302 秒用例仍保持 ignore。protocol 工作流文件未改。
上游来源与许可证影响(不适用时说明):
不适用。仅仓库 CI 配置。
验证证据
审查基点 SHA:
a901a60637e21c39285df6c0217492d730241668实际测试的 HEAD 与工作区摘要:
ad54700ee5ef3434c0a376537a892ccd49c12155,仅.github/workflows/mk-01-identity.yml。修复前失败、修复后通过的命令与日志:
25dd8365…≠660ddf6f…;Error: Storage;model_process 7 失败;oauth2 author 4 失败与 http 503;required sealed input LMM_PAYMENT_CORE_BIN。node --test scripts/workflow-topology.test.mjs12 通过;actionlintv1.7.12 对mk-01-identity.yml无输出。identitysuccess(13m30s)。日志显示拉取postgres:18-alpine@sha256:77f585114c32…,current_schema_index_predecessor_upgrade_changes_only_verified_index_and_two_receipts、independent_process_personal_permissions_and_idempotency、real_core_and_go_payment_credit_commit_before_local_receipt_crash均为 ok。protocolsuccess(13m44s)。重构的行为保持证据,或明确的业务语义差异:
无业务语义差异。
quick / related / full 的报告、失败、受阻及未执行项目:
quick:workflow topology 与 actionlint。related:本 PR 上的 MK-01 与 protocol,均已通过。未在本地复跑
cargo test(需要与 CI 相同的固定 PostgreSQL 18 服务)。agcc在此环境不可用,未建立 watch 会话。用户可见变化的浏览器证据;核心变化的同环境资源对比(适用时):
不适用。无界面变化。
必须独立审查的内容
门禁、测试断言、类型配置、阈值、锁文件、基线或例外的变更与理由:
无断言、锁文件或指纹基线变更。MK-01 的 Postgres 镜像与密封测试输入与 protocol 对齐,避免 PostgreSQL 17 反解析出另一套目录指纹。
高风险业务、临时方案的责任人、到期时间与退出条件:
无。
独立审查者与证据(尚未执行请写 pending,作者不能自行批准):
pending
提交前核对
本地补丁也填写以上内容。规则及命令见 本地质量门禁。提交不代表允许合并、发布或部署。