diff --git a/apps/desktop/src/app/shell/hooks/use-statusbar-items.tsx b/apps/desktop/src/app/shell/hooks/use-statusbar-items.tsx
index 00849db8aa9..06f880a9e36 100644
--- a/apps/desktop/src/app/shell/hooks/use-statusbar-items.tsx
+++ b/apps/desktop/src/app/shell/hooks/use-statusbar-items.tsx
@@ -326,19 +326,34 @@ export function useStatusbarItems({
const title = profile ? `${baseTooltip} · ${profile}` : baseTooltip
return {
+ // VS Code-style remote indicator: a solid colored block (not a muted
+ // pill) so "you are running on a remote host" is unmistakable, pinned to
+ // the FAR LEFT of the status bar. SSH gets the primary accent; a plain URL
+ // remote gets a calmer tint so the two are visually distinct.
+ className: cn(
+ 'px-2 font-medium',
+ isSsh
+ ? 'bg-primary text-primary-foreground hover:bg-primary/90 hover:text-primary-foreground'
+ : 'bg-accent text-accent-foreground hover:bg-accent/90 hover:text-accent-foreground'
+ ),
icon: ,
id: 'connection',
label,
title,
// Deep-link straight to the Gateway connection panel (the settings index
// reads ?tab=), so the pill lands the user where they manage/switch it.
- to: `${SETTINGS_ROUTE}?tab=gateway`,
- variant: 'link'
+ // NB: default (button) variant — NOT 'link', which renders an and
+ // would swallow the in-app `to:` navigation.
+ to: `${SETTINGS_ROUTE}?tab=gateway`
}
}, [connection?.mode, connection?.remoteHost, connection?.remoteKind, connection?.baseUrl, connection?.profile, copy])
const coreLeftStatusbarItems = useMemo(
() => [
+ // Remote-connection indicator pinned to the far left (VS Code parity) —
+ // first thing in the bar so "where am I running" is the dominant cue.
+ // Absent in local mode.
+ ...(connectionItem ? [connectionItem] : []),
{
className: `w-7 justify-center px-0${commandCenterOpen ? ' bg-accent/55 text-foreground' : ''}`,
icon: ,
@@ -405,6 +420,7 @@ export function useStatusbarItems({
bgFailed,
bgRunning,
commandCenterOpen,
+ connectionItem,
copy,
gatewayMenuContent,
gatewayClassName,
@@ -467,7 +483,6 @@ export function useStatusbarItems({
title: terminalTakeover ? copy.hideTerminal : copy.showTerminal,
variant: 'action'
},
- ...(connectionItem ? [connectionItem] : []),
clientVersionItem,
...(backendVersionItem ? [backendVersionItem] : [])
],
@@ -482,7 +497,6 @@ export function useStatusbarItems({
terminalTakeover,
toggleYolo,
turnStartedAt,
- connectionItem,
clientVersionItem,
backendVersionItem,
yoloActive