fix: tolerate runtime schema drift

This commit is contained in:
Yoilun
2026-05-25 18:43:46 +08:00
parent bb8b8fe732
commit 69e1af7a17
8 changed files with 313 additions and 25 deletions

View File

@@ -28,5 +28,7 @@
- 所有推断状态必须显示来源和置信度。
- UI 全中文,技术缩写保留英文。
- Phase 3 使用纯 Go `modernc.org/sqlite v1.35.0` 读取 SQLite避免 CGO 运行时依赖,并保持项目 `go 1.22` 兼容。
- SQLite 文件不存在时返回空列表和 `sqlite_missing`/`low` 来源证据;仅 state 或仅 goals 缺失时返回 `sqlite_partial` 聚合证据,并在 `sources.state` / `sources.goals` 分别标注缺失或只读来源。
- SQLite 文件不存在时返回空列表和 `sqlite_missing`/`low` 来源证据;仅 state 或仅 goals 缺失时返回 `sqlite_partial`/`medium` 聚合证据,并在 `sources.state` / `sources.goals` 分别标注缺失或只读来源。
- Runtime SQLite 读取先检查 `PRAGMA table_info`;缺关键列时对应表返回空列表和 `sqlite_schema_drift`/`low` 证据可选列缺失、NULL 值和数值类型字段不导致 Snapshot 失败。
- Workflow store 未配置 runtime reader 时返回空视图和 `runtime_missing`/`low` 证据,不 panic、不让 API 500。
- 动态工作流事件从 threads、spawn edges、goals、`task_plan.md` 证据构建,不假设固定角色顺序。