Problem
The composer's text lives in local component state (const [text, setText] = useState('') in Composer.tsx) and is reset whenever the component unmounts — i.e. when you switch sessions via the drawer or reload the app. A half-typed prompt vanishes.
Suggested fix
Persist per-session draft text (keyed by channelId) in the session store / localStorage and restore it when the session is reopened.
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 composer's text lives in local component state (
const [text, setText] = useState('')inComposer.tsx) and is reset whenever the component unmounts — i.e. when you switch sessions via the drawer or reload the app. A half-typed prompt vanishes.Suggested fix
Persist per-session draft text (keyed by
channelId) in the session store /localStorageand restore it when the session is reopened.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.