сообщения больше не выполняется полный 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).
4.1 KiB
Проверка0.8.2
2026-10-21, Linux x86_64, Rust1.99.1. Итоговый единый прогон: verify.txt. Machine-readable report: validation-results.json.
| Проверка | Результат |
|---|---|
| Rust ordinary tests | 305passed,0failed,11ignored |
| fmt / Clippy all-targets -D warnings / release | Успешно |
| Новые Rust regressions | 6archive endpoints/recovery/limits +2account-lock/duplicateACK — успешно |
| Личная доставка | 6fixtures:100000MAM/user, roster0/5000/10000,500SMpending, default/native CSI — успешно |
| Неподвижный push gateway | Настоящий STARTTLS; hibernating+offline: bothmessagesdurable, senderACKh=4 до ответа gateway; offline сохранён до первого postTLSstream |
| Bind2 и MAM metadata | 100000records,5reconnects+5IQ, exactIDs/timestamps — успешно |
| Сетевые регрессии | Весь verify-local.sh, включаяprivate WSS/BOSH chat, PEP/push,AndroidSASL,MUCcrash/SMrestart,S3/migration — успешно |
| Native reference | 8module/storage +1TLS/SASL EXTERNAL federation — успешно |
| Общая нагрузка | 500TLS,100accounts,5000ping,5000messages,10000MAM,failures=[] |
| MUC+SM нагрузка | 500resources,10rooms,25000presence,1500messages,SIGKILL+10resume — успешно |
MUC+SM total 45.54с, peak sampled RSS 40.94MiB.
Воспроизведение личного push-stall: прежний0.8.1 за2с сохраняет только первое сообщение и не отвечаетSMACK при зависшем postTLSfeatures gateway. Новый0.8.2 сохраняет оба и отвечаетh=4 в том же2сокне; тестовое окно не является latency SLA. Offline ordering baseline проверен на0.8.0; его точный hash указан отдельно.
Bind2 authenticate→success median2742.353→1.976мс; metadataIQ2437.945→0.355мс. Baseline0.8.0hash74882319… содержит тот же прежний scan path. Все raw samples, IDs, timestamps и hashes — validation-logs-0.8.2/bind2-*.json.
Default inactive OMEMO доставлен за2.58–4.06мс, receipts7.36–35.56мс в checked fixtures; explicit[] сохраняет удержание доactive. Намеренный CSI dwell2с отдельно обозначен в отчёте и не выдаётся за время вычисления/доставки. Каждый personalarchive содержит ровно100523records/user. Детали и настройка: PERSONAL-MESSAGE-LATENCY.md.
Release SHA-256: 130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5. Все новые final reports содержат этот hash.
Команда: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh с native env согласно
scripts/prosody_compat/README.md. Использованы CARGO_INCREMENTAL=0,
CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0. Перед итоговым прогоном
устранены stale package linker artifacts очисткой package build outputs;
исходники не менялись после финальной сборки. Воспроизведение прошло одним
последующим полным прогоном; preliminary compiler errors не являются test failures.
Это loopback, не production клиента/диска/сети. Fsync и durable commit до подтверждения сохранены; boundedpushqueue не обещает durable notification delivery. SMglobalIOmutex, полные MAMqueries и maintenance остаются отдельной стоимостью. 9nativeignoredtests выполнены; остальные AF_UNIX/largearchiveignoredtests и 10GiBtransfers в этом локальном прогоне не запускались (полный CI entrypoint по-прежнему включает их). Старые largeupload результаты не приписываются0.8.2. Общие границы: COMPATIBILITY.md.