Problem
sendMode optimistically sets timeline.mode then sends. If the send fails, there's no rollback or error — the composer pill shows the new mode while the agent is still in the old one, silently diverging.
Suggested fix
Confirm the mode change from the extension (ack) before committing the pill, or roll back + notify on failure.
Where
mobile/src/lib/sessionManager.ts (sendMode, ~408–414).
Filed from a UI research sweep of the Helm mobile app (landing + live demo session) using Playwright + full source review, cross-referenced against Claude, ChatGPT, GitHub Copilot Chat, and Codex/Claude Code UIs.
Problem
sendModeoptimistically setstimeline.modethen sends. If the send fails, there's no rollback or error — the composer pill shows the new mode while the agent is still in the old one, silently diverging.Suggested fix
Confirm the mode change from the extension (ack) before committing the pill, or roll back + notify on failure.
Where
mobile/src/lib/sessionManager.ts(sendMode, ~408–414).Filed from a UI research sweep of the Helm mobile app (landing + live demo session) using Playwright + full source review, cross-referenced against Claude, ChatGPT, GitHub Copilot Chat, and Codex/Claude Code UIs.