When switching between existing `/agents` chats, unsent file attachments
were kept only in React state and were lost when the chat page
remounted.
This adds chat-scoped draft attachment persistence for the compose
input, keeps edit-mode attachments isolated from compose drafts, warns
when a file cannot be saved to localStorage, and cleans up restored
draft payloads after upload or send.
> Mux is acting on Mike's behalf.