Persist channel DRED settings
Build and test / test (macos-latest) (push) Canceled after 0s
Build and test / test (ubuntu-24.04) (push) Canceled after 0s
Build and test / test (windows-latest) (push) Canceled after 0s
Build and test / apple-client (push) Canceled after 0s

This commit is contained in:
2026-09-22 14:11:36 +02:00
parent 8471eac363
commit 7c4708c3de
9 changed files with 101 additions and 11 deletions
+3 -2
View File
@@ -228,7 +228,8 @@ moves members to Lobby (even if full), clearing their streams. Edits stop existi
so clients must negotiate the updated audio configuration. Channel names/topics/passwords
are limited to 128/4096/1024 UTF-8 bytes. Audio requires Opus, 48 kHz, mono/stereo,
500512000 bps, integral 5/10/20/40/60 ms frames and valid application/loss/complexity.
Database v2 has no DRED column; CRUD rejects DRED rather than silently losing it on restart.
Database v3 persists DRED with the rest of the channel audio configuration. Opening a v1 or v2
database adds the DRED column with a disabled default before accepting channel updates.
Session permissions gate kick/ban/move/mute and account operations. Only administrators
can grant permissions; account-administration permission cannot grant administrator status.
@@ -283,7 +284,7 @@ The reaper sends a fatal disconnect, removes presence/routing and broadcasts one
event. Valid UDP activity keeps a TCP-idle client alive. Shutdown cancels and awaits
the accept, reaper, control and media loops before disposing credentials/storage.
`AccountStore(path)` uses schema version 2 and accepts version 1 migration,
`AccountStore(path)` uses schema version 3 and accepts version 1 and 2 migrations,
and rejects unknown revisions. Opening an existing channel table does not reseed it.
Account creation/authentication uses parameterized SQL; two password workers bound
per-store Argon2 work. Failed authentication leaves `last_login` unchanged. Dispose