Symptom. DevicesScreen's offline device rows show a red/gray status dot, "Offline" label, and last-seen time, but still render the same primary "▻ Start session" button as an online device — with no preemptive warning that starting a session on an offline device is a no-op/will fail until the listener reconnects.
Why it matters. A user who taps "Start session" on a device that's been offline for hours gets no context up front about why nothing happens (the error only surfaces later, inside StartSessionScreen's selected.error, after they've already navigated away from the device list).
Source. mobile/src/ui/screens/DevicesScreen.tsx (renderDevice — status/last-seen shown, but the session-primary-action device-start-btn renders identically regardless of status.tone === 'offline').
Direction. Disable or visually de-emphasize "Start session" for offline devices, with inline copy like "Not reachable — run weft start on this device to reconnect."
Symptom.
DevicesScreen's offline device rows show a red/gray status dot, "Offline" label, and last-seen time, but still render the same primary "▻ Start session" button as an online device — with no preemptive warning that starting a session on an offline device is a no-op/will fail until the listener reconnects.Why it matters. A user who taps "Start session" on a device that's been offline for hours gets no context up front about why nothing happens (the error only surfaces later, inside
StartSessionScreen'sselected.error, after they've already navigated away from the device list).Source.
mobile/src/ui/screens/DevicesScreen.tsx(renderDevice— status/last-seen shown, but thesession-primary-action device-start-btnrenders identically regardless ofstatus.tone === 'offline').Direction. Disable or visually de-emphasize "Start session" for offline devices, with inline copy like "Not reachable — run
weft starton this device to reconnect."