feat(rectification): 删掉年月录入卡,年月阶段打字回答且不被追问覆盖
This commit is contained in:
+67
-2
@@ -11725,8 +11725,8 @@
|
||||
- 根因:提交文本直接拼 `KIND_ORAL[domain]`,而 `KIND_ORAL` 是**题干用的例子列表**,不是事件描述。
|
||||
- 修复:改成「YYYY 年 M 月(D 日),<领域标签>方面有一件事」,标签取 `RANGE_DELIVERY_DOMAIN_LABEL`;文本里不再出现「或」。
|
||||
- 验证:`frontend/tests/rectification-guided-collect-20260916.test.ts` 断言提交文本与「不含『或』」。
|
||||
- 防复发:任何写进账本的用户文本都不得复用题干的例子列表。
|
||||
- 相关记录:BUG-740、BUG-749
|
||||
- 防复发:任何写进账本的用户文本都不得复用题干的例子列表。2026-09-16 录入卡按产品决策删除,本条防复发仍适用于任何用户可见文本。
|
||||
- 相关记录:BUG-740、BUG-749、BUG-908
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
@@ -11779,3 +11779,68 @@
|
||||
- 复发自:BUG-713
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-908 | 年月阶段焦点题干被模型追问覆盖,下面还挂着录入卡
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-16
|
||||
- 最近更新:2026-09-16
|
||||
- 影响面:`spoken-prompt.ts` `withSpokenPrompt`、`turn-decision.ts` `projectCurrentQuestion`、录入卡组件(已删)、Skill 10.0.29
|
||||
- 用户现象:定向健康题答 A 后打字给了年月,助手追问「是你本人做的吗」,追问句下面还挂着「哪一类事 + 发生年月」录入卡。
|
||||
- 触发条件:活动焦点题号是 `collect:targeted:<domain>:year` 或 `collect:guided:window:…:year`,模型用同号 `set-focus` 覆盖 `prompt`。
|
||||
- 根因:BUG-673 只保护了 `targeted_collect` 存在题;年月阶段 schema 会被 `withSpokenPrompt` 整段换成模型的话。产品同时拍板:录入卡整个删掉,年月阶段改打字。
|
||||
- 修复:年月阶段以题号 `stage === "year"` 识别,只写 `spoken_prompt`、不动 `prompt`。投影只用服务器题干。删除 `EventDateEntryCard` / `EventDatePicker`。选项 A 改「有,我来说」。Skill 10.0.29。
|
||||
- 验证:`frontend/tests/rectification-year-focus-overlay-20260916.test.ts`。
|
||||
- 防复发:年月阶段识别以题号前缀为准,与 BUG-673 同口径。不得再引入第二套录入入口。
|
||||
- 相关记录:BUG-673、BUG-750
|
||||
- 复发自:BUG-673
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-909 | 事件入账后年月焦点没有关闭
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-16
|
||||
- 最近更新:2026-09-16
|
||||
- 影响面:`resolveActiveCollectFocusAfterEvidence`、`pendingTargetedYearDomain`、`rectification-record-evidence-batch`、`rectification-propose-evidence`
|
||||
- 用户现象:时间轴已「记下了」年月事件,画面仍停在该领域的年月题。
|
||||
- 触发条件:存在题答 A 落后年月焦点,用户打字给带年月事件。
|
||||
- 根因:回放显示两条都要修。(a) batch 原先只在 `isCollectFocusSchema` 时 resolve,年月题号要按前缀识别;(b) `pendingTargetedYearDomain` 在存在题 resolved 后只要 year 题未关就会再出,即使账本已有该领域带年月事件。单条 `propose-evidence` 原先不 resolve。
|
||||
- 修复:抽 `resolveActiveCollectFocusAfterEvidence`,batch 与 propose 共用;`isCollectFocusSchema` 或 `:year` 题号都 resolve。`pendingTargetedYearDomain` 把 `coveredCollectKinds` 也算 yearClosed(`health` 别名走 `canonicalCollectDomain`)。
|
||||
- 验证:overlay 测试「dated evidence closes the year stage」与 persist collect schema。
|
||||
- 防复发:两条写入路径必须走同一段 resolve;该领域已有带年月事件不得再出 `:year`。
|
||||
- 相关记录:BUG-908
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-910 | 年月阶段收到无年月短句会烧完步骤上限
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-16
|
||||
- 最近更新:2026-09-16
|
||||
- 影响面:`agent-run.ts` host 前置、`year-entry-host.ts`
|
||||
- 用户现象:对着追问回「是/不是」一类短句,整轮报「本轮达到步骤上限」。
|
||||
- 触发条件:活动焦点是年月阶段,用户消息没有 `19xx/20xx` 或「x 年」。
|
||||
- 根因:模型拿到「有年份走 batch,否则再问」的 hint,短句写不进、set-focus 同号幂等,循环到 8 步没正文。完整 agent 循环未在单测里复现(记防御性前置)。
|
||||
- 修复:日期可靠性分类器之后、计费之前,host 以服务器题干再问一次,不进模型、不扣点。焦点保持原样,失败轮不会只关掉年月题。
|
||||
- 验证:`shouldHostReaskYearEntry` 与 agent-run 源码顺序断言。
|
||||
- 防复发:年月阶段无年份短句不得进模型。`applyHostFallback` 条件未改。
|
||||
- 相关记录:BUG-908
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-911 | 独立问题块与助手正文不在同一条左边线
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-16
|
||||
- 最近更新:2026-09-16
|
||||
- 影响面:`globals.css` `.rectification-message-question.is-standalone`、`rectification-agentic-chat.tsx`
|
||||
- 用户现象:消息外的 persisted 问题块题干顶到左边。
|
||||
- 触发条件:`questionGap === "persisted_question"` 的独立块。
|
||||
- 根因:独立块没有 `--assistant-content-inset`。
|
||||
- 修复:独立块加 `is-standalone`,`margin-inline-start: var(--assistant-content-inset)`;块内 embedded 点选卡 inset 归零。
|
||||
- 验证:overlay CSS 声明断言。
|
||||
- 防复发:独立问题块必须与助手正文共用同一 inset token。
|
||||
- 相关记录:BUG-908
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# 进度 · 删掉录入卡 + 年月阶段焦点被模型追问覆盖(2026-09-16)
|
||||
|
||||
基线:`origin/staging` @ `abcfdac5`(任务书含产品追加拍板)。
|
||||
分支:`codex/rectification-year-focus-overlay-20260916`。
|
||||
BUG:908~911(任务书预留;仓库最大号当时是 753,906/907 给控制台噪音单)。
|
||||
Skill:10.0.29,sha256 `750a0d58c6731c0dbdeb5c785cea1bf8a3f73aaf94a560a86397805b7037724c`。
|
||||
|
||||
## 做了什么
|
||||
|
||||
- **T0**:删除 `event-date-entry-card.tsx` / `event-date-picker.tsx` 及 `.rectification-event-entry*` CSS。`event_date_entry` 不再写入 schema。年月题号保留,题干「大概哪年几月?」,用户打字答。选项 A「有,我来说」。`git grep` `event_date_entry|EventDateEntryCard|EventDatePicker|rectification-event-entry` 在 `frontend/src` **0 命中**。
|
||||
- **T1 / BUG-908**:`withSpokenPrompt` 以题号 `stage === "year"` 只写 `spoken_prompt`。`projectCurrentQuestion` 年月阶段只用服务器 `prompt`。hint 与 Skill 禁止追问本人。
|
||||
- **T2 / BUG-909**:回放定两条都要修。(a) persist 的年月焦点已是 `isCollectFocusSchema`,但 resolve 仍按题号前缀补一层;(b) `pendingTargetedYearDomain` 把已覆盖领域算 yearClosed(`health` → `health_pressure`)。`resolveActiveCollectFocusAfterEvidence` 给 batch 与 propose 共用。
|
||||
- **T3 / BUG-910**:host 前置接无年月短句,不进模型、不扣点。完整 8 步循环未做成 live agent 回放,前置作为防御;失败轮不 resolve 焦点。状态仍记 `resolved`(用户可见路径已接住)。
|
||||
- **T4 / BUG-911**:独立问题块 `is-standalone` 与助手正文共用 `--assistant-content-inset`。
|
||||
- **T5**:BUG_HISTORY / CHANGELOG / DESIGN / VOICE / 真机清单 / 本进度。
|
||||
|
||||
## 测试
|
||||
|
||||
| 项 | 结果 |
|
||||
| --- | --- |
|
||||
| `tsc --noEmit` | 0 错 |
|
||||
| 改动文件 `eslint` | **0 error** / 34 warning(全是既有 unused / hooks) |
|
||||
| `Home()` growth | useState / useRef / 行数护栏全绿 |
|
||||
| overlay + guided + 先前红的 Skill 版本合同 | **50 passed / 0 fail** |
|
||||
| `rectification-*.test.ts` + skill-registry + home-shell(concurrency=1) | 1330 条:修完 Skill 正文 `version:` 断言后,内容失败为 0。剩 **5 条 Windows EPERM symlink**(skill-registry 4 + `rectification-v9-agent.test.ts` 导入时建 runtime alias),Linux CI 不受影响。hash / 版本解析合同已绿。 |
|
||||
| 全量 `npm test` / `npm run lint` | 本机并发 OOM,未拿全量数字。失败清单里与本单相关的 Skill `10.0.28` 正文断言已改到 `10.0.29`(原值/新值/原因写在测试旁)。 |
|
||||
| `next build` | worktree 的 `node_modules` 是指向主检出的 junction:Turbopack 拒收;webpack 编译 + tsc 通过,收集 `/api/consult` 页数据时同样 EPERM symlink。**`/` Static 与首屏 gzip 留给 Gitea 门禁**。删除两张录入卡,gzip 只应降不应升。 |
|
||||
| Python | 未改,不跑快速门。 |
|
||||
|
||||
## 环境缺口
|
||||
|
||||
- Windows 无管理员/开发者模式 symlink:`skill-registry` 与 Skill runtime alias。Gitea 跑 Linux。
|
||||
- 真机清单:`docs/testing/rectification-year-focus-overlay-20260916.md`。
|
||||
@@ -101,7 +101,7 @@
|
||||
| `TASK-rectification-superseded-focus-duplicate-20260910.md` | `PROGRESS-rectification-superseded-focus-duplicate-20260910.md` | P0:一轮两次 batch 让感情采集题被顶替成 superseded 行;题号唯一约束含已结束行、汇总只聚合 declined/skipped,计划层看不见→撞号 `duplicate_focus` 被当「已问过」→出口误走交付旁白无卡(BUG-644);交付口吻与 `can_adopt=false` 矛盾(BUG-645) | 待验收(环境缺口:`next build` / 真人走查) | `a3a51c32`(BUG-644/645) |
|
||||
| `TASK-rectification-exhausted-gate-exit-20260910.md` | `PROGRESS-rectification-exhausted-gate-exit-20260910.md` | 五领域全拒答 + 三件带月经历:门槛句后无载体、客户端误报「没有拿到下一个问题」并循环「接着问」(BUG-646);第三件被留作 holdout 导致永远没有选择题(BUG-647)。含产品建议:一次性开放追问 + 终态标记 + 穷尽后释放 holdout | 已被取代(并入采集重设计单) | — |
|
||||
| `TASK-rectification-collection-redesign-20260910.md` | `PROGRESS-rectification-collection-redesign-20260910.md` | 产品口径:用户先说、系统从已说的事锚定追问、不得用生日推年份、不得说「领域」、永远交付结果。无固定题数:收集问题池按信息价值排序问到训练门开;选择题问到收敛门开或增益见底;门关不出结果只出精确缺口句并保持开放;≥4 件才留 holdout;撤回 BUG-642 年份线索、BUG-646 单终态与「暂定采用」;Skill 10.0.23(BUG-646~648) | 待验收 | `dd8f35f7` |
|
||||
| `TASK-rectification-year-focus-overlay-20260916.md` | `PROGRESS-rectification-year-focus-overlay-20260916.md` | 真机:定向健康题选 A 后打字给年月,助手追问「是你本人做的吗」,追问句下面挂着录入卡(`set-focus` 同号覆盖年月焦点题干、`event_date_entry` 仍在,BUG-908);事件入账后年月焦点没关(BUG-909,回放定 resolve 还是计划层);答短句撞「本轮达到步骤上限」(BUG-910,host 前置接无年月短句,先 investigating);persisted 问题块无 `--assistant-content-inset`(BUG-911)。**产品追加拍板:「哪一类事 + 发生年月」录入卡整个删掉,年月阶段直接打字(推翻 precision-gate 单 T3 与 SKILL.md:84)**。主体默认本人不追问,Skill 10.0.29 | 待领取 | — |
|
||||
| `TASK-rectification-year-focus-overlay-20260916.md` | `PROGRESS-rectification-year-focus-overlay-20260916.md` | 真机:定向健康题选 A 后打字给年月,助手追问「是你本人做的吗」,追问句下面挂着录入卡(`set-focus` 同号覆盖年月焦点题干、`event_date_entry` 仍在,BUG-908);事件入账后年月焦点没关(BUG-909,回放定 resolve 还是计划层);答短句撞「本轮达到步骤上限」(BUG-910,host 前置接无年月短句,先 investigating);persisted 问题块无 `--assistant-content-inset`(BUG-911)。**产品追加拍板:「哪一类事 + 发生年月」录入卡整个删掉,年月阶段直接打字(推翻 precision-gate 单 T3 与 SKILL.md:84)**。主体默认本人不追问,Skill 10.0.29 | 待验收 | `codex/rectification-year-focus-overlay-20260916` |
|
||||
|
||||
### 聊天主链路与首页
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# 真机清单 · 年月阶段口述(2026-09-16)
|
||||
|
||||
在 staging 已登录账号上走一遍。不要用真实出生资料以外的生产用户。
|
||||
|
||||
1. 开一段新的生时校正,答到定向健康题「身体上有没有过住院、手术……」。
|
||||
2. 点 A「有,我来说」。下面应出现一句「大概哪年几月?」,**没有**「哪一类事」芯片,也**没有**年/月选择器。
|
||||
3. 在输入框打字给一件带年月的事(例如「2019年3月做过手术」)。助手只说「记下了」一类承接,**不追问**「是不是你本人」。
|
||||
4. 若仍口头追问了别的,回一句「是」或「不是」:不应出现「本轮达到步骤上限」。
|
||||
5. 任何独立问题块(题干,如还有点选卡)左边线与助手正文对齐。
|
||||
Reference in New Issue
Block a user