auto-sync: 2026-05-19 13:53:29

This commit is contained in:
cfdaily
2026-05-19 13:53:29 +08:00
parent fc396ba960
commit 13f34531d8
+24 -1
View File
@@ -48,7 +48,7 @@ def _migrate_v27(conn: sqlite3.Connection) -> None:
def _migrate_v28(conn: sqlite3.Connection) -> None:
"""v2.8 数据迁移:3 新状态 + 归档字段 + CHECK 约束更新"""
"""v2.8 数据迁移:3 新状态 + 归档字段 + CHECK 约束更新 + checkpoints 表"""
# 1. 添加归档字段
_safe_add_column(conn, "tasks", "archived", "INTEGER DEFAULT 0")
_safe_add_column(conn, "tasks", "archived_at", "TEXT")
@@ -104,6 +104,29 @@ def _migrate_v28(conn: sqlite3.Connection) -> None:
CREATE INDEX IF NOT EXISTS idx_tasks_current_agent ON tasks(current_agent);
""")
# 3. checkpoints 表(M3
conn.execute("""CREATE TABLE IF NOT EXISTS checkpoints (
id TEXT PRIMARY KEY,
task_id TEXT NOT NULL REFERENCES tasks(id),
type TEXT NOT NULL CHECK (type IN ('verify', 'decision', 'action')),
title TEXT NOT NULL,
description TEXT,
status TEXT NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'approved', 'rejected')),
payload TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
resolved_at TEXT,
resolved_by TEXT,
resolve_note TEXT
)""")
conn.execute("CREATE INDEX IF NOT EXISTS idx_checkpoints_task ON checkpoints(task_id)")
conn.execute("CREATE INDEX IF NOT EXISTS idx_checkpoints_status ON checkpoints(status)")
# 4. outputs 扩展字段(M3 成果物)
_safe_add_column(conn, "outputs", "file_name", "TEXT")
_safe_add_column(conn, "outputs", "file_size", "INTEGER")
_safe_add_column(conn, "outputs", "file_path", "TEXT")
_safe_add_column(conn, "outputs", "mime_type", "TEXT")
def _safe_add_column(conn: sqlite3.Connection, table: str,
column: str, col_type: str) -> None: