Repository navigation
fix(rooms): reclaim empty rooms on public sites - #456
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Public sites can exhaust the four-digit room-code pool because retained room authority has no default expiry. Add an opt-in empty-room timeout and reclaim the oldest eligible empty room when capacity is exhausted. Connected Hosts and Viewers retain their rooms through sharing, pause and idle chat; the existing reconnect grace protects early reclamation.
The default remains disabled, including App Local and the internal deployment. The public Demo will use
ROOM_EMPTY_TIMEOUT_SECONDS=3600. Retirement reuses the storage-first deletion and signaling cleanup owners; no protocol or SQLite schema changes are required.Validation: Web type-check, 81 test files / 1372 tests and production build; Go core tests, formatting, vet and target builds; documentation/project hygiene; access-privacy gate; live server expiry/occupied-room check. Regression coverage includes all 9000 codes, restart, stale credentials, reconnects, revocation and atomic storage failure. Native device behavior is unchanged; physical macOS/Linux acceptance retains its documented limits.
Release notes
中文
这是一次面向公共站点的维护更新,解决长期保留的空房间占满房间号的问题。
ROOM_EMPTY_TIMEOUT_SECONDS=3600,在房间连续无人在线一小时后回收;未配置的站点保持原有行为。English
This maintenance release helps public sites avoid exhausting room codes through indefinitely retained empty rooms.
ROOM_EMPTY_TIMEOUT_SECONDS=3600to retire rooms after one continuous hour with no connected participants. Unconfigured sites retain their existing behavior.