* feat(mobile): keep commit, PR and review drafts across kills
* refactor(mobile): build commit, PR and review drafts on the shared draft fields, and clear only the text that was sent
* fix(mobile): keep a toggle made during Write with AI, the edit note while its sheet closes, and a newer PR edit after an earlier save
* test(mobile): wait for the saved review note row instead of sleeping
* perf(mobile): keep a hash of the PR text an edit was typed against, not a second copy
* feat(mobile): keep Tasks and new-workspace drafts across kills
Task comments (per item and project row), the New issue title and body,
and the New workspace note now live in device-store draft rows. They come
back after the form closes or the app is killed, and only into an empty
field. A comment's setter stays bound to its item, so a send that settles
after the user moved on clears the right row.
* fix(mobile): rebuild comment sends when the draft's item changes
* fix(mobile): key the workspace note by host and keep cleared fields cleared
* fix(mobile): clear only the note a finished create sent
* fix(mobile): count clearing an empty draft field as the user's choice
* perf(mobile): cap field drafts, read sheet drafts on open, retry a failed read once
* fix(mobile): retry a failed draft read after a pause and keep New issue text typed during a create
* fix(mobile): save draft text again once a failed store read can be retried
* fix(mobile): remove a stored draft when an unread field is cleared
* refactor(mobile): give relay and encryption concrete owners
* refactor(mobile): organize session and review feature owners
* refactor(mobile): organize RPC and host ownership
* test(mobile): point render fixtures at concrete owners
* refactor(mobile): use explicit type-only owner imports
* feat(mobile): offer to restore unsaved file and markdown edits
* fix(mobile): keep offered edits through other discards and clear saved Markdown drafts
* fix(mobile): offer a copy of edits to a now read-only document and key drafts by host
* refactor(mobile): one guard for the draft save effect
* fix(mobile): clear an offer once its edits are saved by hand
* feat(mobile): keep automation drafts across kills
* fix(mobile): drop a created automation's draft on affirm and restore saved fields under typed ones
* fix(mobile): stop saving an automation draft after it is dropped
* fix(mobile): reopen the automation editor with in-memory edits while the store can't be read
* refactor(mobile): one rule for which automation draft fields changed
* feat(mobile): keep chat drafts and unsent text in the device store
* test(mobile): give the send tests a real draft destination
* fix(mobile): confirm reopened sends past the loaded window and save the journal id with the clear
* fix(mobile): let an open chat claim a released send, and warn on a reopened command
* refactor(mobile): share the pausable unconfirmed-send deadline between chat holds
* fix(mobile): hold every lost structured send and replace a re-held deadline; use the shared store value codec
* fix(mobile): save chip-only drafts, save only a send's own chips, and keep hold time across outages
* fix(mobile): hash a draft key the device store would refuse as too long
* fix(mobile): drop a sent message's chips in the write that settles it
* fix(mobile): return a structured host command whose reply was lost to the box