Tapping a gateway attachment gave zero feedback while the file downloaded (a 100MB file could sit there silently for tens of seconds). Mirror the save spinner: ChatUiState gains openingAttachmentPath, set when openAttachment starts the download and cleared in a finally, and the attachment card renders a small CircularProgressIndicator while its path is being fetched. Wired through FullBleedChatList, ChatBubble and FullBleedAgentMessage. Co-authored-by: M57 <hy4ri@users.noreply.github.com>