fix(report): bind v2 chart cap to CHART_IDS.length

Five-theme personal_full assembled nine charts after health vargas landed, but the document schema still capped at six. Bind the count to the enum, align JSON/Python contracts, and log final-parse paths without values.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-04 21:33:27 +08:00
co-authored by Cursor
parent d2955c6280
commit 6119469069
13 changed files with 279 additions and 21 deletions
+7 -7
View File
@@ -8263,16 +8263,16 @@
## BUG-535 | 五章写完后终稿 final_parse_rejectedaccepted 报告仍无 ready 文档
- 状态:investigating
- 状态:mitigated
- 首次发现:2026-09-04
- 最近更新:2026-09-04
- 影响面:`assembleReportDocumentV2` 之后的 `safeParseServerReportDocument`standard `personal_full` 终装
- 用户现象:报告中心显示生成失败。错误码 `report_schema_invalid`,日志 `innerReason=final_parse_rejected`。五章其实都已写完。
- 触发条件:accepted 生时、默认五主题、staging @ `e27d5dc5`。干净 attempt 1 与此前被租约打断后恢复的 attempt 都复现。
- 根因:未知。已排除:引擎未调用(BUG-526)、心跳死在 `section:`BUG-534)、`applyReportGuard` 拒绝(会是 `report_guard_rejected`)、evidenceHash 不匹配(会是 `final_parse_evidence_hash`)。日志没有逐条 parse error
- 修复:未修。终稿失败码应带上 parse path,才能定案
- 验证:request `20c94bf4`5× workflow 200;五章 ready、narrative 非空、refs 37 条;摘要 writer `stop`;随后 `generation_failed`
- 防复发:待定案后补
- 相关记录:BUG-526、BUG-534
- 根因:`c2f23131``CHART_IDS` 扩到 9 个(加 D6/D8/D30),文档 v2 仍 `charts.max(6)`。分盘提取修好后,五主题装配 9 张图,终稿 parse 拒绝。四主题一直 ≤6 所以从未踩中
- 修复:v2 `charts.max(CHART_IDS.length)`JSON Schema / Python 合同同步;装配允许集改为 `CHART_IDS``final_parse_rejected` 日志增加 `parsePaths`(仅 path + code
- 验证:合同测试 9 图过 parse;五主题分章夹具 READY;四主题不回归;超限仍 `too_big`。staging 真实 standard personal_full 待任务 3
- 防复发:上限必须绑定 `CHART_IDS.length`,不得再写裸 6/9。扩枚举必须同时改 Zod / JSON Schema enum / Python `CHART_IDS`。终稿失败必须带 parse path
- 相关记录:BUG-526、BUG-534;引入半拉子改动的提交 `c2f23131`
- 复发自:无
- 修复版本:待修复
- 修复版本:待本轮代码提交 SHA