diff --git a/staged/src/lib/features/branches/BranchCard.svelte b/staged/src/lib/features/branches/BranchCard.svelte index 166d3b96..661f1900 100644 --- a/staged/src/lib/features/branches/BranchCard.svelte +++ b/staged/src/lib/features/branches/BranchCard.svelte @@ -863,8 +863,8 @@ notifyError('Session Error', 'Failed to start session: no session ID returned'); return; } - // Register session in the unified registry - sessionRegistry.register(result.sessionId, branch.projectId, 'other', branch.id); + // Register session in the unified registry with the actual session type + sessionRegistry.register(result.sessionId, branch.projectId, newSessionMode, branch.id); projectStateStore.addRunningSession(branch.projectId, result.sessionId); showNewSession = false; draftPrompt = ''; diff --git a/staged/src/lib/features/branches/RemoteBranchCard.svelte b/staged/src/lib/features/branches/RemoteBranchCard.svelte index 0c6e2bed..1ddcdd52 100644 --- a/staged/src/lib/features/branches/RemoteBranchCard.svelte +++ b/staged/src/lib/features/branches/RemoteBranchCard.svelte @@ -364,9 +364,9 @@ notifyError('Session Error', 'Failed to start session: no session ID returned'); return; } - // Register session in the unified registry so global completion handling can - // clear running/unread indicators for remote projects. - sessionRegistry.register(result.sessionId, branch.projectId, 'other', branch.id); + // Register session in the unified registry with the actual session type so global + // completion handling can clear running/unread indicators for remote projects. + sessionRegistry.register(result.sessionId, branch.projectId, newSessionMode, branch.id); // Track the running session in the project state store projectStateStore.addRunningSession(branch.projectId, result.sessionId); const pendingType = diff --git a/staged/src/lib/features/projects/ProjectsList.svelte b/staged/src/lib/features/projects/ProjectsList.svelte index f4f66e2a..b9c29fc3 100644 --- a/staged/src/lib/features/projects/ProjectsList.svelte +++ b/staged/src/lib/features/projects/ProjectsList.svelte @@ -10,7 +10,12 @@ import { GitPullRequest, GitPullRequestClosed, GitPullRequestDraft, Plus } from 'lucide-svelte'; import type { Project, ProjectRepo, Branch } from '../../types'; import * as commands from '../../commands'; - import { projectDisplayName, aggregateProjectPrStatus } from '../../shared/utils'; + import { + projectDisplayName, + aggregateProjectPrStatus, + projectSubtitle, + } from '../../shared/utils'; + import { projectStateStore } from '../../stores/projectState.svelte'; import { selectProject } from '../../navigation.svelte'; import NewProjectModal from './NewProjectModal.svelte'; import ProjectsSidebar from './ProjectsSidebar.svelte'; @@ -281,6 +286,8 @@ {@const status = getProjectStatus(project.id, deletingProjectNames)} {@const prStatus = getProjectPrStatus(project.id)} {@const repos = reposByProject.get(project.id) ?? []} + {@const repoCount = repoCountsByProject.get(project.id) ?? (project.githubRepo ? 1 : 0)} + {@const sessionTypes = projectStateStore.getRunningSessionTypes(project.id)}
- {project.location === 'remote' ? 'Remote workspace' : 'Local worktrees'} + {projectSubtitle(repoCount, sessionTypes)}
{/each} diff --git a/staged/src/lib/features/projects/ProjectsSidebar.svelte b/staged/src/lib/features/projects/ProjectsSidebar.svelte index d63034c4..8c34dd4e 100644 --- a/staged/src/lib/features/projects/ProjectsSidebar.svelte +++ b/staged/src/lib/features/projects/ProjectsSidebar.svelte @@ -13,7 +13,12 @@ } from 'lucide-svelte'; import type { Project, Branch } from '../../types'; import { goHome, navigation, selectProject } from '../../navigation.svelte'; - import { projectDisplayName, aggregateProjectPrStatus } from '../../shared/utils'; + import { + projectDisplayName, + aggregateProjectPrStatus, + projectSubtitle, + } from '../../shared/utils'; + import { projectStateStore } from '../../stores/projectState.svelte'; import Spinner from '../../shared/Spinner.svelte'; import StagedIcon from '../../shared/StagedIcon.svelte'; import { getProjectStatus } from './projectStatus'; @@ -193,6 +198,7 @@ {@const status = getProjectStatus(project.id, deletingProjectNames)} {@const repoCount = repoCountForProject(project)} {@const prStatus = getProjectPrStatus(project.id)} + {@const sessionTypes = projectStateStore.getRunningSessionTypes(project.id)}