rpi: mail — индекс «Отправленных», поиск по адресатам

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
gilfanovr
2026-10-12 17:10:56 +03:00
co-authored by Claude Opus 5.5
parent 3512f4dbef
commit fb76b2116b
+1
View File
@@ -248,6 +248,7 @@ Docker CE 29.9 + Compose v5.6 из репо download.docker.com (в Debian ст
- Скилл **`mail`** (`codex/skills/mail/`), `/usr/local/bin/mail`: индекс «Входящих» и «Спама» в `/var/lib/astra-mail/mail.db` (SQLite + FTS5, astra 2770/660) — поиск по отправителю/теме/тексту/вложениям, классы **важное / обычное / рассылка / спам** с причиной (правила владельца → Gmail «Спам» → адресаты «Отправленных» и смысловые признаки → List-Unsubscribe/категории Gmail → обычное). В Gmail ничего не меняет.
- `mail-sync.timer` (astra, раз в 5 мин после окончания прошлого запуска): `history.list` по `historyId`; если история устарела — полная пересинхронизация. ⚠️ **Квота Gmail проекта `astra` — ~100 писем `messages.get(full)` в минуту** (замерено: 403 «Units per minute per user» после ~105 запросов) → скорость ≤ 1,5 запроса/с; первичная индексация ~12,4 тыс. писем ≈ 2+ часа (запущена 2026-10-12).
- Первичная индексация завершена 2026-10-12 (~16:30): **12 447 писем**, 259 контактов. Грабли: ~500 писем, скачанных в прерванном прогоне до «отметить всё прочитанным», остались в индексе непрочитанными (полная синхронизация не перекачивает уже имеющиеся) → добавлена сверка `mail sync --unread` (и в конце полной), astra-bot b501d6d. Классы после настройки: важное 1822 / обычное 4700 / рассылка 5865 / спам 60; автоматические адреса (no-reply, notifier, hello@, info@…) не считаются «людьми», Gmail-«важное» для них → обычное.
- С 2026-10-12 (astra-bot db247c9) в индексе и **«Отправленные»** — класс «отправленное» (855 писем), в полнотекстовом поиске адресаты (миграция fts — пересоздание и `rebuild` при первом запуске), фильтр `--to`. Докачка +872 письма ≈ 10 мин; бэкап базы до миграции — `mail.db.bak-20261012-sent`, прежний скрипт — `/usr/local/bin/mail.bak-20261012-sent`. Итого 13 319 писем.
- **Выгрузка в заметки**: `mail export add АДРЕС ПАПКА` — письма адреса (вся почта) → заметки в `~astra/vault/ПАПКА/` (текст без изменений, вложения в `ПАПКА/attachments/<заметка>/`), проверка при каждом sync. Действует **nellka@inbox.ru → `Nelka/`** (193 письма 2014–2026, ~330 МБ вложений; Obsidian Sync принял, в т.ч. файлы > 5 МБ). Заметки попадают и в почасовой архив vault (`vault.git` → gitea).
- 2026-10-12 по просьбе владельца напоминания за 5 минут включены и для рабочей занятости (ранее только личный/семейный). Установлен astra-bot `cc6a4f8`, код и юнит — в `codex/skills/google/`; таймер каждую минуту без перезапуска бота. Работа читается только freeBusy, сообщение «Занят (работа)», подробности не запрашиваются; праздники исключены, утренний дайджест не изменён. ⚠️ FreeBusy объединяет соседние/пересекающиеся встречи в один интервал: напоминание к началу интервала, не каждой скрытой встрече. Запрос за полные дни сохраняет исходное начало и не напоминает о уже идущей встрече; дедуп включает календарь и начало. Проверены будущий рабочий интервал, пропуск идущего, отсутствие повторной отправки, 52 теста бота прошли. Предыдущий gcal сохранён `/usr/local/bin/gcal.bak-20261012-work`.