cb7ca4b5f3f386591dd99c32e8fad29a7f9c780f
The deposit gate already caps PRESENCE at 5 visitors (+owner = 6), so voice membership is bounded — but a present member opening multiple tabs could still oversubscribe the mesh. RoomVoiceConsumer now claims a slot on connect via an atomic cache counter (cache.incr — atomic on Redis + LocMem) and refuses past VOICE_MAX_MEMBERS=6; the slot frees on disconnect (26h TTL backstop so a leaked slot self-clears). Room-agnostic, so epic rooms inherit it. +1 channels test: 6 connections fit, the 7th is refused, a disconnect reopens a slot. 9 voice consumer channels tests green. Code architected by Disco DeDisco <discodedisco@outlook.com> Git commit message Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
Python
45%
JavaScript
37.6%
HTML
9%
SCSS
8.2%
Jinja
0.1%