Files
email-assistant/openspec/changes/remove-vikunja-use-radicale-tasks/proposal.md
T
hermes 7550aff102 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, формат дат)
2026-09-13 20:35:58 +00:00

4.1 KiB
Raw Blame History

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)