iOS/iPadOS app: assistant text in ScheduleWakeup-driven loop turns is hidden (collapsed into 'Ran a command, used a tool') — visible on desktop web + CLI
Environment
- Claude Code CLI (remote-control session,
--remote-control), model claude-fable-5 - Viewer: Claude app on iPadOS (latest, July 2026) — bug reproduces on iPhone/iPad; does NOT reproduce on desktop browser (claude.ai) or the Linux CLI transcript
Summary
In a long-running autonomous session driven by /loop + ScheduleWakeup, each wakeup-fired turn follows the pattern: Bash tool call(s) → short assistant text status update → ScheduleWakeup tool call (turn ends when ScheduleWakeup returns, so the text comes before the final tool call).
On the iPad app, most of these turns render as a single collapsed row — "Ran a command, used a tool ›" — with the assistant's text status update completely hidden. The same turns show the text normally on desktop browser and in the CLI. Occasionally a turn DOES render its text (appears related to how tool_use blocks group around the text block), so the collapsing heuristic seems to fold short text segments that sit between tool calls into the tool-group summary.
Impact
Operators monitoring an autonomous loop from mobile see a wall of "Ran a command, used a tool" with zero status information, and believe the agent is producing no output ("the loop output is not visible on iPad — only in desktop browser or linux shell"). For monitoring/ops use-cases (the main reason to check from a phone), this makes remote-control loops unusable on mobile.
Repro
- Start a remote-control session; give it a
/looptask with no interval (dynamic mode). - Each tick: agent runs a Bash tool, writes a 1-3 sentence status, then calls ScheduleWakeup as the last action.
- View the session in the iOS/iPadOS app: most ticks collapse to "Ran a command, used a tool ›" with the text invisible; expanding the row shows tool I/O but the narration is not surfaced as message text.
- View the same session on desktop web: text renders on every tick.
Expected
Assistant text blocks should always render as message text on mobile, even when sandwiched between tool_use blocks in a turn that ends with a tool call (which is structurally required for ScheduleWakeup loops).
Workaround in use
Routing anything important through PushNotification, and making tick text longer/bolder standalone paragraphs (partially effective).
(Note: the body of this issue was briefly blanked by an errant edit shortly after filing — this is the restored original text. Filed on behalf of an operator running production monitoring loops; screenshot available on request.)