Commit Graph

1 Commits

Author SHA1 Message Date
Blax Software c75f9122d4 feat: backend-defined rooms with per-room transport (RoomRegistry + RoomMode)
Rooms become entities the BACKEND defines — clients can only join a registered
room, and each room configures how its media is carried:

- Rooms\RoomMode: 'p2p' (browsers mesh; server relays signaling only) vs 'sfu'
  (server terminates media via the MediaEngine/Rust SFU).
- Rooms\RoomDefinition: id + mode + limit + RoomType (explicit or from the id
  prefix) + free-form meta for the host UI.
- Contracts\RoomRegistry + Rooms\ConfigRoomRegistry (reads config webrtc.rooms;
  supports shorthand 'room' => 'p2p'). The provider binding is host-overridable
  via config webrtc.room_registry so DYNAMIC (DB/Eloquent) registries plug in —
  that is how learn-atc sources rooms from its talk_rooms table at runtime.

5 new tests (66 total green).

Card #1087 (rel #1083 #1085).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 10:53:54 +02:00