From 1a922d4171fe291569b4ede91ceddcb793d79819 Mon Sep 17 00:00:00 2001 From: Fusion Date: Wed, 20 May 2026 14:49:30 +0200 Subject: [PATCH] fix(sessions): correct session state categorization - Backend now returns stopped and error sessions too - Active sessions include running/building/pending - Recent sessions show stopped/error only - Status badge shows actual status (running/building/pending) --- apps/api/src/api/tool_instances.py | 2 +- apps/web/src/pages/sessions.tsx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/api/src/api/tool_instances.py b/apps/api/src/api/tool_instances.py index dbedef5..899b173 100644 --- a/apps/api/src/api/tool_instances.py +++ b/apps/api/src/api/tool_instances.py @@ -827,7 +827,7 @@ async def get_user_sessions( result = await session.execute( select(ToolInstance) .where(ToolInstance.owner_id == user_id) - .where(ToolInstance.status.in_(["running", "building", "pending"])) + .where(ToolInstance.status.in_(["running", "building", "pending", "stopped", "error"])) .order_by(ToolInstance.created_at.desc()) ) instances = result.scalars().all() diff --git a/apps/web/src/pages/sessions.tsx b/apps/web/src/pages/sessions.tsx index dee1979..fc19378 100644 --- a/apps/web/src/pages/sessions.tsx +++ b/apps/web/src/pages/sessions.tsx @@ -92,12 +92,12 @@ export const SessionsPage = () => { }, [selectedProject]); const activeSessions = useMemo( - () => sessions.filter((s) => s.status === "running"), + () => sessions.filter((s) => ["running", "building", "pending"].includes(s.status)), [sessions] ); const recentSessions = useMemo( - () => sessions.filter((s) => s.status !== "running").slice(0, 5), + () => sessions.filter((s) => ["stopped", "error"].includes(s.status)).slice(0, 5), [sessions] ); @@ -259,7 +259,7 @@ export const SessionsPage = () => {

)} - running + {session.status}
{session.url ? (