From 20a5f6a9a1f69e92315d25a39546580ec9ef5b4a Mon Sep 17 00:00:00 2001 From: marxlaml Date: Fri, 22 May 2026 21:39:28 +0200 Subject: [PATCH] feat: session management fixes and sessions hub - Add confirmation dialogs for stop/delete on dashboard - Filter deleted sessions immediately without reload - Add tunnel health polling with error badges - Add Sessions nav item with active count badge - Route /sessions to SessionsPage component Quality gates: 43/43 tests pass, typecheck pass, lint pass Refs: openspec/changes/session-management-fixes Refs: openspec/changes/sessions-hub --- apps/web/src/components/app-shell.tsx | 6 +- apps/web/src/pages/dashboard.tsx | 149 ++++++++++++++++++++------ apps/web/src/router.tsx | 3 +- 3 files changed, 123 insertions(+), 35 deletions(-) diff --git a/apps/web/src/components/app-shell.tsx b/apps/web/src/components/app-shell.tsx index fd2a02f..8636e49 100644 --- a/apps/web/src/components/app-shell.tsx +++ b/apps/web/src/components/app-shell.tsx @@ -9,8 +9,9 @@ import { useSessions } from "../state/sessions"; import { Icon } from "./icon"; import type { IconName } from "../utils/icons"; -const NAV_ITEMS: { to: string; label: string; icon: IconName }[] = [ +const NAV_ITEMS: { to: string; label: string; icon: IconName; badge?: "sessions" }[] = [ { to: "/", label: "Home", icon: "dashboard" }, + { to: "/sessions", label: "Sessions", icon: "terminal", badge: "sessions" }, { to: "/projects", label: "Projects", icon: "projects" }, { to: "/tool-workshop", label: "Tool Workshop", icon: "settings" }, { to: "/settings", label: "Settings", icon: "settings" } @@ -83,7 +84,6 @@ export const AppShell = () => {