避免四舍五入和缺区间把还可能的时间从目前范围里藏掉。
Co-Authored-By: Grok (agent loop)
This commit is contained in:
co-authored by
Grok (agent loop)
parent
25c51ff0d0
commit
1ba473970f
+16
-1
@@ -36498,7 +36498,7 @@
|
||||
- 触发条件:同一声明窗口里有多段还活着的簇,段与段之间的空档大于 4 分钟。`segment_index` 是用户声明的窗口段,不是候选簇。
|
||||
- 根因:`interval_union_width` 和 `unionWindowIntervals` 把同一声明段里的区间收成最早到最晚。交付卡标题走这条包络。
|
||||
- 修复:卡片、旁白、口头可说的钟点和遥测宽度改用还活着的簇。落后峰值达到 8 分的候选不进这段显示,和现在的进区间门槛相同。相邻空档不超过 4 分钟的段合并;超过三段时只写前三段,并写一共几段、大约还剩多少分钟。打分、采用、确认、分离和 `MIN_SEPARATION_LEAD` 不动。写盘和读盘仍用同一个 8。会话标题仍由数据库里的单段生成,本轮不改表。
|
||||
- 验证:`frontend/tests/rectification-living-display-20261016.test.ts` 覆盖单段、空档 4 分钟合并、空档 5 分钟拆开、五段只显示前三段,以及卡片标题不再画出整段包络。`tests/test_rectification_living_display_intervals.py` 锁定同一套合并,并断言同一对区间的决策包络宽度不变。
|
||||
- 验证:`frontend/tests/rectification-living-display-20261016.test.ts` 覆盖单段、空档 4 分钟合并、空档 5 分钟拆开、五段只显示前三段,以及卡片标题不再画出整段包络。原先 `tests/test_rectification_living_display_intervals.py` 也锁同一套合并。BUG-1370 确认技能报告的「不可分宽度」由前端按决策包络填写,Python 没有用户看得到的范围句,删掉了这个没有调用方的文件。合并仍由上面的前端测试锁定。
|
||||
- 防复发:上述测试。显示函数放在密封打分文件之外,打分路径不引用它。没有簇区间的旧结果仍用原来的首尾。
|
||||
- 相关记录:BUG-423、BUG-560。
|
||||
- 复发自:无。
|
||||
@@ -36533,3 +36533,18 @@
|
||||
- 相关记录:BUG-423、BUG-560、BUG-1367。
|
||||
- 复发自:无。
|
||||
- 修复版本:未修。
|
||||
|
||||
## BUG-1370 | 分段显示用取整分数,还会跳过缺区间的活候选
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现 / 最近更新:2026-10-17 / 2026-10-17
|
||||
- 来源:issue #77 第 1 次验收打回。修复单 `docs/tasks/TASK-rectification-narrower-delivery-fix-20261017.md`。
|
||||
- 现象:交付卡上的「目前范围」有时比真正还可能的时间更窄。真实出生时间可能落在被藏起来的那段里。
|
||||
- 触发条件:两处。一是峰值 7.6、另一候选 0.4,实际差 7.2 分,仍该留下;卡片只有取整后的相对支持,变成差 8 分,被排除。二是某个还在范围内的候选没有簇区间,新显示直接跳过它,原来会退回整段首尾。
|
||||
- 根因:卡片和只读范围行用解析后的候选重算谁还活着。解析结果只保留 0–100 的整数相对支持,不保留原始 posterior_score。缺区间时函数跳过该候选,而不是整段退回。
|
||||
- 修复:写盘时用 `stillValidCandidates` 的原始 posterior_score 算出分段,写入 `living_display_intervals`。读盘只展示这份区间。没有这份字段,或任一还活着的候选缺区间,就用原来的首尾。门槛仍是 8。`credible_range` 的写盘和读盘都还是这一个 8,没有另起一套。打分、采用、确认、分离和 `MIN_SEPARATION_LEAD` 不动。技能报告里的「不可分宽度」仍由前端按决策包络填写,Python 里没有用户看得到的范围句,因此删掉没有调用方的 `scripts/rectification/living_display_intervals.py`。
|
||||
- 验证:`frontend/tests/rectification-living-display-20261016.test.ts` 覆盖差 7.2 分的两边都在显示里、一个活候选缺区间则没有分段、显示成员与 `stillValidCandidates` 相同,以及写盘把这两段存下来。没有存过分段的卡片仍显示整段首尾。另用开工 SHA `712a0fd2` 的一条已答完的 ±60 真实回放样本(只留分数和区间)锁定:显示成员与 `stillValidCandidates` 相同,标题段数和剩余分钟与该样本一致,空档大于 4 分钟。
|
||||
- 防复发:不得再用取整后的相对支持决定显示成员。不得在缺区间时只跳过那一个候选。不得只改写盘或只改读盘。不得用修改 `MIN_SEPARATION_LEAD` 来收窄或放宽显示。
|
||||
- 相关记录:BUG-423、BUG-1367。
|
||||
- 复发自:无。
|
||||
- 修复版本:分支 `codex/rectification-narrower-delivery-20261016`。
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
# 进度:生时校正交付区间收窄 · 第 1 次打回修复(2026-10-17)
|
||||
|
||||
issue #77。分支 `codex/rectification-narrower-delivery-20261016`。修复单在 `origin/staging` 的 `docs/tasks/TASK-rectification-narrower-delivery-fix-20261017.md`。
|
||||
|
||||
## 结论
|
||||
|
||||
卡片和旁白上的「目前范围」改为读写盘时算好的分段。差 7.2 分、四舍五入后看起来像差 8 分的候选会留下。某个还活着的候选没有时间区间时,整张卡退回原来的首尾,不再把那一段藏起来。打分、采用、确认、分离门槛 8、出题闸 30/45 天都没有改。对半出题和把进区间门槛从 8 改成 6 这次仍然不做。
|
||||
|
||||
77 例基线回放还在跑,输出文件还没落地,所以没有包含率,也不能拿来和改完后的显示对照。没有另开第二份回放。
|
||||
|
||||
## 口径
|
||||
|
||||
| 位置 | 这一轮 |
|
||||
| --- | --- |
|
||||
| 交付卡、只读范围行、旁白、口头钟点、遥测宽度 | 读结果里已保存的 `living_display_intervals`。没有这份字段,或写盘时某个还活着的候选缺区间,就用原来的首尾 |
|
||||
| 谁还活着 | 与 `stillValidCandidates` 相同,用原始 `posterior_score`,门槛仍是 8。不用取整后的相对支持 |
|
||||
| `credible_range` / `credible_intervals` | 决策包络,门槛仍是 8 |
|
||||
| 技能报告「不可分宽度」 | 仍由前端按决策包络填写(`candidate-plateau.ts`)。Python 里没有用户看得到的范围句 |
|
||||
| 会话标题 | 仍是数据库函数里的单段。本轮不改表 |
|
||||
| 对半出题、门槛 8 改 6 | 不做 |
|
||||
|
||||
F4 选 **b**:删掉没有调用方的 `scripts/rectification/living_display_intervals.py` 和 `tests/test_rectification_living_display_intervals.py`。
|
||||
|
||||
## 漏段
|
||||
|
||||
- 写盘(`buildInferenceState`)用 `livingDisplayForInference` 按原始分数算出分段,随推断状态保存。
|
||||
- 读盘只展示保存下来的区间。旧结果没有这个字段时,标题仍是原来的首尾。
|
||||
- 真实样本:开工 SHA `712a0fd2` 上一条已经答过题的 ±60 回放,只留下分数和区间,日期改锚到 2000-01-01。样本有大于 4 分钟的空档。显示成员与 `stillValidCandidates` 相同,标题是 3 段、共 38 分钟。文件:`frontend/tests/fixtures/rectification-living-display-radius60-20261017.json`。手写的 7.2 分边界和缺区间用例仍在,没有放宽。
|
||||
|
||||
## 基线回放
|
||||
|
||||
沿用已经在跑的那一份,没有新开。进程是 2026-10-17 03:31 UTC 启动的 PowerShell pid 668。代码 SHA `712a0fd2a19947405a1dfb486bad96a7661d41c3`。工作树里的回放脚本和这份正在跑的副本哈希一致。
|
||||
|
||||
计划是 77 例 × 3 个窗口 × 4 种答题,共 924 条。写入本记录时,回放数据库里已有 473 条案例行,日志仍有新的打分请求。输出文件 `docs/research/rectification_narrower_delivery_baseline_2026_10_16.json` 还不存在。案例行数不是包含率,这里不写包含率、剩余分钟中位数或显示宽度中位数。
|
||||
|
||||
改完后的同一套对照(T1)没有开跑。基线还占着这套数据库,按交代不能再启动第二份。
|
||||
|
||||
## 测试
|
||||
|
||||
| 检查 | 命令 | 结果 |
|
||||
| --- | --- | --- |
|
||||
| 分段显示,含 7.2 分、缺区间、成员一致、真实 ±60 样本 | `node --import tsx --test tests/rectification-living-display-20261016.test.ts` | 13 pass,0 fail,0 cancelled |
|
||||
| Python 显示单测 | 文件已按 F4-b 删除 | 未跑 |
|
||||
| Python 快速门 | 本轮不跑 | 未跑 |
|
||||
| `tsc`、`lint`、前端全量 `npm test` | 修复单没有点名 | 未跑 |
|
||||
|
||||
## 红线
|
||||
|
||||
未改引擎打分、`SCORE_DELTA`、采用/确认门、`MIN_SEPARATION_LEAD`(仍是 8)、`MIN_BOUNDARY_DAYS=45`、`REFRESH_MIN_BOUNDARY_DAYS=30`。
|
||||
|
||||
## 其它
|
||||
|
||||
- 开工时本分支已提交的最大 BUG 号是 1369。本轮用 BUG-1370。`origin/staging` 的历史文件最大号是 1366。状态板上婚恋合盘写了「BUG-1370 起」,那一行还没有写进 `docs/BUG_HISTORY.md`。本条按本分支已提交最大号 +1 登记。
|
||||
- `git fetch` 后 `origin/staging` 为 `edf25918b2f14a4339740be505916ba41e65acb7`(修复单所在提交 `f95eb670` 之后还有 5 个文档提交)。本轮用 merge,不 rebase。
|
||||
- 临时目录 `G:\Ferti\tmp\replay-temp` 和 `G:\Ferti\tmp\baseline-712a0fd2` 不进仓库。
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `TASK-rectification-narrower-delivery-20261016.md` | — | **交付区间收窄**:显示改按活着的簇分段(±60 显示 71→实际 42 分钟)、按剩余候选对半出题并放宽到 12 轮(少数侧 <20% 不出题)、新增 `DELIVERY_RANGE_LEAD=6` 只管进区间(`MIN_SEPARATION_LEAD=8` 不动,写读同口径)。红线:PG 回放真值保留全对 ≥基线−1、答错一题 ≥基线−5pp,不过则该档回 8。证据 `docs/research/rectification_width_funnel_2026_10_16.md`(含象征星区间求交复现=随机)。BUG 1367 起 | 待领取 | — |
|
||||
| `TASK-rectification-narrower-delivery-20261016.md` | `PROGRESS-rectification-narrower-delivery-fix-20261017.md` | **交付区间收窄**:显示改按活着的簇分段。第 1 次打回只补两处显示漏段(取整差 8 分、缺区间整段退回)。对半出题和门槛 8 改 6 仍不做。基线 77 例回放未结束,没有包含率。BUG-1367 起,本轮 BUG-1370 | 待验收 | `codex/rectification-narrower-delivery-20261016` |
|
||||
| —(子代理直接执行,无任务书) | `PROGRESS-bug-1060-d9-double-transit-20260927.md` | **双重过运 D9 目标错配(BUG-1060)**:D9 第 N 宫目标误用 D9 上升、D9 宫主目标误用 D1 度数,改为标签所写的 D9 星座;D1 / CL 层逐字节不变;数据卡 golden 重采集(一张盘跨层结论 9→10);另记 BUG-1061 跨层数字比对(未修) | 已验收(待部署) | `codex/bug-1060-d9-double-transit-20260927`(未推送) |
|
||||
| —(子代理直接执行,无任务书;产品 2026-09-27 授权) | `PROGRESS-bug-1061-cross-layer-pairing-20260927.md` | **双重过运跨层配对按名字数字比对(BUG-1061)**:改为结构化身份配对(D1 第 N 宫↔D9 第 N 宫;D1 第 N 宫主↔同一颗星的 D9 目标);各层结果与 D1/CL golden 逐字节不变;48 样本跨层条目 31→38;数据卡 golden 重采集(乔布斯 6→9、泰勒 9→10) | 已验收(待部署) | `codex/bug-1061-cross-layer-pairing-20260927`(未推送) |
|
||||
| `TASK-rectification-fewer-probes-card-20260926.md` | [PROGRESS](PROGRESS-rectification-fewer-probes-card-20260926.md) | **减少无效追问 + 卡片区间为主**:引导补件离线新增达标 0 → 上限 6→2、定向题问完门槛未达直接出卡;卡片区间为主标题、代表分钟副标题,第一二名差距 ≥5 个百分点才显示百分比,否则写「目前区分不开」。不放宽任何置信度。先做 | 已验收(真机清单欠) | `4e6e8d87` + 验收补改 `7203d94e`(区分不开时隐藏「最可能」),deploy-staging run 2933 已部署;回放真值 ±30/±60 19→20、宽度中位 ±1 分钟、提问 11.4→7.8;Skill 10.0.30;真机清单 `docs/testing/rectification-fewer-probes-card-20260926.md` 未走 |
|
||||
|
||||
Reference in New Issue
Block a user