hermes 39df85b51c fix: архивация/вложения больше не помечают письма прочитанными (Seen)
Причина: himalaya message read и attachment download используют IMAP BODY[],
который по RFC 3501 выставляет \Seen на сервере (Microsoft Exchange).
Пользователь: письма в ящике после скачивания становятся прочитанными.

Фикс:
- чтение тела: himalaya message read --preview (не ставит Seen)
- вложения: fetch_attachments_imaplib() — сырой IMAP stdlib (socket+ssl),
  UID FETCH (BODY.PEEK[]), папки в modified UTF-7, литералы до 1.5МБ,
  MIME-encoded words, фолбэк himalaya + flag remove seen

Проверено живьём: UID 14200 (INBOX, docx 1.1МБ) флаги ()->() — Seen не выставлен.
Openspec: change no-mark-seen-on-archive заархивирован (2026-09-14-no-mark-seen-on-archive), 7/7 validate OK
2026-09-14 08:08:48 +00:00

Email Assistant

Локальный архив и ассистент почты. Инкрементальный архиватор писем с IMAP, SQLite FTS5-поиск, извлечение контактов из подписей через LLM, еженедельные дайджесты.

Стек: Himalaya CLI → Python → SQLite → Ollama (Qwen3:8b) → Yandex Disk

Статус: Фаза 1.5 — Индексация, поиск, дайджесты + Адресная книга (в работе)

Подробнее: STATUS.md

Оценка альтернатив

CardDAV / CalDAV (контакты, календарь, задачи)

  • Radicale (:5232, bigbox, Docker) — CalDAV/CardDAV-сервер. Карточки контактов синхронизируются двусторонне: scripts/contacts_caldav_sync.py (push 81 контакт → vCard; pull правок/создания/удаления с телефона → contacts.json).
  • Vikunja (:3456) — трекер задач (в Docker, разворачивается).
  • Android: DAVx⁵ (F-Droid/Play) для контактов/календаря, jtx board для задач Vikunja.
  • Публичный доступ: через Caddy на vps02 (cal.nixg.ru → Radicale, tasks.nixg.ru → Vikunja) — настройка = следующая задача; подробности и конфиги Caddy: STATUS.md → «DAVx⁵ (Android: CalDAV/CardDAV-мост)»
S
Description
No description provided
Readme 393 KiB
Languages
Python 98.4%
Shell 1.6%