Problem
LibraryStore.crossRecordIssues 檢查歧異記錄的候選有沒有對應的記錄時,查找表 entityKeys 只有 person、work、organization、divergence 四種,沒有 venue(Sources/AkashicStoreIO/LibraryStore.swift 約 3035 行)。
#553 起 venue 是合法的候選形狀,所以任何含 venue 候選的歧異記錄,validate/doctor 都報成「歧異候選「venue 「k」」沒有對應的記錄」,並說 resolve-divergence 會擲找不到對應記錄。同一個 store 上 resolve-divergence --dry-run 其實成功。
這是誤報,而且恰好落在 #675 指路的流程上:使用者照 #565 的拒絕訊息走合併時,會同時看到這則互相矛盾的警告。
Type
bug
Expected
entityKeys 補上 .venue: Set(venues.map(\.key))。
- 補一支測試:store 裡有兩筆 venue 與一筆以它們為候選的歧異記錄時,跨記錄檢查不報懸空候選。
- 查一次同一張表還漏了哪些
EntityKind,以後新增形狀時要一起補(加一個 exhaustive switch 或反射測試)。
Actual
每一筆 venue 候選都被報成懸空。
Source: batch14 R1 verify(#675,devil's advocate 席,2026-09-29);在暫存 store 以真 binary 重現。既有缺陷,不在該批 diff 內。
Current Status
Phase: verified(b16v R1:沒有 HIGH;旁邊的 recordDivergence 查找表也改成窮舉 switch)
Last updated: 2026-09-30 by idd-update
Blocking
Commits
Problem
LibraryStore.crossRecordIssues檢查歧異記錄的候選有沒有對應的記錄時,查找表entityKeys只有 person、work、organization、divergence 四種,沒有 venue(Sources/AkashicStoreIO/LibraryStore.swift約 3035 行)。#553 起 venue 是合法的候選形狀,所以任何含 venue 候選的歧異記錄,
validate/doctor都報成「歧異候選「venue 「k」」沒有對應的記錄」,並說resolve-divergence會擲找不到對應記錄。同一個 store 上resolve-divergence --dry-run其實成功。這是誤報,而且恰好落在 #675 指路的流程上:使用者照 #565 的拒絕訊息走合併時,會同時看到這則互相矛盾的警告。
Type
bug
Expected
entityKeys補上.venue: Set(venues.map(\.key))。EntityKind,以後新增形狀時要一起補(加一個 exhaustive switch 或反射測試)。Actual
每一筆 venue 候選都被報成懸空。
Source: batch14 R1 verify(#675,devil's advocate 席,2026-09-29);在暫存 store 以真 binary 重現。既有缺陷,不在該批 diff 內。
Current Status
Phase: verified(b16v R1:沒有 HIGH;旁邊的
recordDivergence查找表也改成窮舉 switch)Last updated: 2026-09-30 by idd-update
Blocking
/idd-closeCommits
3270bd86c6893e00(R1 修正)