mirror of
https://gitverse.ru/kpa39l/email-assistant.git
synced 2026-09-29 09:15:09 +00:00
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:
@@ -0,0 +1,60 @@
|
||||
# Proposal: Убрать Vikunja, задачи через Radicale (VTODO)
|
||||
|
||||
## Why
|
||||
|
||||
В проекте email-assistant были развёрнуты два сервиса для календаря/задач:
|
||||
- **Radicale** (CalDAV/CardDAV) — календари Личный/Рабочий/Задачи
|
||||
- **Vikunja** (трекер задач) — отдельная сущность на :3456, tasks.nixg.ru
|
||||
|
||||
Это лишняя сложность: Radicale из коробки поддерживает **VTODO** (задачи через
|
||||
CalDAV), а календарь «Задачи» в Radicale уже создан. На Android задачи из
|
||||
CalDAV-VTODO прекрасно синхронизирует **jtx board** (и DAVx5), не требуя
|
||||
отдельного трекера.
|
||||
|
||||
Vikunja добавляет:
|
||||
- лишний docker-контейнер + PostgreSQL
|
||||
- отдельный API, токен, админа (не созданы — блокер)
|
||||
- отдельный домен tasks.nixg.ru (reverse proxy, сертификат)
|
||||
- дублирование логики «создать задачу» (Vikunja API вместо простого VTODO)
|
||||
- усложнение чейнджа классификации (обработчик `task` зависел от несуществующего токена)
|
||||
|
||||
Убираем Vikunja из проекта. Задачи — через Radicale (VTODO в календаре «Задачи»).
|
||||
Это упрощает архитектуру, убирает лишнюю сущность, не теряя функциональности.
|
||||
|
||||
## What Changes
|
||||
|
||||
1. **Обработчик задач переключается на Radicale VTODO** — в чейндже
|
||||
`email-classification-handlers` обработчик `task` создаёт не задачу в Vikunja,
|
||||
а **VTODO в календаре «Задачи» Radicale** (CalDAV PUT). Тема письма → SUMMARY,
|
||||
ссылка на письмо → DESCRIPTION.
|
||||
2. **Vikunja выводится из эксплуатации** — остановить и удалить контейнеры
|
||||
`vikunja` и `vikunja-db`, убрать docker-compose.yml, .env (или пометить
|
||||
deprecated), освободить порт 3456.
|
||||
3. **tasks.nixg.ru** — если reverse proxy уже настроен, убрать/закомментировать;
|
||||
если нет — не настраивать. Radicale остаётся единственным CalDAV-сервером.
|
||||
4. **Обновить документацию** — STATUS.md, TODO.md, design чейнджей убрать Vikunja,
|
||||
зафиксировать «задачи = Radicale VTODO, jtx board».
|
||||
5. **TODO/общий список** — задача «Vikunja» закрыта как «не нужна»,
|
||||
«Caddy tasks.nixg.ru» — отменена.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
- `radicale-tasks`: создание задач (VTODO) в Radicale через CalDAV — заменяет
|
||||
Vikunja для обработчика `task` в email-classification-handlers.
|
||||
|
||||
### Modified Capabilities
|
||||
- (нет) — Vikunja не является capability проекта; это внешний сервис, который
|
||||
выводится из эксплуатации. Radicale-tasks — новое поведение.
|
||||
|
||||
## Impact
|
||||
|
||||
- **Docker**: остановить/удалить `vikunja`, `vikunja-db` (compose в
|
||||
`/opt/hermes/email-assistant/vikunja/`)
|
||||
- **Скрипты**: `email_handlers.py` (в чейндже classification) — обработчик `task`
|
||||
→ Radicale VTODO вместо Vikunja API
|
||||
- **Радикал**: календарь «Задачи» уже существует, туда пишутся VTODO
|
||||
- **Документация**: STATUS.md, TODO.md, design.md (local-calendar-tasks,
|
||||
email-classification-handlers) — убрать Vikunja, зафиксировать Radicale VTODO
|
||||
- **Caddy (если настроен)**: убрать/закомментировать tasks.nixg.ru
|
||||
- **TODO.md**: закрыть задачи Vikunja (2, 3, 6 — «создать задачу» теперь Radicale)
|
||||
Reference in New Issue
Block a user