ролей, членства и ограниченной истории без MAM. Изменение фиксируется до публикации ответа; при ошибке записи состояние комнаты откатывается. - Crash recovery использует последнее сохранённое поколение после SIGKILL, включая временные комнаты. Heartbeat обновляет живое членство; ожидающие записи сохраняют исходный deadline через повторные перезапуски. `muc_recovery_grace_period`: по умолчанию 300 секунд, пределы 1..604800. - Подтверждённые выходы, смена nick, ролей и политик комнаты не заменяются старой записью восстановления. Native config/state остаются экспортом для Prosody; согласованное восстановление Rust использует собственный sidecar. - Исправлены MUC probe, неизвестные типы presence, вход без MUC `<x/>`, ошибки доставки и статус 333. Обычные presence extensions сохраняются в живом обмене; поддельная MUC identity фильтруется. `subject` вместе с `body` либо `thread` не изменяет тему комнаты. - Подключены `muc_max_rooms`, `restrict_room_creation`, политики регистрации и зарегистрированного nick, `muc_tombstone_expiry`; добавлены встроенные административные ad-hoc команды уничтожения комнат и изменения affiliation. - Hub сохраняет resumable XEP-0198 сессии, счётчики и очередь. Resume после перезапуска доступен на новом TLS/SASL-транспорте через legacy SASL и SASL2. Действующие приватные SM-записи восстанавливают логические сессии и MUC до открытия listeners: offline-доставка попадает в очередь, синтетический join и история повторно не отправляются. SM resume не требует дополнительной available presence; без SM восстановление MUC требует новой аутентификации точного полного JID и available presence либо явного MUC-входа. Входящий handled-счётчик обновляется после обработки. Сокеты TCP/TLS не сохраняются; неопределённая сетевая отправка допускает повторную доставку. - Известные встроенные MUC-возможности Prosody отображаются на Rust-реализацию. Произвольные Lua/community-модули не исполняются; неизвестные явно включённые MUC-модули отклоняются при запуске. Общие и host `modules_disabled` учитываются для vCard и occupant-id. Порядок восстановления, ограничения хранения и отката на Prosody: [docs/MUC-RECOVERY.md](docs/MUC-RECOVERY.md). Проверка: 293 Rust tests, Clippy/fmt/release, полный сетевой прогон, 500 TLS MUC+SM ресурсов с SIGKILL/resume и native reference — успешно. Подробности: [docs/VALIDATION-0.8.0.md](docs/VALIDATION-0.8.0.md).
40 lines
3.8 KiB
Markdown
40 lines
3.8 KiB
Markdown
# 0.8.0
|
||
|
||
- MUC сохраняет согласованный журнал конфигурации, affiliations, nick, ролей,
|
||
членства и ограниченной истории без MAM. Изменение фиксируется до публикации
|
||
ответа; при ошибке записи состояние комнаты откатывается.
|
||
- Crash recovery использует последнее сохранённое поколение после SIGKILL,
|
||
включая временные комнаты. Heartbeat обновляет живое членство;
|
||
ожидающие записи сохраняют исходный deadline через повторные перезапуски.
|
||
`muc_recovery_grace_period`: по умолчанию 300 секунд, пределы 1..604800.
|
||
- Подтверждённые выходы, смена nick, ролей и политик комнаты не заменяются
|
||
старой записью восстановления. Native config/state остаются экспортом для
|
||
Prosody; согласованное восстановление Rust использует собственный sidecar.
|
||
- Исправлены MUC probe, неизвестные типы presence, вход без MUC `<x/>`, ошибки
|
||
доставки и статус 333. Обычные presence extensions сохраняются в живом
|
||
обмене; поддельная MUC identity фильтруется. `subject` вместе с `body` либо
|
||
`thread` не изменяет тему комнаты.
|
||
- Подключены `muc_max_rooms`, `restrict_room_creation`, политики регистрации
|
||
и зарегистрированного nick, `muc_tombstone_expiry`; добавлены встроенные
|
||
административные ad-hoc команды уничтожения комнат и изменения affiliation.
|
||
- Hub сохраняет resumable XEP-0198 сессии, счётчики и очередь. Resume после
|
||
перезапуска доступен на новом TLS/SASL-транспорте через legacy SASL и SASL2.
|
||
Действующие приватные SM-записи восстанавливают логические сессии и MUC
|
||
до открытия listeners: offline-доставка попадает в очередь, синтетический
|
||
join и история повторно не отправляются. SM resume не требует дополнительной
|
||
available presence; без SM восстановление MUC требует новой аутентификации
|
||
точного полного JID и available presence либо явного MUC-входа.
|
||
Входящий handled-счётчик обновляется после обработки. Сокеты TCP/TLS
|
||
не сохраняются; неопределённая сетевая отправка допускает повторную доставку.
|
||
- Известные встроенные MUC-возможности Prosody отображаются на Rust-реализацию.
|
||
Произвольные Lua/community-модули не исполняются; неизвестные явно включённые
|
||
MUC-модули отклоняются при запуске. Общие и host `modules_disabled` учитываются
|
||
для vCard и occupant-id.
|
||
|
||
Порядок восстановления, ограничения хранения и отката на Prosody:
|
||
[docs/MUC-RECOVERY.md](docs/MUC-RECOVERY.md).
|
||
|
||
Проверка: 293 Rust tests, Clippy/fmt/release, полный сетевой прогон, 500 TLS
|
||
MUC+SM ресурсов с SIGKILL/resume и native reference — успешно.
|
||
Подробности: [docs/VALIDATION-0.8.0.md](docs/VALIDATION-0.8.0.md).
|