fix(rectification): compare health and occupation aliases through one merge (BUG-672)
Skipped or already-reported health must not be asked again as health_pressure, and occupation declined as other must still close the occupation line. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# PROGRESS · 领域别名归并(2026-09-13)
|
||||
|
||||
工作树:`.worktrees/rectification-domain-alias-audit-20260913`
|
||||
分支:`codex/rectification-domain-alias-audit-20260913`
|
||||
任务书:`docs/tasks/TASK-rectification-domain-alias-audit-20260909.md`
|
||||
基线:开工时 `origin/staging` @ `99127601`
|
||||
|
||||
## 开工回执
|
||||
|
||||
- 目标:健康 `health` ≡ `health_pressure`、职业焦点 `other` + `collect:occupation:` ≡ `occupation`,比较只走一处归并。
|
||||
- 编号:任务书写 BUG-628,但该号已被「口述采集没有/记不清按钮」占用;当前最大 BUG-671,本单用 **BUG-672**。
|
||||
- 串行:BUG-626 决策 1(holdout declined 归并)已在 staging。本单补 H3/H4/H5/H6/H7/H8/H9/O1,H1/H2/H10 改走同一函数。
|
||||
- H8 口径:BUG-641 已删 Python `VOLUNTEER_ONLY`;D30 是否进入剩余分盘对照仍看 TS `remainingVargaSplits` 的 volunteered 集合。归并后账本 `health` 会让 D30 进入该集合。这是原设计,不是新行为。Skill 不 bump。
|
||||
|
||||
## 已完成
|
||||
|
||||
- **5.1** `v9/domain-alias.ts`:`canonicalCollectDomain` / `sameCollectDomain` / `declinedHasDomain`。`method-followup.ts` 的 declined、reverse-verify、conflict、probeYearAlreadyCovered、holdout occupied/declined、`hasConfirmedHealth` / `declinedHealth` 薄封装都经它。`candidate-contrast-packet.ts` 的 D30 提及、账本 year 键、dated/volunteered 域同样归并。职业拒答(`other` + `collect:occupation:`)进入 `declined.has("occupation")`,事业未覆盖时职业方法记为已覆盖、不再派职业题。
|
||||
- **5.2** Python `canonical_domain`;`_event_years`、`oos_blind_prompts.covered` 经它。`_probe_domains` 在 d30 剩余层时仍给出 `health_pressure`;账本 `health` 2024-10 阻断该年健康探针。
|
||||
- **5.3** `frontend/tests/rectification-domain-alias-audit-20260913.test.ts` 锁 `method-followup.ts` 不得出现字面量 `"health"`。
|
||||
- **5.4** BUG-672、CHANGELOG、CONTEXT 术语表、本文件、任务板改待验收。
|
||||
|
||||
## 验收命令
|
||||
|
||||
- `./node_modules/.bin/tsc --noEmit`:0 错
|
||||
- `npm run lint`:0 error(120 warning,既有)
|
||||
- 相关 TAP:`tests/rectification-*.test.ts`(排除 database)**1186 / 1186**;新文件 `rectification-domain-alias-audit-20260913.test.ts` 10/10
|
||||
- Python:`tests/test_rectification_event_probes.py` 全文件通过(含 DomainAliasTests);`tests/test_rectification_v5_services.py` 40/40
|
||||
- `next build --webpack`:`/` 仍 Static;`rootMainFiles` gzip-9 **130934 B**(与 `99127601` 相同,0.000%)
|
||||
- 未改 Skill、未改 DB、未改采用/确认门
|
||||
- 未做登录态真机走查
|
||||
|
||||
本单状态:**待验收**。未 commit / 未 push。
|
||||
@@ -91,7 +91,7 @@
|
||||
| `TASK-rectification-history-open-20260909.md` | `PROGRESS-rectification-history-open-20260909.md` | 历史生时校正打不开:`open_agentic_rectification_case_v2` 把 Case 绑定 Skill 身份与当前注册版本做相等比较,两天内 10.0.15→10.0.19 五次 bump 让所有旧 Case 被拒;错误码未映射成 500;错误只画在首页卡下 → 表现为点了没反应。决策:session 打开用绑定身份(v1 取 Case → 读身份 → 注册表核验 → v2),不改迁移 | 已验收通过 | `a31a5e24`(BUG-621) |
|
||||
| `TASK-rectification-window-cluster-cap-20260909.md` | `PROGRESS-rectification-window-cluster-cap-20260909.md` | **P0** 真实用户:一小时窗口分 17 个签名簇,`select_signature_representatives` 按时间取前 12 个,14:40 之后整簇丢弃(本机复现表);区间按代表分钟跨度而非簇覆盖;中途说出真实时段时助手口头答应却未改 → 改为固定回复"范围开始时按资料定、中途不改"(产品否决口头改范围);intake 自定义范围等产品答复 | 已验收通过(申报拦截误伤经历 → BUG-631;intake 自定义范围等产品) | `6008c07c`(BUG-623~625,Skill 10.0.20) |
|
||||
| `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-domain-alias-audit-20260909.md` | `PROGRESS-rectification-domain-alias-audit-20260913.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-20260913`(BUG-672;任务书写 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-evidence-turn-empty-answer-20260910.md` | `PROGRESS-rectification-evidence-turn-empty-answer-20260910.md` | 证据轮模型无正文被判整轮失败:证据、评分、下一问都已落库却只剩『没有拿到下一个问题』(BUG-633);答题旁白只说『范围没变』、时间线写死『还在收窄』(BUG-634) | 待验收 |
|
||||
|
||||
Reference in New Issue
Block a user