MAM
append использует один sync вместо четырёх, SM checkpoint — один
вместо двух.
Checksummed redo journals сохраняют commit-before-ACK и
восстанавливают
native archive/SM JSON exports после аварии.
- Ограничены рост журналов, ротация и tombstone GC. Старый `.rappend` и
legacy
JSON импортируются. Retain/save/purge не возвращают удалённые записи.
- Recovery синхронизирует валидный journal перед публикацией состояния;
проверка
checksum не заменяет durability barrier. EIO при adoption блокирует
startup
или offline handoff. Новые fault fixtures проверяют сохранность
журнала и retry.
- Replay SM проверяет checksum/JSON всех frames, но создаёт и валидирует
полный
Record только для последнего snapshot, сокращая работу с superseded
queues.
- `message-processing-slow` содержит времена MAM отправителя/получателя,
доставки, carbons, offline/push и handled, а также число
ресурсов/копий.
Payload и секреты не добавляются в логи.
- Добавлена offline команда `storage-checkpoint CONFIG`: durable экспорт
и
передача archive writer/подготовка отката на legacy Rust. Не
запускайте другого
writer и не удаляйте journals до успешного завершения команды.
- Новые crash, partial-write, corruption, EIO, recovery, handoff и
latency
регрессии включены в GitHub Actions через verify-local.sh; отчёты
сохраняются.
Измерения, ограничения и эксплуатация:
[docs/DURABLE-MESSAGE-IO.md](docs/DURABLE-MESSAGE-IO.md),
[docs/VALIDATION-0.8.3.md](docs/VALIDATION-0.8.3.md).
сообщения
больше не выполняется полный scan/rewrite архива для expiry. Очистка
остаётся
в maintenance и перед MAM-запросами; append и crash checkpoint до
fanout сохранены.
- Неизменённые native config/persistent index не перезаписываются при
каждом
сообщении. Удалённые файлы восстанавливаются, ошибки экспорта
повторяются.
- CSI больше не сохраняет SM snapshot при отсутствии изменения durable
очереди.
Изменённая очередь сохраняется до отправки; при ошибке записи очередь
откатывается.
- Личные сообщения, IQ и входящая федерация к аккаунтам больше не
захватывают
общий MUC mutex, ожидая несвязанную работу с комнатными архивами.
- Добавлены регрессии native exports/archive scanning/CSI rollback и
реальный
TLS latency check в verify-local.sh, автоматически включённый и в CI.
Измерения и границы подтверждения:
[docs/MESSAGE-LATENCY.md](docs/MESSAGE-LATENCY.md).
Результаты итогового прогона:
[docs/VALIDATION-0.8.1.md](docs/VALIDATION-0.8.1.md).
- Личные сообщения и SM ACK больше не ждут сетевую отправку push.
Уведомления
отправляются через очередь1024 с максимум8параллельных маршрутов;
worker
и его задачи отменяются при завершении serve. Ошибки очереди/маршрута
логируются.
- Offline сообщение сохраняется до публикации push, чтобы проснувшийся
клиент
мог сразу получить его. Подтверждена очередь при первом TLS stream
push gateway.
- По умолчанию CSI считает важными bodyless OMEMO legacy/2, delivery
receipts
и chat markers. Явный список `csi_important_payloads` заменяет
расширенные defaults.
Низкоприоритетный headline по-прежнему буферизуется. Policy
обновляется и при SM resume.
- Выбор адресатов и carbons фильтрует владельцев до захвата session
mutex;
зависшая сессия чужого аккаунта не задерживает этот путь. Duplicate SM
ACK
без изменения durable counters/queue не переписывает snapshot.
- Bind2 и MAM metadata IQ читают только первый/последний native record
вместо
сканирования всей истории. Индекс не требуется; recovery/лимиты записи
сохранены.
- Добавлен `message-processing-slow`: обработка message дольше250мс,
поля
duration_ms/route, без payload/токенов. Это время обработки сервером,
не peer receipt.
- Новые сетевые регрессии включены в verify-local.sh/GitHub CI.
Причины, изменение CSI policy, измерения и ограничения:
[docs/PERSONAL-MESSAGE-LATENCY.md](docs/PERSONAL-MESSAGE-LATENCY.md).