新增: TaskRecord加output_json产出字段+V17迁移(决策a AiNode自审闭环)

This commit is contained in:
2026-06-16 22:29:21 +08:00
parent b5a9557b50
commit 539b5ed63e
7 changed files with 45 additions and 11 deletions

View File

@@ -34,7 +34,7 @@ pub fn run(conn: &Connection) -> Result<()> {
// 迁移步骤链: 顺序执行,跳过已应用的版本(current_version < N 才跑)。
// 新增版本时,在此数组追加一项 (N, migrate_vN) 即可,无需改逻辑。
let steps: [(i32, fn(&Connection) -> Result<()>); 16] = [
let steps: [(i32, fn(&Connection) -> Result<()>); 17] = [
(1, migrate_v1),
(2, migrate_v2),
(3, migrate_v3),
@@ -51,6 +51,7 @@ pub fn run(conn: &Connection) -> Result<()> {
(14, migrate_v14),
(15, migrate_v15),
(16, migrate_v16),
(17, migrate_v17),
];
for (version, migrate_fn) in steps {
@@ -295,6 +296,22 @@ fn migrate_v16(conn: &Connection) -> Result<()> {
Ok(())
}
/// V17: 幂等补 tasks.output_json 列(AiNode 自审闭环产出,决策 a:task 中心)
///
/// 任务产出 JSON 字符串:ai_execute 写产出 / ai_self_review 读产出做自审 / human_review 展示对象。
/// TEXT NULL 向后兼容(老库行默认 NULL,TaskRecord 字段为 Option<String>),
/// 经通用 update_field 白名单写入(非 status 状态机收口字段,status 收口 F-03 不变)。
/// 用 PRAGMA 探测列存在性,缺失才 ALTER(同 v4/v5/v6/v8/v10/v11/v14/v15/v16 模式),对新库/老库均安全。
fn migrate_v17(conn: &Connection) -> Result<()> {
if !column_exists(conn, "tasks", "output_json") {
conn.execute("ALTER TABLE tasks ADD COLUMN output_json TEXT", [])?;
tracing::info!("v17: 补建 tasks.output_json 列(AiNode 自审闭环产出)");
}
conn.execute("INSERT INTO schema_version (version) VALUES (?)", [17])?;
tracing::info!("迁移 v17 完成");
Ok(())
}
/// V1 建表 SQL
const V1_SQL: &str = "
-- 想法表