fix(rectification): keep clock-stamped events out of window intercept (BUG-631, BUG-632)
Dated life events with clock times were swallowed as birth-window replies, and compare columns still stopped at the first nine candidates after the hour-window cap. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# PROGRESS · 验收补漏:申报时段误伤经历;by_time 只算 9 个(2026-09-09)
|
||||
|
||||
工作树:`.worktrees/rectification-followups-20260909`
|
||||
分支:`codex/rectification-followups-20260909`
|
||||
任务书:`docs/tasks/TASK-rectification-followups-20260909.md`
|
||||
基线:任务书写 `fef54b6e`;开工时接到 `origin/staging` @ `2de2aa0b`(任务书已在其上)。本单不依赖 BUG-626~628。
|
||||
|
||||
## 开工回执
|
||||
|
||||
- 编号 **BUG-631** / **BUG-632**(`docs/BUG_HISTORY.md` 当时最大已发布号是 630)。
|
||||
- 顺序:解析语境门 → 对照列上限 64 → 超 3 秒时把 active 分钟作为 `column_times` 传入 → 记录。
|
||||
|
||||
## 已完成
|
||||
|
||||
- **BUG-631**:`parseDeclaredBirthWindow` 命中钟点后再判语境。含出生语境词才算申报;含年月日且无出生语境一律当经历;裸钟点范围(可带「大概 / 下午」)仍拦截。`route.ts` 仍只在解析命中时固定回复。
|
||||
- **BUG-632**:`column_times_for_compare` 默认 `limit=MAX_PUBLIC_CLUSTERS`(64)。17 个候选 → by_time 17 键。`column_compare_ms` 预算 `COLUMN_COMPARE_BUDGET_MS=3000`。上一轮超过 3 秒时,TS `columnTimesForSlowCompare` 把推断层 active 分钟写入引擎请求的 `column_times`;决策层只保留仍在公开候选里的那些分钟。
|
||||
- 记录:BUG-631/632、CHANGELOG、DESIGN §11、走查第 4 节、场景清单第 7 条、本文件。Skill 版本不变(10.0.21)。
|
||||
|
||||
## 验收命令(实测)
|
||||
|
||||
工作树 `codex/rectification-followups-20260909`,相对 `origin/staging` @ `2de2aa0b`。
|
||||
|
||||
| 命令 | 结果 |
|
||||
| --- | --- |
|
||||
| `frontend` `./node_modules/.bin/tsx --test tests/rectification-declared-window-20260909.test.ts tests/rectification-window-cluster-cap-20260909.test.ts tests/rectification-v9-engine-contract.test.ts` | **23/23 pass** |
|
||||
| `frontend` `./node_modules/.bin/tsx --test tests/rectification-v9-agent.test.ts` | **23/23 pass** |
|
||||
| `.venv/bin/python -m pytest tests/test_rectification_v5_services.py -q` | **40 passed** |
|
||||
| `git diff --check` | 干净 |
|
||||
|
||||
## 环境缺口
|
||||
|
||||
- 无登录态、无 Chrome:`docs/testing/rectification-window-cluster-cap-20260909.md` 第 4 节真人走查未做。
|
||||
- 未跑完整前端套件 / `next build`。
|
||||
|
||||
## 未做
|
||||
|
||||
- 未 commit、未 push、未提升 `main`。
|
||||
- Skill 未升版。intake 自定义更小范围仍等产品答复(BUG-625 留下的)。
|
||||
@@ -93,7 +93,7 @@
|
||||
| `TASK-rectification-skipped-health-deadend-20260909.md` | `PROGRESS-rectification-skipped-health-deadend-20260909.md` | 真实用户:健康题「记不清」后职业答完即断(『没有拿到下一个问题』):holdout 的 `declined` 未归并 health/health_pressure,把跳过的健康线再问一次,撞同 id 焦点 `duplicate_focus` 静默;出口闸门把 `exhausted` 当已交付不修复;『重新加载』只重取快照 | 待执行 | `codex/rectification-skipped-health-deadend-20260909`(BUG-626~627) |
|
||||
| `TASK-rectification-domain-alias-audit-20260909.md` | `PROGRESS-rectification-domain-alias-audit-20260909.md` | 领域命名审计:健康线 `health`(账本/焦点)与 `health_pressure`(计划/引擎)在十处比较里六处未归并(holdout declined、reverse-verify、conflict probes、probeYearAlreadyCovered、引擎 oos_blind_prompts / _event_years / volunteered);职业线焦点存为 `other` 只靠 questionId 兜底。其余六领域三层同名无问题。决策:TS/Python 各一个归并函数 + 源码合同禁字面量比较 | 待执行 | `codex/rectification-domain-alias-audit-20260909`(BUG-628) |
|
||||
| `TASK-rectification-yearless-probe-downgrade-20260909.md` | `PROGRESS-rectification-yearless-probe-downgrade-20260909.md` | 产品拍板:无年月性格题(D9/D10 风格、月宿边界)降级为平局裁决——带年月题问完且候选仍分不开才问,分值减半(±1)、不计淘汰,报告标「参考」;三列卡性格描述不动;新增离线命中率测量脚本 + 导出 SQL(有出生证用户,聚合);Skill 10.0.21 | 已验收通过 | `fef54b6e`(BUG-629,Skill 10.0.21) |
|
||||
| `TASK-rectification-followups-20260909.md` | `PROGRESS-rectification-followups-20260909.md` | 验收补漏:申报时段拦截只看钟点样式,带钟点的经历(『20:00 左右分手』『3 点到 5 点被车撞』)会被吞(BUG-631);by_time 只算引擎前 9 个候选,一小时窗 17 个候选时卡片列写『还没对照』(BUG-632) | 待执行 | `codex/rectification-followups-20260909`(BUG-631~632) |
|
||||
| `TASK-rectification-followups-20260909.md` | `PROGRESS-rectification-followups-20260909.md` | 验收补漏:申报时段拦截只看钟点样式,带钟点的经历(『20:00 左右分手』『3 点到 5 点被车撞』)会被吞(BUG-631);by_time 只算引擎前 9 个候选,一小时窗 17 个候选时卡片列写『还没对照』(BUG-632) | 待验收 | `codex/rectification-followups-20260909`(BUG-631~632) |
|
||||
|
||||
### 聊天主链路与首页
|
||||
|
||||
|
||||
Reference in New Issue
Block a user