From f7671dc7ea0f9d2838afb8e0673cf66166da43b2 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Fri, 25 Sep 2026 12:28:50 -0700 Subject: [PATCH] fix(mobile): say the host status is unreadable instead of nothing when it is With the update copy now reserved for a host that answered without agent launch, an unread status left the AI buttons disabled with no explanation. They now say "Could not read this host's status. Go back and reopen it.", the words the mobile web shell already uses for the same failure; leaving the host re-reads its status. --- mobile/src/components/AgentLaunchNotice.tsx | 12 ++++++++++-- mobile/src/components/MobileDiffReviewDrawers.tsx | 4 +++- mobile/src/session/mobile-existing-agent-launch.ts | 4 ++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/mobile/src/components/AgentLaunchNotice.tsx b/mobile/src/components/AgentLaunchNotice.tsx index 8a3e4826614..1047bd3c9b5 100644 --- a/mobile/src/components/AgentLaunchNotice.tsx +++ b/mobile/src/components/AgentLaunchNotice.tsx @@ -1,7 +1,10 @@ import { useState } from 'react' import { Pressable, StyleSheet, Text, View, type StyleProp, type TextStyle } from 'react-native' import { useClipboardWriter } from '../platform/clipboard' -import { AGENT_LAUNCH_UPDATE_REQUIRED_MESSAGE } from '../session/mobile-existing-agent-launch' +import { + AGENT_LAUNCH_STATUS_UNREADABLE_MESSAGE, + AGENT_LAUNCH_UPDATE_REQUIRED_MESSAGE +} from '../session/mobile-existing-agent-launch' import type { MobileAgentLaunchAvailability } from '../session/mobile-agent-launch-availability' import { colors, spacing, typography } from '../theme/mobile-theme' @@ -17,7 +20,12 @@ type Props = { export function AgentLaunchNotice({ availability, error, undeliveredPrompt, errorStyle }: Props) { const clipboard = useClipboardWriter() const [copyState, setCopyState] = useState<{ prompt: string; label: string } | null>(null) - const message = availability === 'update-required' ? AGENT_LAUNCH_UPDATE_REQUIRED_MESSAGE : error + const message = + availability === 'update-required' + ? AGENT_LAUNCH_UPDATE_REQUIRED_MESSAGE + : availability === 'unverified' + ? AGENT_LAUNCH_STATUS_UNREADABLE_MESSAGE + : error if (!message) { return null } diff --git a/mobile/src/components/MobileDiffReviewDrawers.tsx b/mobile/src/components/MobileDiffReviewDrawers.tsx index 944eec88bf7..93265c507b7 100644 --- a/mobile/src/components/MobileDiffReviewDrawers.tsx +++ b/mobile/src/components/MobileDiffReviewDrawers.tsx @@ -85,7 +85,9 @@ function useSendActions(controller: ReturnType void controller.createTerminalAndSend(comments) }, diff --git a/mobile/src/session/mobile-existing-agent-launch.ts b/mobile/src/session/mobile-existing-agent-launch.ts index 7aab999b2f4..02f1035aaeb 100644 --- a/mobile/src/session/mobile-existing-agent-launch.ts +++ b/mobile/src/session/mobile-existing-agent-launch.ts @@ -25,6 +25,10 @@ export const PROMPTED_AGENT_LAUNCH_TIMEOUT_MS = 90_000 export const AGENT_LAUNCH_UPDATE_REQUIRED_MESSAGE = 'Update Orca on your computer to start an agent from your phone.' +// Same words the mobile web shell uses for a status read that failed; leaving the host re-reads it. +export const AGENT_LAUNCH_STATUS_UNREADABLE_MESSAGE = + "Could not read this host's status. Go back and reopen it." + export const AGENT_LAUNCH_UNCONFIRMED_MESSAGE = "Couldn't confirm the agent started. Check the workspace before trying again."