fix(report): use the upstream reader edition for new longform bodies
New reports request reader_main from upstream origin/main 23b9609e. KP and transit no longer copy an empty vars() dict, solar returns keep birth_asc_sign_idx, and ordinary projection deletes internal lines whole.
This commit is contained in:
+48
-1
@@ -13598,8 +13598,55 @@
|
||||
- 现象 / 触发:真实引擎虚构golden仅将LF换成CRLF,正文下载残留22段图盘JSON;新分盘组仍可提取22盘。
|
||||
- 根因:report-chart-block.ts的FENCE_RE在jyotish-chart语言标记后仅匹配LF,stripReportChartBlocks共用它;旧测试验证LF剥除和CRLF字节等价,没有覆盖含真实围栏的CRLF无JSON。
|
||||
- 修复:按产品D14有限例外,将语言标记及围栏尾部边界改为匹配`\\r?\\n`;不标准化整篇换行,不改SVG、投影、生成链或下载器。
|
||||
- 验证:真实虚构reader golden的LF、CRLF、混合换行均输出0段`jyotish-chart`围栏、22个SVG且`ordinaryOutputLeaks`为空;LF普通导出SHA256固定为`3c52e8bfcfcb3ce3852bd5323867a69bc47d0f9aa821a34692172e7d61c6bcb8`。定向测试已通过;尚无部署health证据。
|
||||
- 验证:真实虚构reader golden的LF、CRLF、混合换行均输出0段`jyotish-chart`围栏、22个SVG且`ordinaryOutputLeaks`为空;当时 LF 普通导出 SHA256 为 `3c52e8bfcfcb3ce3852bd5323867a69bc47d0f9aa821a34692172e7d61c6bcb8`。定向测试已通过;尚无部署health证据。
|
||||
- 2026-09-25:BUG-1026 把内部词从截断改成整行删除,上述 LF 哈希不再代表当前投影。围栏与 22 个 SVG 的合同仍在。新哈希见 BUG-1026。
|
||||
- 防复发:report-chart-block与report-export-blocks定向回归覆盖真实golden CRLF/混合输入及独立LF hash锁;禁止只比较两个共同修改后的helper而声称历史输出不变。
|
||||
- 相关记录:BUG-999/1003;TASK-report-chapter-export-fix-20260924.md。
|
||||
- 复发自:BUG-999同输出边界的未覆盖换行路径,继承剥离器缺陷,非本轮新增回归。
|
||||
- 修复版本:本地待提交。
|
||||
|
||||
## BUG-1026 | 报告正文仍是审计版,投影把内部句截成半句
|
||||
|
||||
- 状态:investigating(本分支已改,未部署)
|
||||
- 首次发现 / 最近更新:2026-09-24 / 2026-09-25
|
||||
- 影响面:新个人长报告正文、普通投影、旧报告下载后的可见正文。已生成的 Markdown 不回填。
|
||||
- 用户现象:正文出现「结论等级规则」、英文 boundary、「producer failed」和异常原文、`full-report://`、页码和「…所有行保持」这种半句,以及删表后留下的说明段。
|
||||
- 触发条件:生成或打开个人长报告。正文走专业参考渲染;普通投影只拦聊天键,并在 `parameter_sensitive` 处截断句子。
|
||||
- 根因:本仓最后一次引擎同步 `f2241463`(2026-09-03)早于上游读者版 `f3b5196f`(2026-09-09)。`cfcd369d` 把参考/审计版设成正文。本仓又自行加入结论等级规则、英文 boundary,以及把 error/reason 打进不可用小节。投影的 `projectProseLine` 保留内部词之前的半句,`tableIsInternal` 只删表。
|
||||
- 修复:新报告请求 `edition: "reader_main"`。读者版从上游 `origin/main` `23b9609e`(含 `f3b5196f`)整段引入 `scripts/pl9_reader_export.py`。缺省 edition 仍是参考版。参考版也去掉上述三处自加泄漏;数据不可用的节整节不输出。投影遇内部词删整行,删表时连同紧邻说明段。报告版本 `pl9_personal_long_report.v3`。旧报告不迁移、不重算。
|
||||
- 验证:虚构盘「虚构甲」1991-04-07 09:15 的真实引擎读者版 `ordinaryOutputLeaks` 为 0,并含出生资料、Ashtakavarga、标准大运、KP、Year Lord、Tajika、Muntha。定向 Python 与前端投影测试见 PROGRESS。没有登录浏览器,未声称生成过真实用户报告。
|
||||
- 防复发:读者版 golden 与 `ordinaryOutputLeaks` 不得弱化;新增长报告请求体必须带 `edition: "reader_main"`。旧 `report-density-fictional-reader.json` 继续锁旧报告。投影 sha 改动须写明原值锁的是泄漏输出。
|
||||
- 相关记录:BUG-999、BUG-1003、BUG-1009、BUG-1020、BUG-1027、BUG-1028
|
||||
- 复发自:BUG-999。当时的测试只覆盖聊天导出键(`technique_truth`、`workflow_route` 等)和一份已经泄漏的参考版 sha,没有读者版正文,也不认识 PL9 审计词;截断被 sha 锁成了正确输出。BUG-1003 只清附录,BUG-1009 只改事实表列名。
|
||||
- 修复版本:本分支,未推 staging,未部署。
|
||||
- sha 三栏:普通投影 `01cc1e03c5adca2833e014156e1162fff12e5cb336e4484c5871859cd878acd7` → `f3aeb8f4b09ba0a78af4ab5e7aee4db32d7499b8e6b1488f2925b35fd91750b9`;LF 下载 `3c52e8bfcfcb3ce3852bd5323867a69bc47d0f9aa821a34692172e7d61c6bcb8` → `b7f6947f6ae6f82e4a972be3c1f2bc50260ed0c5f029847264f40a5ee6ba7b88`。原值锁的是截断后的泄漏正文。
|
||||
|
||||
## BUG-1027 | KP 与三项 transit 因空实例字典拷贝失败
|
||||
|
||||
- 状态:investigating(本分支已改,未部署)
|
||||
- 首次发现 / 最近更新:2026-09-24 / 2026-09-25
|
||||
- 影响面:网页全读路径里的 KP,以及 double transit、transit LL7L、行星聚集。CLI 的 argparse 实例不受影响。
|
||||
- 用户现象:KP Lord / Sub 节为 blocked,原文是 `'types.SimpleNamespace' object has no attribute 'year'`。
|
||||
- 触发条件:`_compute_full_reading_for_thematic` 用 `type('Args', (), {...})()` 把字段放在类上。`cmd_kp` 和 transit 执行 `SimpleNamespace(**vars(args))`,实例字典为空,随后读 `.year` 失败。
|
||||
- 根因:`vars()` 不复制类属性。上游 `origin/main` `23b9609e` 的 API 同样用这种 Args,引擎同样用 `vars()`,空结果时不把异常打进读者正文,所以缺陷一直潜伏。
|
||||
- 修复:`_copy_call_namespace` 同时读取实例字典和类属性。不改岁差、宫制或 KP 算法。API 主文件未改,类方法数不增加。
|
||||
- 验证:`tests/test_report_reader_main.py` 用同样的空实例 Args 调用 `cmd_full_reading`,KP 与三项 transit 的 status 不是 blocked,文本里没有 `has no attribute`。
|
||||
- 防复发:该类 Args 的回归留在上述测试。不要再写 `SimpleNamespace(**vars(args))`。
|
||||
- 相关记录:BUG-561、BUG-1026
|
||||
- 复发自:无。这是网页参数构造和 `vars()` 的潜伏缺陷,不是 BUG-561 的渲染分支。
|
||||
- 修复版本:本分支,未推 staging,未部署。
|
||||
|
||||
## BUG-1028 | 太阳返照漏了出生上升,年主恒为火星
|
||||
|
||||
- 状态:investigating(本分支已改,未部署)
|
||||
- 首次发现 / 最近更新:2026-09-24 / 2026-09-25
|
||||
- 影响面:Muntha、Year Lord、年度章里的冲突句。
|
||||
- 用户现象:Muntha 为 blocked;Year Lord 恒为火星 / 白羊座;年度句出现「当前优先候选指向conflict between vs Capricorn」。
|
||||
- 触发条件:`solar_return_full_report` 读取 `birth_asc_sign_idx`,本仓 `calc_solar_return_chart` 的成功字典没有这个键。冲突门用整份字典比较,blocked 与正常值必判冲突;空的左侧对不上冲突正则,落到普通句。
|
||||
- 根因:`f2241463` 同步上游时漏了 `scripts/solar_return.py` 里设置 `birth_asc_sign_idx` 的那一行。上游当前 `origin/main` 在返照字典里写入该键。本仓冲突门另外比了整份字典,上游已改成只比星座和主星,但仍会把 blocked 字典算进去;本单按 D4 在一侧 `status == blocked` 时不判冲突。
|
||||
- 修复:成功的返照结果写回 `birth_asc_sign_idx`。Muntha 没有星座序号时 Year Lord 标 blocked,不再默认 0(火星)。冲突门跳过 blocked 一侧,只比较星座与主星。
|
||||
- 验证:虚构盘 1991-04-07 的 2024/2026/2028 返照都有出生上升序号,Muntha 非 blocked,Year Lord 至少两年不同。一侧 blocked 的 Muntha 不再生成 conflict between。
|
||||
- 防复发:`tests/test_report_reader_main.py` 锁住出生上升、两年不同的年主,以及 blocked 不冲突。不要在同步时只合一半太阳返照返回值。
|
||||
- 相关记录:BUG-1026;同步提交 `f2241463`
|
||||
- 复发自:无。这是同步漏合,不是旧 Muntha 测试覆盖过的路径。
|
||||
- 修复版本:本分支,未推 staging,未部署。
|
||||
|
||||
Reference in New Issue
Block a user