Files

9.8 KiB
Raw Permalink Blame History

TODO — Email Assistant

Формат: | дата | задача | статус | закрыта в |

2026-07 (Фазы 1–1.5)

Дата Задача Статус Закрыта в
2026-07-16 Фаза 0.5: рефакторинг формата — meta.json+body.md → email.md (YAML-frontmatter) ✅ закрыта STATUS.md
2026-07-16 Фаза 1: локальный архив (INBOX 585, Sent 515, Отправленные 510, Archive 373) ✅ закрыта STATUS.md
2026-07-16 Фаза 1.5: mail_index.py (SQLite FTS5) + sqlite_search.py + digest.py ✅ закрыта STATUS.md

2026-07-19

Дата Задача Статус Закрыта в
2026-07-19 Фаза 1.6: Contacts Extractor (LLM-подписи → contacts.json/vcf) 🔵 в работе
2026-07-19 clean_body — вырезание цитируемой переписки (Outlook/forward) ✅ закрыта STATUS.md контекст
2026-07-19 Cron mail-index-incremental 🔵 открыта
2026-07-19 Cron digest-weekly 🔵 открыта
2026-07-19 Push mirror gitea → gitverse.ru ✅ закрыта (2026-09-15, иначе: pull mirror gitverse → gitea) AGENT.md

2026-09-11

Дата Задача Статус Закрыта в
2026-09-11 Фаза 1.7: динамическое обнаружение подпапок INBOX (get_inbox_subfolders, --all, fix run_cmd) ✅ закрыта STATUS.md §1.7, git c7430d1
2026-09-11 Анализ Nylas CLI → NYLAS_ANALYSIS.md + ссылка из README ✅ закрыта git d4bf3ed
2026-09-11 Задача 4: Анализ ФС vs Maildir → STORAGE_ANALYSIS.md + README ✅ закрыта git e31b5f2; openspec change email-storage-analysis (архивирован)
2026-09-11 Задача 2: Radicale развёрнут (docker :5232, HTTP Basic, PROPFIND 207) ✅ закрыта openspec change local-calendar-tasks
2026-09-11 Задача 2: коллекции Radicale (Личный/Рабочий/Задачи) — MKCOL 403, ждёт решения способа 🔵 заблокировано
2026-09-11 Задача 2: Vikunja (docker :3456, postgres) — ЛИШНЯЯ СУЩНОСТЬ, задачи через Radicale VTODO ⛔ не нужна openspec change remove-vikunja-use-radicale-tasks
2026-09-11 Задача 2: Caddy reverse proxy (cal.nixg.ru, tasks.nixg.ru) — только cal.nixg.ru 🔵 открыта
2026-09-11 Задача 3: Android-синхронизация (DAVx5 → Radicale, задачи VTODO через jtx board) 🔵 открыта
2026-09-11 Задача 1: веб-интерфейс (FastAPI, список писем, перемещение, тэги) 🔵 открыта
2026-09-11 Задача 6: кнопка «Создать задачу» → Radicale VTODO (вместо Vikunja API) 🔵 открыта
2026-09-11 Задача 7: аутентификация веб-интерфейса 🔵 открыта

2026-09-13

Дата Задача Статус Закрыта в
2026-09-13 Radicale: смена пароля (пользователь не помнил; apr1-хэш, users.bak.) ✅ закрыта WALKTHROUGH
2026-09-13 «Обход в Глории» — VEVENT повторяющийся (Рабочий, VTIMEZONE Europe/Moscow) ✅ закрыта WALKTHROUGH
2026-09-13 Диагностика пайплайна: вложения НЕ качаются (баг himalaya --dir → --downloads-dir) ✅ закрыта openspec change email-classification-handlers
2026-09-13 Чейндж email-classification-handlers (классификация Qwen3:8b + обработчики) — создан, 0/23 задач 🔵 в работе openspec change email-classification-handlers
2026-09-13 (вечер) Вложения: фикс --dir→--downloads-dir, вложения качаются, идемпотентно ✅ закрыта WALKTHROUGH §2026-09-13 (вечер)
2026-09-13 (вечер) Классификатор scripts/email_classifier.py (Qwen3:8b → frontmatter classification) ✅ закрыта WALKTHROUGH §2026-09-13 (вечер)
2026-09-13 (вечер) Обработчики scripts/email_handlers.py (urgent→TG, task→VTODO, meeting→VEVENT, dry-run ✓) 🟡 частично: dry-run готов, живой прогон + TG не проверены WALKTHROUGH §2026-09-13 (вечер)
2026-09-13 (вечер) Radicale: синхронизация пароля в radicale/.env с data/users (смена 13.09 не обновила .env) ✅ закрыта WALKTHROUGH §2026-09-13 (вечер)
2026-09-13 Vikunja выведена из эксплуатации: контейнеры/volume/каталог удалены, tasks.nixg.ru закомментирован ✅ закрыта openspec change remove-vikunja-use-radicale-tasks (14/14)
2026-09-13 Тестовый VTODO test-vikunja-removal-2026 в «Задачи» (проверка CalDAV VTODO) ✅ закрыта WALKTHROUGH
2026-09-13 PRD.md создан (отсутствовал) ✅ закрыта PRD.md
2026-09-13 Задача 2: Caddy reverse proxy — cal.nixg.ru работает (207), tasks.nixg.ru закомментирован 🟡 частично (cal.nixg.ru готов) STATUS.md
2026-09-13 Задача 3: Android — контакты синхронизированы (DAVx5), события/задачи ещё не проверены в приложении 🔵 открыта

