Files
Genarrative/apps
lhk229 31ebe4c78c
Project CI / Repository checks (push) Failing after 3m37s
Project CI / Frontend tests (push) Failing after 5m42s
Project CI / Backend tests (push) Failing after 5m40s
Project CI / Native shell tests (push) Failing after 5m27s
修复残留问题 (#192)
agent.db 是纯 append、全仓没有 rotation,而有界尾窗的记录数上限(16384)比写侧
的扫描上限(100 万)低两个数量级。截断掐掉的永远是更旧的记录,所以「命中」与截
断无关;只有「没命中」时才真的分不清「没写过」和「没看见」。

- plan_gdd_decision_audit_state_locked:截断判断从遍历前的无条件 Err 挪到遍历后、
  且只在没命中时报。原先任何写够记录的项目都会永久停在 needs-reconciliation——
  audit 明明就在窗口里,函数照样报错,文案还指向「identity 不一致」。
- approval_terminal_observation_exists_locked:不再把截断位丢给 `_`。没命中且截
  断时返回 Err 而不是 Ok(false),交给调用方既有的具名 projection gap 分支,不再
  让一次视野缺失冒充恢复缺口被反复重放。
- 收束闸 Err 分支标题改为「Fast GDD decision audit 无法确认」。Err 现在有 identity
  冲突和尾窗截断两种来源,具体原因由 detail 里的 error 原文给出。
- AGENT_DB_MAX_BOUNDED_RECORDS 改 pub(crate),让回归测试能精确把 fixture 撑过截
  断线,不必在测试里埋魔数。

新增 truncated_tail_scan_still_confirms_records_inside_the_window 钉住这两处:把
任一处改回旧行为都会让它失败。

recovery_scan.rs 的七槽审计是同样的形状,但它断言的是精确基数而非存在性,截断确
实证不了基数,另行处理。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: 段舒康 <kdletters@qq.com>
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/192
Co-authored-by: 孔令弘 <ink29535@proton.me>
Co-committed-by: 孔令弘 <ink29535@proton.me>
2026-08-25 14:27:31 +08:00
..