Skip to content

v0.10.0

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Aug 23:32
· 1 commit to main since this release

Добавлено

  • Статистика срабатываний правил — match_count/last_matched_at накапливаются
    батчем в конце каждого прогона синхронизации (не по одной записи на письмо) и видны
    прямо в списке правил («Сработало N раз, последний раз: дата» / «Ещё ни разу»).
    Подключено ко всем трём движкам синхронизации (IMAP, Gmail API, MS Graph), у каждого —
    свои гарантии от повторного учёта одних и тех же совпадений при повторной
    синхронизации после сбоя: для IMAP агрегация безусловна (last_uid продвигается
    по каждому письму атомарно, повторный fetch того же UID невозможен); для Gmail API —
    запись статистики происходит вместе с курсором gmail_history_id, только если весь
    прогон завершился без ошибок (курсор один на весь ящик); для MS Graph — учёт идёт
    отдельно по каждой папке, только если синхронизация именно этой папки прошла успешно
    (у каждой папки свой собственный delta-курсор).
  • POST /api/v1/emails/bulk-delete и POST /api/v1/emails/bulk-folder — массовое
    удаление и перенос между папками для результатов поиска, плюс кнопки «Удалить
    выбранные»/«Переместить выбранные» в Archive UI (переиспользуют чекбоксы, уже
    существовавшие для восстановления). Перенос — только в рамках одного аккаунта (папка
    привязана к account_id); целевая папка ищется по имени и, если её ещё нет,
    создаётся с sync_enabled=false — новый метод FoldersRepo.GetOrCreateManual
    специально не переиспользует UpsertFolder, чтобы перенос в уже существующую,
    активно синхронизируемую папку не сбросил её last_uid и не заставил пересинковать
    её целиком. Перемещённому письму присваивается синтетический UID из отдельного
    диапазона (начиная с 4×10⁹), заведомо выше любого реального IMAP/Gmail/Graph UID, —
    это исключает коллизию с UID, который движок синхронизации назначит той же папке
    позже.
  • date_from/date_to у POST /api/v1/restore/bulk — восстановление всего аккаунта
    или папки теперь можно сузить диапазоном дат письма, не только полным объёмом; два
    новых поля даты в панели «Восстановить весь ящик»/«Восстановить эту папку» в
    Archive UI.
  • Мобильная адаптивная вёрстка Archive UI — результаты поиска на узких экранах (телефон,
    планшет в портретной ориентации) показываются карточками вместо таблицы, а не просто
    горизонтально скроллятся. Заодно исправлена не связанная напрямую, но обнаруженная
    при этой же проверке проблема: верхняя навигация (шапка сайта) не переносилась на
    новую строку на узких экранах и обрезала пункт «Настройки» — теперь переносится.

Исправлено

  • THIRD_PARTY_LICENSES.md — номера версий 17 зависимостей, обновившихся минорными
    Dependabot-патчами с момента последней генерации файла, приведены в соответствие с
    go.mod (классификация лицензий не менялась — только сами версии были устаревшими).
  • README.md и docs/USER_GUIDE.md дополнены описанием возможностей, добавленных за
    несколько предыдущих релизов, но так и не попавших в документацию: импорт
    mbox/Maildir/.eml, экспорт .zip/mbox, уведомления о сбоях (webhook/email),
    аудит-лог, dry-run правил, ручное удаление письма из архива, восстановление целого
    аккаунта/папки. Заодно убран устаревший пример с зафиксированной версией Docker-тега
    (:0.2.0) в пользу :latest.

Полный список изменений: v0.9.0...v0.10.0