Files
email-assistant/README.md
T
hermes 8ea022f5c0 CardDAV: двусторонний синк контактов с Radicale (push+pull) + docs DAVx5/Caddy
- scripts/contacts_caldav_sync.py: push 81 контакт → vCard (Radicale :5232),
  pull правок/создания/удаления с телефона → contacts.json (ETag сверка,
  soft-delete, конфликты 412 → приоритет телефону, лог caldav-sync.log)
- fix(contacts_extractor): перестройка by_email-индексов после sort()
- STATUS.md: раздел DAVx5 + Caddy (Authorization/handle_path/X-Script-Name),
  Задача 3 (синхронизация с телефоном) = следующая сессия
- tasks.md: отмечены 1.x-3.x/V (реализовано и протестировано), добавлен
  раздел 5 (Caddy + DAVx5 + jtx board) для следующей сессии
2026-09-13 17:21:51 +00:00

1.9 KiB

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-мост)»