Files
rust-xmpp/docs/CHANGELOG-0.4.0.md
2026-10-20 15:59:55 +07:00

40 lines
3.8 KiB
Markdown

# 0.4.0
Экспериментальная версия; полная взаимозаменяемость с Prosody не заявляется.
- SASL2 Bind2: опциональный модуль `sasl2_bind2` (alias `bind2`), inline SM,
CSI, Carbons, MAM metadata, случайные ресурсы и замена сессии того же
аккаунта с тем же валидным UUIDv4 устройства. SASL2 inline resume пока нет.
- PubSub/PEP: full-JID blocklist во всех путях доставки и replay, соблюдение
`include_payload` при replay, native deliver_notifications/deliver_payloads,
независимые правила notify_retract, корректные publish-options ошибки и
сравнение native строковых лимитов max_items.
- MUC: защита от понижения/исключения равного модератора без admin/owner,
сохранность бинарной occupant_id_salt и приоритет native _affiliations.
Нативные MUC-блокировки домена запрещают вход и исключают текущих участников.
- Федерация: общий deadline аутентификации, проверка положения TLS/SASL
features в XML, нормализация регистра доменов, проверка DNS labels и
безопасное переподключение до передачи stanza актору записи.
- Push: только текст настоящего body/subject в namespace сообщения включается
в summary/importance; содержимое чужих XML extensions не раскрывается.
- Сообщения: fallback отсутствующего full JID на активные ресурсы, native
правила headline/error/groupchat; offline-доставка bodyless receipts и
no-permanent-store без сохранения последнего в MAM.
- HTTP: обрезка допустимого byte range до конца файла, квоты просроченных
незагруженных слотов, синхронизация PUT с очисткой, регистронезависимый
Bearer и сохранение XML namespaces WebSocket/BOSH. Поддержаны URL с завершающим
слешем и WS CORS OPTIONS. BOSH продолжает обработку RID после HTTP disconnect,
сохраняет ответ для повторного запроса и не выполняет stanza дважды.
Число обработчиков и время выполнения ограничены.
- Каталог данных блокируется между процессами Rust, включая CLI create-user.
Блокировка не защищает от одновременно работающей Prosody.
- Нагрузочный сценарий поддерживает несколько аккаунтов и несколько раундов
сообщений; проверяется также адрес реального отправителя.
- `bash scripts/verify-local.sh` повторяет сборку и доступные локальные
протокольные проверки. HTTP-тест требует Python package `websockets`.
Изменений формата пользовательских файлов не требуется. Существующий конфиг
не включает Bind2 автоматически. Для переключения рабочего сервера всё ещё
требуются проверка копии данных и проверки целевых клиентов/окружения;
актуальные пределы перечислены в COMPATIBILITY.md.