fix(rectification): keep an open out-of-sample A–D card tappable
Independent Staging Quality Gate / validate (push) Successful in 11m52s
Independent Staging Quality Gate / publish (push) Successful in 1m46s

GET was dropping choice_card when the recast had no choice_frame, so the
embedded options rendered disabled. Replay the persisted reverse-verify /
out-of-sample schema instead of silencing the live question.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-03 15:30:49 +08:00
parent 74aaa1ba99
commit 591ffd21a1
6 changed files with 223 additions and 6 deletions
+16
View File
@@ -7856,3 +7856,19 @@
- 相关记录:BUG-505
- 复发自:无
- 修复版本:待发布
## BUG-510 | 采集阶段盘外核对选择题画出 A–D 却点不了
- 状态:resolved
- 首次发现:2026-09-03
- 最近更新:2026-09-03
- 影响面:`projectRectificationChoiceCard`、GET `/api/rectification/cases/[caseId]` `choice_card``rectification-agentic-chat` 内嵌卡
- 用户现象:助手记下带月份的职场事后,下面出现「某年前后,有没有开始一段认真关系、分手或结婚?」和 A–D,点任何一项都没有反应。`current_question` 已是选择题,`choice_card` 为 null。
- 触发条件:采集阶段已有带年份事件,下一问是 `intent=out_of_sample_check` 的四点选存在性题;schema 有合法 A–D,但没有 `probe_year`。该回合未调用 `rectification-set-focus`,题目由 idle persist 挂到最后一条助手消息。`selection_allowed` 仍为 false(采用门,不是点选门)。
- 根因:keep 路径 `forceChoice` 会尝试重铸 `choice_frame`。缺 `probe_year``hypothesisFor` 没有具体时期,frame 为空,GET 按设计把 `choice_card` 置空。界面仍从 turn 上的 `question.options` 画出 AD,但 `liveQuestion` 要求 GET 卡与 `focus_id` 一致,`disabled={!liveQuestion}``submitChoice` 在没有 `choiceCard` 时直接 return。
- 修复:`projectRectificationChoiceCard` 在重建 followup 没有 `choice_frame` 时,若当前焦点已是 `reverse_verify` / `out_of_sample_check` 且 schema 能解析出四点选,按已持久化文案投影 `choice_card`。口述采集 schema 仍不发卡。未放宽区分题身份校验,未打开 `selection_allowed`
- 验证:`rectification-choice-card` 锁定无 `probe_year` 的盘外存在性卡仍可投影、口述采集盘外题仍不发卡;`rectification-agentic-entry` 锁内嵌卡 `disabled={!liveQuestion}` 且点选要求 GET 卡 `focus_id` 一致。
- 防复发:GET 已有合法持久化 reverse_verify / out_of_sample_check 四点选 schema 时,不得因重建缺 `choice_frame``choice_card` 置空。界面画出 A–D 时 GET 必须给出可点的卡。不得把 `selection_allowed` 当成 A–D 点选门。不得从题干正则反推年份。
- 相关记录:BUG-416、BUG-431、BUG-498
- 复发自:BUG-431
- 修复版本:待发布