feat(data): add list_config, task_runs tables and task config columns
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -46,6 +46,13 @@ CREATE TABLE IF NOT EXISTS task_tags (
|
|||||||
PRIMARY KEY (task_id, tag_id)
|
PRIMARY KEY (task_id, tag_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS list_config (
|
||||||
|
list_id TEXT PRIMARY KEY REFERENCES lists(id) ON DELETE CASCADE,
|
||||||
|
model TEXT NULL,
|
||||||
|
system_prompt TEXT NULL,
|
||||||
|
agent_path TEXT NULL
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS worktrees (
|
CREATE TABLE IF NOT EXISTS worktrees (
|
||||||
task_id TEXT PRIMARY KEY REFERENCES tasks(id) ON DELETE CASCADE,
|
task_id TEXT PRIMARY KEY REFERENCES tasks(id) ON DELETE CASCADE,
|
||||||
path TEXT NOT NULL,
|
path TEXT NOT NULL,
|
||||||
@@ -57,6 +64,27 @@ CREATE TABLE IF NOT EXISTS worktrees (
|
|||||||
created_at TIMESTAMP NOT NULL
|
created_at TIMESTAMP NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS task_runs (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
||||||
|
run_number INTEGER NOT NULL,
|
||||||
|
session_id TEXT NULL,
|
||||||
|
is_retry INTEGER NOT NULL DEFAULT 0,
|
||||||
|
prompt TEXT NOT NULL,
|
||||||
|
result_markdown TEXT NULL,
|
||||||
|
structured_output TEXT NULL,
|
||||||
|
error_markdown TEXT NULL,
|
||||||
|
exit_code INTEGER NULL,
|
||||||
|
turn_count INTEGER NULL,
|
||||||
|
tokens_in INTEGER NULL,
|
||||||
|
tokens_out INTEGER NULL,
|
||||||
|
log_path TEXT NULL,
|
||||||
|
started_at TIMESTAMP NULL,
|
||||||
|
finished_at TIMESTAMP NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_task_runs_task_id ON task_runs(task_id);
|
||||||
|
|
||||||
-- Seed: minimal tag set (ignored if already present)
|
-- Seed: minimal tag set (ignored if already present)
|
||||||
INSERT OR IGNORE INTO tags (name) VALUES ('agent');
|
INSERT OR IGNORE INTO tags (name) VALUES ('agent');
|
||||||
INSERT OR IGNORE INTO tags (name) VALUES ('manual');
|
INSERT OR IGNORE INTO tags (name) VALUES ('manual');
|
||||||
|
|||||||
@@ -26,6 +26,32 @@ public static class SchemaInitializer
|
|||||||
cmd.CommandText = sql;
|
cmd.CommandText = sql;
|
||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery();
|
||||||
tx.Commit();
|
tx.Commit();
|
||||||
|
|
||||||
|
ApplyMigrations(conn);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ApplyMigrations(SqliteConnection conn)
|
||||||
|
{
|
||||||
|
string[] alterStatements =
|
||||||
|
[
|
||||||
|
"ALTER TABLE tasks ADD COLUMN model TEXT NULL",
|
||||||
|
"ALTER TABLE tasks ADD COLUMN system_prompt TEXT NULL",
|
||||||
|
"ALTER TABLE tasks ADD COLUMN agent_path TEXT NULL",
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach (var sql in alterStatements)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using var cmd = conn.CreateCommand();
|
||||||
|
cmd.CommandText = sql;
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (SqliteException ex) when (ex.SqliteErrorCode == 1)
|
||||||
|
{
|
||||||
|
// Column already exists — safe to ignore.
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string LoadScript()
|
private static string LoadScript()
|
||||||
|
|||||||
Reference in New Issue
Block a user