fix(rectification): typecheck answered probe_id for staging publish
Independent Staging Quality Gate / validate (push) Successful in 10m47s
Independent Staging Quality Gate / publish (push) Successful in 11m26s

Docker next build failed on ProbeAnswer.id and optional decisionReceipt,
so staging never received the month-lock SHA.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-28 11:00:18 +08:00
parent 797a423af7
commit 589ada6d03
4 changed files with 88 additions and 8 deletions
+16
View File
@@ -6221,6 +6221,22 @@
- 复发自:BUG-405(排序公式对,目录被投影饿死,已打开低分卡锁题)
- 修复版本:待发布
## BUG-409 | staging publish 的 next build 因 answered_probes.id 与 optional receipt 失败
- 状态:resolved
- 首次发现:2026-08-28
- 最近更新:2026-08-28
- 影响面:Gitea `backend-quality-gate.yml` `publish``deploy/railway-web.Dockerfile``RUN npm run build``contrastPacketFromLatestResult`、Mastra `rectification-v9-tools`
- 用户现象:向 `staging` 推送月份精度修复后,run `2128` validate 通过,publish 在 web 镜像 `next build` 失败。没有 dispatch `Deploy staging`。公网仍停在上一成功 SHA。
- 触发条件:staging push 的 validate 跳过 `npm run build`publish 才在 Docker 里跑 TypeScript。
- 根因:`answered_probes` 的字段是 `probe_id`,目录过滤写成了不存在的 `item.id``tsc` 报 TS2339。工具侧 `latestResult.decisionReceipt` 可为 `undefined`,目录函数要求 `| null`,报 TS2345。BuildKit 日志末尾仍是 `skill-package-registry.ts` 的 Import traces,真正失败是 `Failed to type check`
- 修复:已答探针按 `probe_id` 过滤。目录函数接受 `undefined` latest,并把缺省 receipt 收成 `null` 再往下传。
- 验证:`npx tsc --noEmit``rectification-decision-authority` 锁定已答探针按 `probe_id` 退出目录。
- 防复发:改生时纠正目录或 Mastra 工具类型后,推 staging 前必须跑 `npx tsc --noEmit` 或等价 `next build`,不能只跑 `tsx --test`
- 相关记录:BUG-309、BUG-315、BUG-321、BUG-371、BUG-408
- 复发自:BUG-309validate 跳过 `next build`publish 才暴露类型错误)
- 修复版本:待发布
## BUG-408 | 反推题丢掉大运起点的月份,同年 3 月对 9 月问不出来
- 状态:resolved