diff --git a/app/api/projects/[projectId]/agent/sessions/[sessionId]/approve/route.ts b/app/api/projects/[projectId]/agent/sessions/[sessionId]/approve/route.ts index 9efb6a9..a26f258 100644 --- a/app/api/projects/[projectId]/agent/sessions/[sessionId]/approve/route.ts +++ b/app/api/projects/[projectId]/agent/sessions/[sessionId]/approve/route.ts @@ -44,7 +44,7 @@ export async function POST( const rows = await query<{ data: Record }>( `SELECT p.data FROM fs_projects p JOIN fs_users u ON u.id = p.user_id - WHERE p.id = $1 AND u.data->>'email' = $2 LIMIT 1`, + WHERE p.id = $1::uuid AND u.data->>'email' = $2 LIMIT 1`, [projectId, session.user.email] ); if (rows.length === 0) { @@ -59,7 +59,7 @@ export async function POST( // Find the session to get the appName (so we can find the right Coolify UUID) const sessionRows = await query<{ app_name: string; status: string }>( - `SELECT app_name, status FROM agent_sessions WHERE id = $1 AND project_id = $2 LIMIT 1`, + `SELECT app_name, status FROM agent_sessions WHERE id = $1::uuid AND project_id = $2::uuid LIMIT 1`, [sessionId, projectId] ); if (sessionRows.length === 0) { @@ -109,7 +109,7 @@ export async function POST( `UPDATE agent_sessions SET status = 'approved', completed_at = COALESCE(completed_at, now()), updated_at = now(), output = output || $1::jsonb - WHERE id = $2`, + WHERE id = $2::uuid`, [ JSON.stringify([{ ts: new Date().toISOString(), diff --git a/app/api/projects/[projectId]/agent/sessions/[sessionId]/route.ts b/app/api/projects/[projectId]/agent/sessions/[sessionId]/route.ts index 36d4672..6cccecc 100644 --- a/app/api/projects/[projectId]/agent/sessions/[sessionId]/route.ts +++ b/app/api/projects/[projectId]/agent/sessions/[sessionId]/route.ts @@ -42,7 +42,7 @@ export async function GET( FROM agent_sessions s JOIN fs_projects p ON p.id = s.project_id JOIN fs_users u ON u.id = p.user_id - WHERE s.id = $1 AND s.project_id = $2 AND u.data->>'email' = $3 + WHERE s.id = $1::uuid AND s.project_id = $2::uuid AND u.data->>'email' = $3 LIMIT 1`, [sessionId, projectId, session.user.email] ); @@ -110,7 +110,7 @@ export async function PATCH( values.push(sessionId); await query( - `UPDATE agent_sessions SET ${updates.join(", ")} WHERE id = $${idx}`, + `UPDATE agent_sessions SET ${updates.join(", ")} WHERE id = $${idx}::uuid`, values ); diff --git a/app/api/projects/[projectId]/agent/sessions/[sessionId]/stop/route.ts b/app/api/projects/[projectId]/agent/sessions/[sessionId]/stop/route.ts index f753347..ef3e485 100644 --- a/app/api/projects/[projectId]/agent/sessions/[sessionId]/stop/route.ts +++ b/app/api/projects/[projectId]/agent/sessions/[sessionId]/stop/route.ts @@ -21,7 +21,7 @@ export async function POST( `SELECT s.status FROM agent_sessions s JOIN fs_projects p ON p.id = s.project_id JOIN fs_users u ON u.id = p.user_id - WHERE s.id = $1 AND s.project_id = $2 AND u.data->>'email' = $3 LIMIT 1`, + WHERE s.id = $1::uuid AND s.project_id = $2::uuid AND u.data->>'email' = $3 LIMIT 1`, [sessionId, projectId, session.user.email] ); @@ -45,7 +45,7 @@ export async function POST( `UPDATE agent_sessions SET status = 'stopped', completed_at = now(), updated_at = now(), output = output || '[{"ts": "now", "type": "info", "text": "Stopped by user."}]'::jsonb - WHERE id = $1`, + WHERE id = $1::uuid`, [sessionId] ); diff --git a/app/api/projects/[projectId]/agent/sessions/route.ts b/app/api/projects/[projectId]/agent/sessions/route.ts index 44cce77..87a31fa 100644 --- a/app/api/projects/[projectId]/agent/sessions/route.ts +++ b/app/api/projects/[projectId]/agent/sessions/route.ts @@ -69,7 +69,7 @@ export async function POST( const owns = await query<{ id: string; data: Record }>( `SELECT p.id, p.data FROM fs_projects p JOIN fs_users u ON u.id = p.user_id - WHERE p.id = $1 AND u.data->>'email' = $2 LIMIT 1`, + WHERE p.id = $1::uuid AND u.data->>'email' = $2 LIMIT 1`, [projectId, session.user.email] ); if (owns.length === 0) { @@ -81,7 +81,7 @@ export async function POST( // Create the session row const rows = await query<{ id: string }>( `INSERT INTO agent_sessions (project_id, app_name, app_path, task, status, started_at) - VALUES ($1, $2, $3, $4, 'running', now()) + VALUES ($1::uuid, $2, $3, $4, 'running', now()) RETURNING id`, [projectId, appName, appPath, task.trim()] ); @@ -114,7 +114,7 @@ export async function POST( 'type', 'error', 'text', 'Agent runner service is not connected yet. Phase 2 implementation pending.' )) - WHERE id = $1`, + WHERE id = $1::uuid`, [sessionId] ).catch(() => {}); }); @@ -159,7 +159,7 @@ export async function GET( FROM agent_sessions s JOIN fs_projects p ON p.id = s.project_id JOIN fs_users u ON u.id = p.user_id - WHERE s.project_id = $1 AND u.data->>'email' = $2 + WHERE s.project_id = $1::uuid AND u.data->>'email' = $2 ORDER BY s.created_at DESC LIMIT 50`, [projectId, session.user.email]