8ea022f5c08361bcbdfb3e1c21d6be20f21953f7
- 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) для следующей сессии
Email Assistant
Локальный архив и ассистент почты. Инкрементальный архиватор писем с IMAP, SQLite FTS5-поиск, извлечение контактов из подписей через LLM, еженедельные дайджесты.
Стек: Himalaya CLI → Python → SQLite → Ollama (Qwen3:8b) → Yandex Disk
Статус: Фаза 1.5 — Индексация, поиск, дайджесты + Адресная книга (в работе)
Подробнее: STATUS.md
Оценка альтернатив
- Анализ Nylas CLI — почему Nylas не подходит для локального архива (2026-09-11)
- Анализ формата хранения: ФС vs Maildir — почему текущий формат удобнее Maildir для локальной LLM (2026-09-11)
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-мост)»
Description
Languages
Python
98%
Shell
2%