2026-09-15

Дата Задача Статус Закрыта в
2026-09-15 IMAP realtime sync: proposal/design/tasks/spec-дельты (openspec valid) ✅ закрыта openspec/changes/imap-realtime-sync/
2026-09-15 Выделена авторизация IMAP в scripts/imap_client.py (imap_connect, STARTTLS+LOGIN, re-try) + mail_archive.py переведён на неё ✅ закрыта STATUS.md §2026-09-15
2026-09-15 Логирование авторизации + метрики (JSON-лог /opt/hermes/email/logs/imap_client.log, imap_metrics, imap_session, --metrics) ✅ закрыта STATUS.md §2026-09-15
2026-09-15 Telegram-уведомления о важных письмах в ЛС (письмо 3216 → ЛС kpa39l, user подтвердил) ✅ закрыта .env проект (TELEGRAM_CHAT_ID=281328953)
2026-09-15 Баг: крон mail-classify-handlers использовал python3 без httpx → уведомления не уходили (10 urgent-писем в backlog). Фикс: /opt/vesti/.venv/bin/python + --limit 2 ✅ закрыта scripts/mail-classify-handlers.sh
2026-09-15 Формат даты в уведомлениях: 02.09.2026 10:49 (format_date_for_tg) + снятие YAML-кавычек (_unquote_yaml) ✅ закрыта scripts/email_handlers.py
2026-09-15 imap_stream.py (IDLE-цикл) — РЕАЛИЗОВАН (Фаза 1, задачи 3–5): IDLE-цикл с reconnect (45с), reconcile new/full, SQLite mailbox.db (mailbox_state, mailbox_events); --check/--test-idle/--status/демон ✅ закрыта @session:default/20260915_174925_ec1ca4; git 5a81c86
2026-09-15 Backlog urgent: корень найден (vesti/.env не грузился при python-dotenv) → 5 сентябрьских доставлены; фильтр актуальности URGENT_MAX_AGE_DAYS=3 (старые не шлются) ✅ закрыта @session:default/20260915_174925_ec1ca4; git 5a81c86
2026-09-15 Фильтр неактуальных уведомлений (запрос пользователя): is_urgent_recent() — письмо старше 3 дн не шлётся, помечается handled_urgent ✅ закрыта scripts/email_handlers.py; git 5a81c86
2026-09-15 Live-тесты Exchange с паузой ≥45с — все прошли (--check, --test-idle 30с, демон 150с пережил обрыв+reconnect) ✅ закрыта @session:default/20260915_174925_ec1ca4
2026-09-15 Репозиторий: gitverse = источник истины (создан kpa39l/email-assistant, remote gitverse, master запушен) ✅ закрыта AGENT.md, STATUS.md
2026-09-15 Gitea pull mirror: estorozhenko/email-assistant ← gitverse (12h, id 54) ✅ закрыта AGENT.md, STATUS.md
2026-09-15 AGENT.md: добавить местоположение токенов (git-tokens.env, VESTI_BOT_TOKEN, TELEGRAM_CHAT_ID) ✅ закрыта AGENT.md

2026-09-14

Дата Задача Статус Закрыта в
2026-09-14 Живой прогон обработчиков (urgent→TG, task→VTODO, meeting→VEVENT) — проверен end-to-end ✅ закрыта STATUS.md §Задача 8
2026-09-14 Бэкфилл вложений --attachments-backfill (докачка для 1697 писем has_attachment с пустыми attachments/) ✅ закрыта STATUS.md, openspec specs/email-attachments
2026-09-14 СРОЧНЫЙ ПАТЧ: архивация ставила \Seen (письма «прочитанными») — himalaya BODY[]; фикс: --preview + fetch_attachments_imaplib() (BODY.PEEK[], сырой IMAP) ✅ закрыта openspec change no-mark-seen-on-archive
2026-09-14 Верификация Seen-фикса живьём: UID 14200 (docx 1.1МБ) флаги () → () — Seen не выставлен ✅ закрыта tasks.md change no-mark-seen-on-archive