fix(rectification): keep invite collect CHECK-legal after kind mapping (BUG-656)
Full TAP failed because invite_more is not a target_kind enum value, and exhaustion re-decide after skipped targeted persist must reuse decideAfterInferenceChange. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+2
-2
@@ -10207,8 +10207,8 @@
|
||||
- 触发条件:下一问是定向 / 锚定 / 通用采集,`kind_hint` 为 `targeted:<domain>`、`anchor:…` 或 `generic:…`。
|
||||
- 根因:`targetKind` 直接写入 `kind_hint`,违反 `target_kind` CHECK;插入失败后 persist 返回 `skipped`,定向题从未成为活动焦点。
|
||||
- 修复:写库前经 `collectFocusTargetKind` 映射到 CHECK 枚举(产品别名 `relationship_change`→`relationship_start`、`education_milestone`→`education_start`);原 `kind_hint` 写入 `expected_answer_schema.collect_kind`;读取侧先读 `collect_kind` 再回退旧字段。不放宽 CHECK、不加迁移。
|
||||
- 验证:`frontend/tests/rectification-server-focus.test.ts` 用真实 CHECK 列表断言三类 followup 的 `targetKind` 合法且 `status=created`;`rectification-probe-pool-exhausted-20260911.test.ts` 第六题后定向题成为活动焦点。
|
||||
- 防复发:采集焦点 `target_kind` 必须落在 CHECK 列表内;`kind_hint` 原值只进 schema,不进列。
|
||||
- 验证:`frontend/tests/rectification-server-focus.test.ts` 用真实 CHECK 列表断言三类 followup 的 `targetKind` 合法且 `status=created`,`invite_more` 写 `target_kind=null` + `collect_kind`;`rectification-probe-pool-exhausted-20260911.test.ts` 第六题后定向题成为活动焦点。门禁跟进:家人拒答后的邀请 persist 与 idle `decideFromDossier` 源码锁仍通过。
|
||||
- 防复发:采集焦点 `target_kind` 必须落在 CHECK 列表内或为 null;`kind_hint` 原值只进 schema,不进列。`invite_more` 等非枚举 hint 不得写进 `target_kind`。
|
||||
- 相关记录:BUG-648、BUG-442、BUG-658
|
||||
- 复发自:BUG-648(采集题号可重试,但 kind 仍未映射到表约束)
|
||||
- 修复版本:待发布
|
||||
|
||||
Reference in New Issue
Block a user