fix(rectification): ingest first-turn events without dropping day precision or claiming a unique minute
SQL kinds now match the TypeScript ledger so batch ingest can confirm dated events. Confirm no longer burns the opening focus, recap uses server date labels, and the Agent sees indistinguishable width instead of a fake unique minute. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4298,3 +4298,51 @@
|
||||
- 相关记录:BUG-286(prompt 摘录,不靠发版修调用)、BUG-284(方法论随工具结果交付)
|
||||
- 复发自:无
|
||||
- 修复版本:待提交
|
||||
|
||||
## BUG-288 | 生时校正一句多事件首轮未能纳入校正依据
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-08-19
|
||||
- 最近更新:2026-08-19
|
||||
- 影响面:V10 `rectification-propose-evidence` / `rectification-confirm-evidence` / `record_agentic_rectification_evidence_batch`、Activity「整理事件证据」、新 Case 绑定 `jyotish-birth-time-rectification@10.0.1`
|
||||
- 用户现象:用户在一句里说出两件带日期的清楚事件后,Activity 显示整理事件证据未完成,事件没有进入校正账本。
|
||||
- 触发条件:当前轮用户消息包含两件可拆分事件;模型按旧提示逐条 propose+confirm,或使用 `education_milestone` 等 TS 有、SQL CHECK 没有的 kind。
|
||||
- 根因:系统提示要求同轮逐条 propose+confirm;`confirm_agentic_rectification_evidence_v10` 会在第一条确认时 resolve 无目标证据的 opening focus,第二条变成 `focus_not_active`。`propose` 在 quote 不匹配时 raise,整轮失败。表 CHECK / batch allowlist 比 TS `EVIDENCE_KINDS` / `EVIDENCE_DOMAINS` 更窄,工具层过了、插入失败。批量路径本可按项原子写入并直接 confirmed。
|
||||
- 修复:SQL kind/domain/precision 与 TS 对齐;propose 对 `quote_not_grounded` / `invalid_item` 返回结构化失败;confirm 允许省略 focusId,且不 resolve opening focus;新事件只走 batch;quote 规范化额外去掉 ASCII `,!.;:?`。新增 Skill `10.0.1`。不改 10.0.0 包哈希。
|
||||
- 验证:`frontend/tests/rectification-ingest-p0.test.ts`、`frontend/tests/rectification-ingest-p0-database.test.ts`(有 Docker 时)、kind allowlist 两边一致、propose 结构化拒绝且 receipt 为 completed、confirm 可无 focusId。
|
||||
- 防复发:一句两件及以上事件不得再要求逐条 propose+confirm;SQL CHECK 必须覆盖 TS 枚举;quote 失败不得整轮 throw。
|
||||
- 相关记录:BUG-174、BUG-175
|
||||
- 复发自:无
|
||||
- 修复版本:待提交
|
||||
|
||||
## BUG-289 | 用户确认日后正文把日级说成年级
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-08-19
|
||||
- 最近更新:2026-08-19
|
||||
- 影响面:生时校正证据投影、`display_date_label`、Skill/系统提示复述规则、`revise_agentic_rectification_evidence`
|
||||
- 用户现象:用户确认一件日级事件后,公开正文写成「年份已确定为 YYYY」,精度被说粗。
|
||||
- 触发条件:账本已有 `date_precision=day` 且 `occurred_from` 为具体日期;用户回复「是 / 对」。
|
||||
- 根因:confirm RPC 本来不改日期;Dossier 虽有精度字段,投影和 Skill 没有强制复述必须与服务器精度同级。模型把日级复述降成年。
|
||||
- 修复:证据投影增加只读 `display_date_label`(日级 `YYYY-MM-DD`,禁止格式化成年);Skill 与系统提示要求复述用该标签;用户确认不得改 `date_precision`;revise 在更粗且 quote 没有更粗日期表达时拒绝 `precision_downgrade`。
|
||||
- 验证:日级 label 契约测试;confirm 工具不传日期字段;Docker 下「是」修订年级被拒绝且行仍为 day。
|
||||
- 防复发:公开复述不得使用模型自拟年份句;日级 label 不得含「年份」。
|
||||
- 相关记录:BUG-288
|
||||
- 复发自:无
|
||||
- 修复版本:待提交
|
||||
|
||||
## BUG-290 | 生时校正不可分平台未作为服务器字段交给 Agent
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-08-19
|
||||
- 最近更新:2026-08-19
|
||||
- 影响面:`latest_result` 工具投影、`candidate-comparison.md`、系统提示第 9 条
|
||||
- 用户现象:对照里网页已能说出代表性分钟和约 25 分钟不可分区间,但该宽度不是 Agent 必读的服务器字段,后续容易学成本地 1 分钟尖峰。
|
||||
- 触发条件:v5 打分器返回 top 簇 `tied_minute_count` 很大、公开候选约 04:45/46/47。
|
||||
- 根因:投影只有 `confirmation_allowed` / 代表时间,没有 `indistinguishable_width_minutes`;Skill 未把「宽度 > 5 或 top tied > 1 必须说不可分区间」写成硬合同。
|
||||
- 修复:投影增加 `indistinguishable_width_minutes`;宽度大于 `maxConfirmationWidthMinutes`(5)时投影层关闭 `confirmation_allowed`;Skill 与提示词要求说不可分区间 / 代表性候选,不得说已定位到唯一分钟。v5 打分器不改。
|
||||
- 验证:04:45/46/47 且 tied=25 时宽度 ≥ 25 且 `confirmation_allowed=false`;禁止该夹具下 `confirmation_allowed=true`。
|
||||
- 防复发:平台结果不得把代表分钟说成唯一出生分钟;宽度字段必须随 `latest_result` 交给 Agent。
|
||||
- 相关记录:BUG-288、BUG-289
|
||||
- 复发自:无
|
||||
- 修复版本:待提交
|
||||
|
||||
Reference in New Issue
Block a user