diff --git a/src/renderer/src/components/status-bar/StatusBar.tsx b/src/renderer/src/components/status-bar/StatusBar.tsx
index e93bd9e6bbc..55c5eb30f87 100644
--- a/src/renderer/src/components/status-bar/StatusBar.tsx
+++ b/src/renderer/src/components/status-bar/StatusBar.tsx
@@ -1107,7 +1107,21 @@ function WindowLabel({
)
}
-// Single-letter provider badge for the icon-only (narrow) status bar.
+// Single-letter provider badge for the icon-only (narrow) status bar. Shared by
+// the roster trigger and ProviderDetailsMenu so the dot's has-data condition
+// and markup can't drift between the two.
+function ProviderLetterBadge({ p }: { p: ProviderRateLimits }): React.JSX.Element {
+ const hasData = Boolean(p.session || p.weekly || p.fableWeekly || p.monthly || p.buckets?.length)
+ return (
+
+
+ {getProviderLetter(p.provider)}
+
+ )
+}
+
function getProviderLetter(provider: ProviderRateLimits['provider']): string {
switch (provider) {
case 'claude':
@@ -1822,6 +1836,7 @@ export function ProviderDetailsMenu({
<>
{topContent}
+ {/* Why: provider-specific action sections may render richer reset-credit UI. */}
{iconOnly ? (
-
-
- {getProviderLetter(provider.provider)}
-
+
) : (
)}
@@ -1891,21 +1901,7 @@ export function ProviderDetailsMenu({
event.preventDefault()
}}
>
- {topContent}
-
- {/* Why: provider-specific action sections may render richer reset-credit UI. */}
-
-
- {children ? (
- <>
-
- {children}
- >
- ) : null}
+ {panelBody}
)
@@ -2201,19 +2197,8 @@ function StatusBarInner({ floatingTerminalOpen }: StatusBarProps): React.JSX.Ele
{rosterProviders.map((p) =>
iconOnly ? (
// Narrow status bar: fall back to main's compact letter badge.
-
-
- {getProviderLetter(p.provider)}
+
+
) : (
ยท {plan} : null}
- {!signedOut && reset ? (
+ {signedOut ? (
+ <>
+
+ {translate(
+ 'auto.components.status.bar.UsageRosterPanel.notSignedIn',
+ 'not signed in'
+ )}
+
+
+ >
+ ) : reset ? (
{reset}
) : null}
- {signedOut ? (
-
- ) : null}
- {signedOut ? (
-
- {translate('auto.components.status.bar.UsageRosterPanel.notSignedIn', 'not signed in')}
-
- ) : (
+ {signedOut ? null : (
{sections.map((s) => {
const used = clampUsedPercent(s.window.usedPercent)