mirror of
https://gitverse.ru/kpa39l/email-assistant.git
synced 2026-09-29 09:15:09 +00:00
7550aff102
- 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, формат дат)
61 lines
4.1 KiB
Markdown
61 lines
4.1 KiB
Markdown
# 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)
|