design.md: решения 21–22 по Task 5 (#83)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-22 14:45:36 +04:00
parent 3ad63886a7
commit d3de2d6670

View File

@ -173,3 +173,7 @@
20. 2026-10-22 — **неизвестный id вложения в `GET /attachments/{id}` — 404 `no_attachment`; `Content-Type` из `mime_type` только 20. 2026-10-22 — **неизвестный id вложения в `GET /attachments/{id}` — 404 `no_attachment`; `Content-Type` из `mime_type` только
при формате тип/подтип, иначе `application/octet-stream`.** Обоснование: единые коды вложений; заголовок не берётся при формате тип/подтип, иначе `application/octet-stream`.** Обоснование: единые коды вложений; заголовок не берётся
из недоверенных данных Jira как есть. Цена ошибки: нет. (R-7.) из недоверенных данных Jira как есть. Цена ошибки: нет. (R-7.)
21. 2026-10-22 — **`safe_name`: имя «.» и «..» заменяется на `attachment-<id>`.** Обоснование: без этого «..» (разделители уже заменены) остаётся именем файла
в каталоге копий; укрепление против обхода пути. Цена ошибки: нет. (R-8, решение исполнителя Task 5.)
22. 2026-10-22 — **опрос MCP `attachment` — раз в `POLL_SECONDS/2` (2,5 с), а не ровно 2 с; строка «взято самое новое» — только в ответе
`ready`.** Обоснование: так сказано в плане, интервал в спеке приблизителен; на таймауте/ошибке важнее их текст. Цена ошибки: нет. (R-9.)