From 8ee87c7452d3b3f71d4dd15031350fdcb2c4a8dc Mon Sep 17 00:00:00 2001 From: Joseph Mearman Date: Wed, 21 Jan 2026 23:14:10 +0000 Subject: [PATCH] fix: display correct project names in session stats Replace session.projectPath.split('/').pop() with getProjectDisplayName() to ensure the actual leaf folder name is shown instead of incorrect fragments. Example fixes: - /home/user/projects/my-app now shows "my-app" instead of "app" - /home/user/workspaces/repo-name/worktrees/feature-branch now shows "feature-branch" instead of "branch" Addresses potential issues with project name display in analytics dashboard. Related to: #348 (quota display), #103 (context display) --- ui/src/components/analytics/session-stats-card.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ui/src/components/analytics/session-stats-card.tsx b/ui/src/components/analytics/session-stats-card.tsx index 8d2b0436..89d13dda 100644 --- a/ui/src/components/analytics/session-stats-card.tsx +++ b/ui/src/components/analytics/session-stats-card.tsx @@ -131,7 +131,7 @@ export function SessionStatsCard({ data, isLoading, className }: SessionStatsCar >
- {session.projectPath.split('/').pop()} + {getProjectDisplayName(session.projectPath)} {formatDistanceToNow(new Date(session.lastActivity), { addSuffix: true })} @@ -152,6 +152,17 @@ export function SessionStatsCard({ data, isLoading, className }: SessionStatsCar ); } +function getProjectDisplayName(path: string): string { + if (!path) return ''; + + // Remove leading/trailing slashes and split into segments + const cleanPath = path.replace(/^\/|\/$/g, ''); + const segments = cleanPath.split('/').filter(segment => segment.length > 0); + + // Return the last segment (leaf folder name) + return segments[segments.length - 1] || ''; +} + function formatCompact(num: number): string { if (num >= 1_000_000_000) return `${(num / 1_000_000_000).toFixed(1)}B`; if (num >= 1_000_000) return `${(num / 1_000_000).toFixed(1)}M`;