docs: итоги сессии 2026-09-11 — STATUS обновлён, TODO/WALKTHROUGH созданы

- STATUS: дата 2026-09-11, реальные метрики (4884 письма, 81 контакт),
  cron id реальные (5f2305b2bbf8/ea0fd1ab4f93), блок портфеля веб-UI
- TODO.md: журнал задач (2026-07 → 2026-09-11)
- WALKTHROUGH.md: капитанский журнал (Фаза 1.7, Nylas, ФС vs Maildir,
  Radicale развёрнут, блокер с коллекциями)
- PLAN_WEBUI.md: план портфеля (был untracked)
This commit is contained in:
2026-09-11 14:31:06 +00:00
parent e31b5f2552
commit 757f3413e9
4 changed files with 314 additions and 15 deletions
+43 -15
View File
@@ -1,7 +1,7 @@
# Email Assistant — локальный архив и ассистент почты
**Дата:** 2026-07-19
**Фаза:** 1.5 — Индексация, поиск, дайджесты + Адресная книга (в работе)
**Дата:** 2026-09-11
**Фаза:** 1.5–1.7 + Портфель веб-UI (планирование)
**Стек:** Himalaya CLI → Python → SQLite → Ollama (Qwen3:8b) → Yandex Disk
@@ -104,6 +104,37 @@ Hermes cron:
---
## Портфель: Веб-интерфейс + Календарь/Задачи (2026-09-11)
План: `PLAN_WEBUI.md`. Порядок: Задача 4 → 2 → 3 → 1 → 6 → 7.
### Задача 4: Анализ ФС vs Maildir ✅ (закрыта 2026-09-11)
- [x] `STORAGE_ANALYSIS.md` — сравнение email.md/Maildir/MBOX/notmuch по 7 критериям
- [x] Рекомендация: **остаться на email.md** + добавить `tags: []` в frontmatter + опц. экспорт в Maildir
- [x] Ссылка в README; change `email-storage-analysis` заархивирован (openspec-lab)
- [x] Факты: 4884 письма, 76 МБ, 81 контакт
### Задача 2: Локальный календарь + трекер задач 🔵 (в работе)
- [x] Решение пользователя: **Radicale (CalDAV) + Vikunja (трекер)**, всё в Docker-контейнерах
- [x] Change `local-calendar-tasks` создан и валиден (опenspec-lab) — proposal/specs/design/tasks
- [x] **Radicale развёрнут**: контейнер, порт 5232, HTTP Basic (estorozhenko), PROPFIND → 207, без пароля → 401
- [ ] Коллекции Radicale (Личный/Рабочий/Задачи) — создание через MKCOL вернуло 403 (Radicale 3.x создаёт коллекции иначе: PUT ресурса); **заблокировано ожиданием решения**
- [ ] Vikunja — не начат (docker compose + postgres, порт 3456)
- [ ] Caddy reverse proxy (cal.nixg.ru → 5232, tasks.nixg.ru → 3456)
- [ ] Android-синхронизация (DAVx5)
### Задача 3: Нативная синхронизация с Android ⬜ (после Задачи 2)
- [ ] DAVx5 на телефоне → Radicale; Vikunja app/token
- [ ] Проверка двусторонней синхронизации (событие с телефона → bigbox)
### Задача 1: Веб-интерфейс ассистента ⬜
- [ ] FastAPI + SQLite FTS5: список писем (дата/адресант/тэги/папка)
- [ ] Перемещение в папку; тэги
- [ ] Кнопка «Создать задачу» → в Vikunja API (Задача 6)
- [ ] Страница авторизации (Задача 7)
---
## Решения и проблемы скриптов
### `mail_archive.py` — Инкрементальный архиватор
@@ -181,18 +212,15 @@ Hermes cron:
## Текущие метрики
| Папка | Писем | Контакты извл. |
|-------|-------|-----------------|
| INBOX | 585 | — |
| INBOX подпапки (18 хардкодных) | ~180 | — |
| **Неархивируемые подпапки INBOX** | **~120 папок не синхронизируются** | **—** |
| Sent | 515 | — |
| Отправленные | 510 | — |
| Archive | 373 | — |
| **Всего** | **2073** | **5** |
| Папка | Писем (2026-09-11) |
|-------|---------------------|
| INBOX (вкл. подпапки) | 2674 |
| Archive | 876 |
| Отправленные | 790 |
| Sent | 544 |
| **Всего** | **4884** (76 МБ, mail_index.db 5.4 MB) |
Индекс: 2073 письма, 5.4 MB SQLite.
Контакты: 5 найдено (clean_body отрезает подпись в большинстве forwarded-писем).
Контакты: **81** в contacts.json (не «5» — устарело; проверено 2026-09-11).
---
@@ -200,8 +228,8 @@ Hermes cron:
| ID | Имя | Расписание | Тип | Статус |
|----|-----|-----------|-----|--------|
| 22c5beb891cc | mail-archive-every-5min | every 5m | no-agent (скрипт) | ✅ |
| 8e181a988392 | contacts-extractor-every-30m | every 30m | скрипт (--limit 15) | ✅ |
| 5f2305b2bbf8 | mail-archive-every-5min | every 5m | no-agent (скрипт) | ✅ (Фаза 1.7: использует `--all --drain` с динамическим списком) |
| ea0fd1ab4f93 | contacts-extractor-every-30m | every 30m | скрипт (--limit 15) | ✅ |
| — | mail-index-incremental | not set | — | ❌ |
| — | digest-weekly | not set | — | ❌ |