Problem
The approval banner in SessionScreen.tsx renders only req.toolName + the option buttons (e.g. "powershell needs your approval"). But the ApprovalRequest message includes toolArgs (see shared/messages.d.ts:96 and messages.mjs:114). The user is asked to approve a command without seeing what it is — they approve blind.
Why it matters
This is the single most important safety affordance in the app. Approving powershell without seeing the command is dangerous; the data needed to show it is already in hand and simply discarded.
Suggested fix
Render req.toolArgs (command / file / path) in the approval banner — at least a one-line summary, expandable to full args — before the Allow/Deny buttons.
Where
mobile/src/components/SessionScreen.tsx (approval banner, lines ~73–93).
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
The approval banner in
SessionScreen.tsxrenders onlyreq.toolName+ the option buttons (e.g. "powershell needs your approval"). But theApprovalRequestmessage includestoolArgs(seeshared/messages.d.ts:96andmessages.mjs:114). The user is asked to approve a command without seeing what it is — they approve blind.Why it matters
This is the single most important safety affordance in the app. Approving
powershellwithout seeing the command is dangerous; the data needed to show it is already in hand and simply discarded.Suggested fix
Render
req.toolArgs(command / file / path) in the approval banner — at least a one-line summary, expandable to full args — before the Allow/Deny buttons.Where
mobile/src/components/SessionScreen.tsx(approval banner, lines ~73–93).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.