0.73.0
Added
- File Attachments API: эндпоинты
POST/GET/DELETE /api/v1/agents/{id}/files/*для загрузки, скачивания, листинга и удаления файлов в workspace агента (Closes #90) - File metadata: таблица
stored_filesс миграцией 039, CRUD-методы в Store (SQLite + PostgreSQL) - File audit log: таблица
file_audit_logс миграцией 040, аудит upload/download/delete с IP-адресами (Closes #95) - Agent file context: прикреплённые файлы из чата передаются в HandleMessage, информация о файлах добавляется в LLM-контекст (Closes #91)
generate_filetool: новый инструмент агента для генерации файлов вoutput/директории workspace (Closes #94)- Email attachments: параметр
attachmentsвemail_sendtool, MIME multipart вложения, FsGuard path validation (Closes #92) - SMTP attachments: метод
SendWithAttachmentsвemail/smtp.goс base64-encoding и multipart/mixed - Workspace context:
ContextWithWorkspace/WorkspaceFromContextдля передачи workspace path через context - WebSocket MediaItem: расширен полями
filename,mime_type,size,file_id,path; attachments пробрасываются в bus.InboundMessage - Frontend file upload: кнопка 📎 в ChatComposer, drag-and-drop, предпросмотр вложений, загрузка через REST API (Closes #93)
- Frontend download buttons: ссылки на
/files/downloadрендерятся как стилизованные карточки скачивания в ChatMessage - API client:
api.files.upload/download/list/deleteметоды, поддержка FormData
Fixed
- Путь файла (path) не доходил до агента — MediaItem не содержал поле Path. Теперь пробрасывается через всю цепочку
- Нельзя было отправить только файл без текста — ChatStore.sendMessage блокировал пустой текст даже при наличии media
- Пользователь не видел свои вложения в отправленном сообщении — добавлен 📎 prefix с именами файлов