# Proposal: Не помечать письма прочитанными при архивации ## Problem `mail_archive.py` читает каждое письмо через `himalaya message read` и `himalaya attachment download`. Обе команды himalaya по умолчанию запрашивают тело письма через IMAP `BODY[]`, из-за чего почтовый сервер автоматически выставляет флаг `\Seen` — письмо в почтовом ящике становится **прочитанным**. Подтверждение на живых данных (2026-09-14): ``` INBOX/!Персонал/2026/09/73/email.md flags: ["Seen", "Answered"] INBOX/!Персонал/2026/09/70/email.md flags: ["Seen"] ``` Свежие входящие письма (сентябрь 2026) пришли непрочитанными, но после автоматической архивации (cron каждые 5 мин) получили флаг `Seen`. Статистика по всему архиву: 4223 письма с `Seen` против 973 без флагов. Это нарушает пользовательское ожидание: вложение/тело скачивается автоматически, но «руками» в ящике письмо никто не читал, и оно должно оставаться непрочитанным. ## Expected behavior 1. Архивация (включая скачивание вложений) НЕ выставляет флаг `\Seen`. 2. Скачивание вложений НЕ выставляет флаг `\Seen`. 3. Классификация/обработчики НЕ выставляют флаг `\Seen`. 4. Ручные команды чтения (`himalaya message read` без флагов) продолжают работать как раньше (это личное действие пользователя). ## Accepted solution - `himalaya message read` → добавить флаг `--preview` (документировано: «Read the message **without** applying the "seen" flag to its corresponding envelope»). - `himalaya attachment download` → у команды НЕТ флага `--preview`. Обход: перед скачиванием вложений выполнять только операции, не ставящие Seen; сам `attachment download` заменить на извлечение вложений из уже скачанного полного письма (`himalaya message export --full` + распаковка MIME в stdlib Python) ЛИБО временно (до починки himalaya) — выставлять Seen обратно через `himalaya flag remove` сразу после скачивания. Выбор между двумя вариантами для вложений — в design.md (будет решён по результатам проверки, ставит ли `message export` Seen). ## Out of scope - Изменение поведения `himalaya message read` для интерактивного пользователя. - Исправление бага himalaya (это upstream issue). ## Rollback - Патч минимален: `--preview` в одном месте + option для вложений. - Откат: удалить строку `--preview` (или вернуть способ скачивания вложений). - Флаги уже помеченных писем этим патчем не возвращаются (отдельная задача, вне scope).