Handle git WebSocket messages and persist to database
This commit is contained in:
parent
3b5e636730
commit
599f911964
2 changed files with 24 additions and 1 deletions
|
|
@ -147,7 +147,8 @@ export function initDb(path = "claude-remote.db"): Database {
|
|||
updateSessionStatsStmt = db.prepare(`
|
||||
UPDATE sessions
|
||||
SET state = ?, prompts = ?, completions = ?, tools = ?, compressions = ?,
|
||||
thinking_seconds = ?, work_seconds = ?, mode = ?, model = ?, idle_since = ?
|
||||
thinking_seconds = ?, work_seconds = ?, mode = ?, model = ?, idle_since = ?,
|
||||
git_branch = ?, git_files_json = ?
|
||||
WHERE id = ?
|
||||
`);
|
||||
|
||||
|
|
@ -286,6 +287,8 @@ export function updateSessionStats(
|
|||
mode: string;
|
||||
model: string | null;
|
||||
idle_since: number | null;
|
||||
git_branch: string | null;
|
||||
git_files_json: string | null;
|
||||
},
|
||||
): void {
|
||||
updateSessionStatsStmt.run(
|
||||
|
|
@ -299,6 +302,8 @@ export function updateSessionStats(
|
|||
state.mode,
|
||||
state.model,
|
||||
state.idle_since,
|
||||
state.git_branch,
|
||||
state.git_files_json,
|
||||
sessionId,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -509,6 +509,24 @@ const server = Bun.serve<SessionData>({
|
|||
return;
|
||||
}
|
||||
|
||||
// Handle git message
|
||||
if (msg.type === "git") {
|
||||
const sessionState = sessionStates.get(ws.data.sessionId);
|
||||
if (sessionState) {
|
||||
sessionState.git_branch = msg.branch;
|
||||
sessionState.git_files_json = JSON.stringify(msg.files);
|
||||
sessionState.dirty = true;
|
||||
// Broadcast SSE git event
|
||||
broadcastSSE({
|
||||
type: "git",
|
||||
session_id: ws.data.sessionId,
|
||||
branch: msg.branch,
|
||||
files_json: JSON.stringify(msg.files),
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Handle resize message
|
||||
if (msg.type === "resize") {
|
||||
// Store resize info if needed (not yet implemented)
|
||||
|
|
|
|||
Loading…
Reference in a new issue