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/ipc/handlers.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/main/ipc/handlers.ts') diff --git a/src/main/ipc/handlers.ts b/src/main/ipc/handlers.ts index 145c6e2..f0a5b82 100644 --- a/src/main/ipc/handlers.ts +++ b/src/main/ipc/handlers.ts @@ -2,6 +2,7 @@ import { ipcMain, dialog, type BrowserWindow } from "electron"; import * as projects from "../db/projects"; import * as sessions from "../db/sessions"; import * as claude from "../claude"; +import { createSessionBranch } from "../git"; import type { UserPermissionMode } from "../claude/phases"; export function registerIpcHandlers(mainWindow: BrowserWindow): void { @@ -19,9 +20,19 @@ export function registerIpcHandlers(mainWindow: BrowserWindow): void { sessions.listSessions(projectId) ); - ipcMain.handle("sessions:create", (_, projectId: string, name: string) => - sessions.createSession(projectId, name) - ); + ipcMain.handle("sessions:create", (_, projectId: string, name: string) => { + const project = projects.getProject(projectId); + if (!project) throw new Error("Project not found"); + + const session = sessions.createSession(projectId, name); + + const branchName = createSessionBranch(project.path, session.name, session.id); + if (branchName) { + sessions.updateSession(session.id, { git_branch: branchName }); + } + + return { ...session, git_branch: branchName ?? null }; + }); ipcMain.handle("sessions:delete", (_, id: string) => { const session = sessions.getSession(id); -- cgit v1.2.3