From 2ad616780f3c6aa125817ba3dc12771275be9ddd Mon Sep 17 00:00:00 2001 From: Dotta Date: Fri, 6 Mar 2026 12:13:25 -0600 Subject: [PATCH] Include join requests in inbox badge and auto-refresh via push The sidebar badge count was missing join requests from its inbox total, and the live updates provider had no handler for join_request entity type, so new join requests wouldn't appear until manual page refresh. Co-Authored-By: Claude Opus 4.6 --- server/src/routes/sidebar-badges.ts | 2 +- ui/src/context/LiveUpdatesProvider.tsx | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/server/src/routes/sidebar-badges.ts b/server/src/routes/sidebar-badges.ts index d1f431a4..edf34709 100644 --- a/server/src/routes/sidebar-badges.ts +++ b/server/src/routes/sidebar-badges.ts @@ -45,7 +45,7 @@ export function sidebarBadgeRoutes(db: Db) { const alertsCount = (summary.agents.error > 0 && !hasFailedRuns ? 1 : 0) + (summary.costs.monthBudgetCents > 0 && summary.costs.monthUtilizationPercent >= 80 ? 1 : 0); - badges.inbox = badges.failedRuns + alertsCount + staleIssueCount; + badges.inbox = badges.failedRuns + alertsCount + staleIssueCount + joinRequestCount; res.json(badges); }); diff --git a/ui/src/context/LiveUpdatesProvider.tsx b/ui/src/context/LiveUpdatesProvider.tsx index 34ff5c0a..d262691e 100644 --- a/ui/src/context/LiveUpdatesProvider.tsx +++ b/ui/src/context/LiveUpdatesProvider.tsx @@ -369,6 +369,11 @@ function invalidateActivityQueries( return; } + if (entityType === "join_request") { + queryClient.invalidateQueries({ queryKey: queryKeys.access.joinRequests(companyId) }); + return; + } + if (entityType === "cost_event") { queryClient.invalidateQueries({ queryKey: queryKeys.costs(companyId) }); return;