fix(rectification): narrate exhausted-probe adopt instead of keep-collecting
When leftover probes cannot split adjacent minutes, skip frameless follow-ups and let a no-tool agent explain the stop. Distinguish-card "no" no longer closes a whole evidence domain. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# PROGRESS · 采集题答「没有」后采用卡旁白(2026-09-04)
|
||||
|
||||
工作树:`.worktrees/rectification-adopt-narration-20260904`
|
||||
分支:`codex/rectification-adopt-narration-20260904`
|
||||
基线:任务书写 `origin/staging` `4d0a67a2`;开工时 `origin/staging` 是任务书提交 `fc5eca8c`。交付前已 `git fetch` 并快进合入 `cfa82499`(校正时间线 live 步骤 + 去掉「先这样」出口)。
|
||||
任务书:`docs/tasks/TASK-rectification-adopt-narration-20260904.md`
|
||||
未改 Python、未 bump Skill(仍 10.0.14)、未放宽采用门 / 确认门 / DB `target_domain` check。未提交、未 push。
|
||||
|
||||
| 任务 | 状态 | BUG |
|
||||
| --- | --- | --- |
|
||||
| 4.1 已丢弃区分探针不得绕过采用早退 | 完成 | BUG-519(任务书原写 516) |
|
||||
| 4.1.4 采用旁白 Agent + 模板停止原因兜底 | 完成 | BUG-519 |
|
||||
| 4.2 区分题答否不再关整条领域 | 完成 | BUG-520(任务书原写 517) |
|
||||
|
||||
## 编号
|
||||
|
||||
`cfa82499` 已占用 BUG-516~518。本单实际落点 BUG-519 / BUG-520。任务书第 7 节已补同步说明。
|
||||
|
||||
## 实现要点
|
||||
|
||||
- `rectificationFollowupCatalog` 的 `nakshatraProbe` 先过 `inspectDiscriminatorProbes`;无 `choice_frame` 的 nakshatra followup 进 `dropped_probes`(`not_renderable`)。
|
||||
- `isRemainingDiscriminatorFollowup` 对无 frame 的 distinguish 返回 false。`interviewToPersist` 对 **deferred** 只取可渲染 distinguish。
|
||||
- `persistableFocusDomain`:非白名单返回 `null`。原值 `"horary"` / 新值 `null` / 原因:DB check 不含 horary。无 frame 的 appearance distinguish:`skipped`、零次 RPC、不二次重试。
|
||||
- 采用旁白:`adoptDeliveryFacts` + `deliverAdoptNarration`(无工具;`HH:MM` / 四位年份 / 剩余整数含相对支持度必须能在事实里找到,否则整段丢弃)。三条入口都接了 writer。模板在 BUG-503 `stopReasonPrefix` 之后补「分不开 A 和 B」。与意图分类器相同,**不计费**。
|
||||
- 点选路径:`skippedNextInterview` 时保留 Agent 旁白,不用模板 `adoptionNarration` 覆盖。
|
||||
- `declinedDomains` 只把采集题(缺 intent 的旧行仍算采集)当成领域拒答。`dossierWithClosedFocus` 带 `intent`。
|
||||
|
||||
## 偏离
|
||||
|
||||
任务书验收句「`plan.next_followup` 与 `plan.deferred_followup` 均为 null 或均带 `choice_frame`」按字面会打断既有「adopt 本轮不提问、采集题进 deferred」不变量(`adopt_representative defers method follow-up`)。实际锁的是:**deferred 不得再放无 frame 的 distinguish**;采用轮仍可 stash 采集题。14 探针 fixture 按此断言。
|
||||
|
||||
既有「occupation collect denial advances to horary」:原值写 `p_target_domain=horary` / 新值不写 horary 采集焦点 / 原因同上 DB check。计划层仍可提出 horary,落库层不再写。
|
||||
|
||||
## 测试
|
||||
|
||||
- `tsc --noEmit`:0 错
|
||||
- `npm run lint`(`frontend/`):0 error,74 warning(既有,本单未新增 error)
|
||||
- 聚焦:`rectification-adopt-narration-20260904` 8/8;与 stall / server-focus / eight-method / provisional-adopt / adopt-flow-fix / answer-choice 合计 150/150
|
||||
- `tests/rectification-*.test.ts tests/agentic-rectification-*.test.ts tests/birth-time-rectification-contract.test.ts`:869 pass / 0 fail
|
||||
- 全量 `tests/*.test.ts`:2638 条。与 `next build` 并行时 3 条 Docker Postgres 测试因 migration/连接争用失败(billing-admin、foundation、model-configuration-security);隔离重跑这 3 个文件 11/11 通过。有效失败清单与 staging 一致(空)。本单新增 8 条,总数不低于 `cfa82499`。
|
||||
- `next build`:工作树 `frontend/node_modules` 是指向主仓的符号链接,默认 Turbopack 会报 symlink 出根。用 `NEXT_TURBOPACK_ROOT` 临时对齐 tracing root 后构建成功;`/` 仍是 `○` Static。`next.config.ts` 未改、未提交该 workaround。
|
||||
- 未改 Python;预检里的系统 Python / swisseph 噪音不当作本单回归。
|
||||
|
||||
## 改动文件
|
||||
|
||||
- 新增:`frontend/src/lib/rectification-agentic/v9/adopt-narration.ts`、`adopt-narration-agent.ts`、`frontend/tests/rectification-adopt-narration-20260904.test.ts`
|
||||
- 决策/落焦点:`method-followup.ts`、`decision-from-dossier.ts`、`answer-choice.ts`、`server-focus.ts`、`user-copy.ts`、`route.ts`
|
||||
- 回归:`rectification-collect-stall.test.ts`、`rectification-server-focus.test.ts`、`rectification-answer-choice.test.ts`
|
||||
- 文档:`docs/BUG_HISTORY.md`、`docs/testing/rectification-adopt-narration-20260904.md`、`docs/tasks/README.md`、`CHANGELOG.md`
|
||||
@@ -44,7 +44,7 @@
|
||||
| `TASK-rectification-adopt-flow-20260902.md` | — | 采用流程整治 | 已验收 | `35e5781e`(BUG-497~500) |
|
||||
| `TASK-rectification-adopt-flow-fix-20260903.md` | — | 采用流程修复单(含删「用这个时间看盘」) | 已验收 | `e8c98c37`(BUG-501/502) |
|
||||
| `TASK-rectification-uncertainty-stop-20260903.md` | — | 不确定度停止规则加样本下限 | 已验收 | `0c0df426`(BUG-503) |
|
||||
| `TASK-rectification-adopt-narration-20260904.md` | — | 探针池耗尽时采用卡旁白改 Agent 生成 + 已丢弃探针绕过 BUG-472 早退 + 区分题答否关线 | 待执行 | 基线 `4d0a67a2`,BUG-516 起 |
|
||||
| `TASK-rectification-adopt-narration-20260904.md` | `PROGRESS-rectification-adopt-narration-20260904.md` | 探针池耗尽时采用卡旁白改 Agent 生成 + 已丢弃探针绕过 BUG-472 早退 + 区分题答否关线 | 待验收 | 同步后基线 `cfa82499`,BUG-519 / BUG-520 |
|
||||
| `TASK-rectification-ux-20260902.md` | `PROGRESS-rectification-ux-20260903.md` | 会话面空白假死与交互摩擦 | 已验收 | `d159f08e`(09-03 在新基线重做后合入,BUG-505~509) |
|
||||
|
||||
### 聊天主链路与首页
|
||||
|
||||
@@ -114,7 +114,7 @@ npx tsx --test tests/*.test.ts 2>&1 | tail -12 # 记下开工时总数与失
|
||||
|
||||
## 7. BUG 编号起点
|
||||
|
||||
开工时核对 `docs/BUG_HISTORY.md` 最大号;截至本单撰写为 **BUG-515**,本单从 **BUG-516** 起。
|
||||
开工时核对 `docs/BUG_HISTORY.md` 最大号;截至本单撰写为 **BUG-515**,本单从 **BUG-516** 起。同步 `origin/staging` `cfa82499`(2026-09-04)后,BUG-516~518 已被时间线/选择题 UX 单占用;本单实际落点为 **BUG-519**(原 516)与 **BUG-520**(原 517)。
|
||||
|
||||
## 8. 真实环境复核清单(实现者做不了的,交给产品负责人)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user