diff --git a/backend/src/db/schema.js b/backend/src/db/schema.js index 5f02f09..b8c5fad 100644 --- a/backend/src/db/schema.js +++ b/backend/src/db/schema.js @@ -23,7 +23,7 @@ db.exec(` id INTEGER PRIMARY KEY AUTOINCREMENT, initial_prompt TEXT NOT NULL, document_format TEXT DEFAULT 'md' CHECK(document_format IN ('md', 'txt')), - status TEXT CHECK(status IN ('ongoing', 'completed', 'failed')) DEFAULT 'ongoing', + status TEXT CHECK(status IN ('created', 'ongoing', 'completed', 'failed')) DEFAULT 'created', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, completed_at TIMESTAMP, final_document TEXT diff --git a/backend/src/routes/collaborate.js b/backend/src/routes/collaborate.js index 1d8c325..3f20cdd 100644 --- a/backend/src/routes/collaborate.js +++ b/backend/src/routes/collaborate.js @@ -55,8 +55,8 @@ router.post('/:id/start', async (req, res) => { return res.status(404).json({ error: 'Session not found' }); } - if (session.status !== 'ongoing') { - return res.status(400).json({ error: 'Session is not in ongoing status' }); + if (session.status !== 'created') { + return res.status(400).json({ error: 'Session has already been started or is no longer available' }); } // Start the session asynchronously diff --git a/backend/src/services/collaborativeOrchestrator.js b/backend/src/services/collaborativeOrchestrator.js index 218e178..e90c5eb 100644 --- a/backend/src/services/collaborativeOrchestrator.js +++ b/backend/src/services/collaborativeOrchestrator.js @@ -58,7 +58,7 @@ class CollaborativeOrchestrator { const stmt = db.prepare( 'INSERT INTO collaborative_sessions (initial_prompt, document_format, status) VALUES (?, ?, ?)' ); - const result = stmt.run(initialPrompt, documentFormat, 'ongoing'); + const result = stmt.run(initialPrompt, documentFormat, 'created'); const sessionId = result.lastInsertRowid; // Select the agents to use @@ -145,6 +145,10 @@ class CollaborativeOrchestrator { throw new Error('Active session not found'); } + // Update session status from 'created' to 'ongoing' + const updateStmt = db.prepare('UPDATE collaborative_sessions SET status = ? WHERE id = ?'); + updateStmt.run('ongoing', sessionId); + activeSession.started = true; // Broadcast session start