From 519d6b850e07a0387511a8f024dc394250b1a241 Mon Sep 17 00:00:00 2001 From: Clawd Date: Sat, 28 Feb 2026 15:26:02 -0800 Subject: Clear artifacts when creating new session Each new session now starts with empty research.md and plan.md files, preventing stale content from previous sessions appearing. --- dist/main/db/sessions.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 dist/main/db/sessions.js (limited to 'dist/main/db/sessions.js') diff --git a/dist/main/db/sessions.js b/dist/main/db/sessions.js new file mode 100644 index 0000000..b554898 --- /dev/null +++ b/dist/main/db/sessions.js @@ -0,0 +1,72 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.listSessions = listSessions; +exports.getSession = getSession; +exports.createSession = createSession; +exports.updateSession = updateSession; +exports.deleteSession = deleteSession; +exports.listMessages = listMessages; +exports.addMessage = addMessage; +const index_1 = require("./index"); +const uuid_1 = require("uuid"); +function listSessions(projectId) { + return (0, index_1.getDb)() + .prepare("SELECT * FROM sessions WHERE project_id = ? ORDER BY updated_at DESC") + .all(projectId); +} +function getSession(id) { + return (0, index_1.getDb)() + .prepare("SELECT * FROM sessions WHERE id = ?") + .get(id); +} +function createSession(projectId, name) { + const db = (0, index_1.getDb)(); + const id = (0, uuid_1.v4)(); + const now = Math.floor(Date.now() / 1000); + db.prepare(`INSERT INTO sessions (id, project_id, name, phase, permission_mode, created_at, updated_at) + VALUES (?, ?, ?, 'research', 'acceptEdits', ?, ?)`).run(id, projectId, name, now, now); + return { + id, + project_id: projectId, + name, + phase: "research", + claude_session_id: null, + permission_mode: "acceptEdits", + created_at: now, + updated_at: now, + }; +} +function updateSession(id, updates) { + const db = (0, index_1.getDb)(); + const sets = []; + const values = []; + for (const [key, value] of Object.entries(updates)) { + if (value !== undefined) { + sets.push(`${key} = ?`); + values.push(value); + } + } + if (sets.length > 0) { + sets.push("updated_at = ?"); + values.push(Math.floor(Date.now() / 1000)); + values.push(id); + db.prepare(`UPDATE sessions SET ${sets.join(", ")} WHERE id = ?`).run(...values); + } +} +function deleteSession(id) { + (0, index_1.getDb)().prepare("DELETE FROM sessions WHERE id = ?").run(id); +} +// Messages +function listMessages(sessionId) { + return (0, index_1.getDb)() + .prepare("SELECT * FROM messages WHERE session_id = ? ORDER BY created_at ASC") + .all(sessionId); +} +function addMessage(sessionId, role, content) { + const db = (0, index_1.getDb)(); + const id = (0, uuid_1.v4)(); + const now = Math.floor(Date.now() / 1000); + db.prepare("INSERT INTO messages (id, session_id, role, content, created_at) VALUES (?, ?, ?, ?, ?)").run(id, sessionId, role, content, now); + db.prepare("UPDATE sessions SET updated_at = ? WHERE id = ?").run(now, sessionId); + return { id, session_id: sessionId, role, content, created_at: now }; +} -- cgit v1.2.3