feat: классификация писем Qwen3:8b + обработчики (urgent→TG, task→VTODO, meeting→VEVENT)

- mail_archive.py: фикс вложений himalaya --dir → --downloads-dir; attachments/ только при has_attachment; идемпотентно
- email_classifier.py: Qwen3:8b (Ollama) → теги info/urgent/task/meeting в frontmatter email.md
- email_handlers.py: urgent→Telegram (Bot API+SOCKS5), task→Radicale VTODO, meeting→Radicale VEVENT; handled_* идемпотентность; --dry-run
- .gitignore: игнор *.env.bak*
- openspec: чейндж email-classification-handlers (в работе)
- STATUS/TODO/WALKTHROUGH: прогресс сессии, подводные камни Radicale (http.client, Depth:1, формат дат)
This commit is contained in:
2026-09-13 20:35:58 +00:00
parent 8ea022f5c0
commit 7550aff102
22 changed files with 1728 additions and 76 deletions
@@ -1,5 +1,10 @@
# Proposal: Локальные сервисы календаря (Radicale) и задач (Vikunja)
> ⚠️ **SUPERSEDED (2026-09-13):** Часть про **Vikunja** заменена чейнджем
> `remove-vikunja-use-radicale-tasks` — Vikunja выведена из проекта (лишняя
> сущность), задачи ведутся через **Radicale VTODO** (календарь «Задачи»).
> Radicale-часть актуальна.
## Why
Для синхронизации календаря и задач с Android-телефоном нужны локальные