CREATE TABLE IF NOT EXISTS users ( login TEXT PRIMARY KEY, display_name TEXT NOT NULL, git_name TEXT NOT NULL DEFAULT '', git_email TEXT NOT NULL DEFAULT '', created_at TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS projects ( id TEXT PRIMARY KEY, name TEXT NOT NULL UNIQUE, repo_path TEXT NOT NULL UNIQUE, default_branch TEXT NOT NULL, remote TEXT NOT NULL, created_by TEXT NOT NULL REFERENCES users(login), created_at TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS tasks ( id TEXT PRIMARY KEY, project_id TEXT NOT NULL REFERENCES projects(id), title TEXT NOT NULL, branch TEXT NOT NULL, worktree_path TEXT NOT NULL, base_ref TEXT NOT NULL, status TEXT NOT NULL, created_by TEXT NOT NULL REFERENCES users(login), created_at TEXT NOT NULL, completed_at TEXT ); CREATE INDEX IF NOT EXISTS tasks_project ON tasks(project_id, created_at); CREATE TABLE IF NOT EXISTS events ( seq INTEGER PRIMARY KEY AUTOINCREMENT, kind TEXT NOT NULL, project_id TEXT, task_id TEXT, actor TEXT NOT NULL, payload TEXT NOT NULL, created_at TEXT NOT NULL );