[错误]:索引主键忽略了应用程序/项目范围 — 项目中相同的 entry_id 会默默覆盖行
作者: TaylorChen创建于 2026年9月15日更新于 2026年9月15日
`episode`/`atomic_fact`/`foresight`/`agent_case` 行使用 `id = f"{owner_id}_{entry.entry_id}"` 作为它们的 LanceDB 主键,但 `entry_id` (`<prefix>_<YYYYMMDD>_<NNNN>`) 仅在 **每个 Markdown 文件中** 是唯一的。同一位所有者在两个不同的 `project_id` 下写入同一天,因此产生了相同的 `entry_id` → 相同的主键 → 第二次插入 **覆盖** 第一行。结果是索引损失: Markdown 源中存在的条目从索引中缺失,而 `cascade` 仍然报告 `healthy / pending=0`。更糟糕的是,一个项目中的查询可以返回 **另一个项目的内容** 对于该 ID。
内容来源: EverMind-AI/EverOS