diff --git a/packages/app/src/desktop/components/desktop-permissions-section.tsx b/packages/app/src/desktop/components/desktop-permissions-section.tsx index 71db9f122..7391d0142 100644 --- a/packages/app/src/desktop/components/desktop-permissions-section.tsx +++ b/packages/app/src/desktop/components/desktop-permissions-section.tsx @@ -24,7 +24,7 @@ export function DesktopPermissionsSection() { return ( - Desktop permissions + Desktop Permissions [ styles.permissionRefreshButton, diff --git a/packages/app/src/desktop/components/desktop-updates-section.tsx b/packages/app/src/desktop/components/desktop-updates-section.tsx index a86c62573..ea0ebb408 100644 --- a/packages/app/src/desktop/components/desktop-updates-section.tsx +++ b/packages/app/src/desktop/components/desktop-updates-section.tsx @@ -12,6 +12,7 @@ import { buildDaemonUpdateDiagnostics, findLikelyLocalDaemonHost, formatVersionWithPrefix, + isLikelyLocalHost, isVersionMismatch, runLocalDaemonUpdate, shouldShowDesktopUpdateSection, @@ -32,6 +33,7 @@ export function DesktopUpdatesSection({ appVersion }: DesktopUpdatesSectionProps const appVersionText = formatVersionWithPrefix(appVersion); const localDaemonHost = useMemo(() => findLikelyLocalDaemonHost(daemons), [daemons]); + const hasLikelyLocalDaemon = isLikelyLocalHost(localDaemonHost); const localDaemonServerId = localDaemonHost?.serverId ?? null; const localDaemonVersion = useSessionStore( useCallback( @@ -44,6 +46,14 @@ export function DesktopUpdatesSection({ appVersion }: DesktopUpdatesSectionProps ); const localDaemonVersionText = formatVersionWithPrefix(localDaemonVersion); const daemonVersionMismatch = isVersionMismatch(appVersion, localDaemonVersion); + const daemonVersionTitle = hasLikelyLocalDaemon + ? "Local daemon version" + : "Connected daemon version"; + const daemonHostHint = localDaemonHost + ? hasLikelyLocalDaemon + ? `Connected host: ${localDaemonHost.label}` + : `No local daemon detected. Showing connected host: ${localDaemonHost.label}.` + : "No local daemon detected yet."; const { isDesktop: isDesktopUpdaterAvailable, @@ -195,12 +205,8 @@ export function DesktopUpdatesSection({ appVersion }: DesktopUpdatesSectionProps - Local daemon version - - {localDaemonHost - ? `Connected host: ${localDaemonHost.label}` - : "No local daemon detected yet."} - + {daemonVersionTitle} + {daemonHostHint} {localDaemonVersionText} diff --git a/packages/app/src/desktop/updates/desktop-updates.ts b/packages/app/src/desktop/updates/desktop-updates.ts index 4887b8a71..0610fd672 100644 --- a/packages/app/src/desktop/updates/desktop-updates.ts +++ b/packages/app/src/desktop/updates/desktop-updates.ts @@ -140,16 +140,22 @@ export function findLikelyLocalDaemonHost(daemons: HostProfile[]): HostProfile | return null } - const localhostDaemon = daemons.find((daemon) => - daemon.connections.some( - (connection) => - connection.type === 'direct' && isLikelyLocalDirectEndpoint(connection.endpoint) - ) - ) + const localhostDaemon = daemons.find((daemon) => isLikelyLocalHost(daemon)) return localhostDaemon ?? daemons[0] ?? null } +export function isLikelyLocalHost(host: HostProfile | null | undefined): boolean { + if (!host) { + return false + } + + return host.connections.some( + (connection) => + connection.type === 'direct' && isLikelyLocalDirectEndpoint(connection.endpoint) + ) +} + export function buildDaemonUpdateDiagnostics(result: LocalDaemonUpdateResult): string { const stdout = result.stdout.length > 0 ? result.stdout : '(empty)' const stderr = result.stderr.length > 0 ? result.stderr : '(empty)' diff --git a/packages/app/src/desktop/updates/use-desktop-app-updater.ts b/packages/app/src/desktop/updates/use-desktop-app-updater.ts index 1f8454220..da7f949a3 100644 --- a/packages/app/src/desktop/updates/use-desktop-app-updater.ts +++ b/packages/app/src/desktop/updates/use-desktop-app-updater.ts @@ -1,6 +1,7 @@ import { useCallback, useRef, useState } from 'react' import { checkDesktopAppUpdate, + formatVersionWithPrefix, installDesktopAppUpdate, shouldShowDesktopUpdateSection, type DesktopAppUpdateCheckResult, @@ -57,7 +58,7 @@ function formatStatusText(input: { if (status === 'available') { if (availableUpdate?.latestVersion) { - return `Update available: ${availableUpdate.latestVersion}` + return `Update available: ${formatVersionWithPrefix(availableUpdate.latestVersion)}` } return 'An app update is available.' }