From 9d192d16b7a4026b35ad2bcaff9edb9f2670de2b Mon Sep 17 00:00:00 2001 From: bndw Date: Sat, 28 Feb 2026 20:07:05 -0800 Subject: feat: git branches --- src/main/db/index.ts | 10 ++++++++++ src/main/db/schema.ts | 1 + src/main/db/sessions.ts | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src/main/db') diff --git a/src/main/db/index.ts b/src/main/db/index.ts index a77cdd4..1613abc 100644 --- a/src/main/db/index.ts +++ b/src/main/db/index.ts @@ -20,9 +20,19 @@ export function getDb(): Database.Database { db.pragma("foreign_keys = ON"); initSchema(db); + runMigrations(db); + return db; } +function runMigrations(db: Database.Database): void { + // v2: add git_branch column to sessions + const cols = db.pragma("table_info(sessions)") as { name: string }[]; + if (!cols.find((c) => c.name === "git_branch")) { + db.exec("ALTER TABLE sessions ADD COLUMN git_branch TEXT"); + } +} + export function closeDb() { if (db) { db.close(); diff --git a/src/main/db/schema.ts b/src/main/db/schema.ts index c2093f9..39ee567 100644 --- a/src/main/db/schema.ts +++ b/src/main/db/schema.ts @@ -17,6 +17,7 @@ export function initSchema(db: Database.Database) { phase TEXT NOT NULL DEFAULT 'research', claude_session_id TEXT, permission_mode TEXT NOT NULL DEFAULT 'acceptEdits', + git_branch TEXT, created_at INTEGER NOT NULL DEFAULT (unixepoch()), updated_at INTEGER NOT NULL DEFAULT (unixepoch()) ); diff --git a/src/main/db/sessions.ts b/src/main/db/sessions.ts index 684bb9e..3e6352c 100644 --- a/src/main/db/sessions.ts +++ b/src/main/db/sessions.ts @@ -11,6 +11,7 @@ export interface Session { phase: Phase; claude_session_id: string | null; permission_mode: PermissionMode; + git_branch: string | null; created_at: number; updated_at: number; } @@ -52,6 +53,7 @@ export function createSession(projectId: string, name: string): Session { phase: "research", claude_session_id: null, permission_mode: "acceptEdits", + git_branch: null, created_at: now, updated_at: now, }; @@ -59,7 +61,7 @@ export function createSession(projectId: string, name: string): Session { export function updateSession( id: string, - updates: Partial> + updates: Partial> ): void { const db = getDb(); const sets: string[] = []; -- cgit v1.2.3