aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/db
diff options
context:
space:
mode:
authorbndw <ben@bdw.to>2026-02-28 20:07:05 -0800
committerbndw <ben@bdw.to>2026-02-28 20:07:05 -0800
commit9d192d16b7a4026b35ad2bcaff9edb9f2670de2b (patch)
tree2603dd04c3567074e84be271c448ede02ee7097d /src/main/db
parent283013c09d4855529e846951a1e090f0f16030a8 (diff)
feat: git branches
Diffstat (limited to 'src/main/db')
-rw-r--r--src/main/db/index.ts10
-rw-r--r--src/main/db/schema.ts1
-rw-r--r--src/main/db/sessions.ts4
3 files changed, 14 insertions, 1 deletions
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 {
20 db.pragma("foreign_keys = ON"); 20 db.pragma("foreign_keys = ON");
21 21
22 initSchema(db); 22 initSchema(db);
23 runMigrations(db);
24
23 return db; 25 return db;
24} 26}
25 27
28function runMigrations(db: Database.Database): void {
29 // v2: add git_branch column to sessions
30 const cols = db.pragma("table_info(sessions)") as { name: string }[];
31 if (!cols.find((c) => c.name === "git_branch")) {
32 db.exec("ALTER TABLE sessions ADD COLUMN git_branch TEXT");
33 }
34}
35
26export function closeDb() { 36export function closeDb() {
27 if (db) { 37 if (db) {
28 db.close(); 38 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) {
17 phase TEXT NOT NULL DEFAULT 'research', 17 phase TEXT NOT NULL DEFAULT 'research',
18 claude_session_id TEXT, 18 claude_session_id TEXT,
19 permission_mode TEXT NOT NULL DEFAULT 'acceptEdits', 19 permission_mode TEXT NOT NULL DEFAULT 'acceptEdits',
20 git_branch TEXT,
20 created_at INTEGER NOT NULL DEFAULT (unixepoch()), 21 created_at INTEGER NOT NULL DEFAULT (unixepoch()),
21 updated_at INTEGER NOT NULL DEFAULT (unixepoch()) 22 updated_at INTEGER NOT NULL DEFAULT (unixepoch())
22 ); 23 );
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 {
11 phase: Phase; 11 phase: Phase;
12 claude_session_id: string | null; 12 claude_session_id: string | null;
13 permission_mode: PermissionMode; 13 permission_mode: PermissionMode;
14 git_branch: string | null;
14 created_at: number; 15 created_at: number;
15 updated_at: number; 16 updated_at: number;
16} 17}
@@ -52,6 +53,7 @@ export function createSession(projectId: string, name: string): Session {
52 phase: "research", 53 phase: "research",
53 claude_session_id: null, 54 claude_session_id: null,
54 permission_mode: "acceptEdits", 55 permission_mode: "acceptEdits",
56 git_branch: null,
55 created_at: now, 57 created_at: now,
56 updated_at: now, 58 updated_at: now,
57 }; 59 };
@@ -59,7 +61,7 @@ export function createSession(projectId: string, name: string): Session {
59 61
60export function updateSession( 62export function updateSession(
61 id: string, 63 id: string,
62 updates: Partial<Pick<Session, "name" | "phase" | "claude_session_id" | "permission_mode">> 64 updates: Partial<Pick<Session, "name" | "phase" | "claude_session_id" | "permission_mode" | "git_branch">>
63): void { 65): void {
64 const db = getDb(); 66 const db = getDb();
65 const sets: string[] = []; 67 const sets: string[] = [];