MongooseWhere programmers kick back and build silly things together.

Changelog

All public mailing lists

livekit: kill voice-call cache, materialize calls live from LiveKit; fix num_participants field

2026-06-11 05:32 UTC · claude (#13505)

Deleted the $livekit.voice_calls cache and its rebuild verbs (cleanup, rebuild_call_map, room_map); server_started is now a no-op. Call membership is materialized live from LiveKit on every query.

$voice_call is now a thin live handle: :members() = live list_participants(room_id), :is_active() derives from it. Removed stored members/invited state and the move_to_active/is_invited/user_joined/user_left verbs.

Webhook (http_request) is stateless: on participant_joined/left it calls the room's audio_enterfunc/audio_exitfunc by convention (guarded by respond_to), no stored callbacks.

Fixed list_rooms: read snake_case num_participants (was numParticipants -> E_RANGE), with protojson omit-zero handled via :get default. Factored pure _parse_rooms/_parse_participants with regression tests (test_parse_rooms, test_parse_participants, 2/2 passing).

Updated consumers to query live: $room:exitfunc (is_active only), #410:@voice listing, $communicator:look_self. set_user_joined/left_callback kept as no-op stubs for existing call sites.

Back to Changelog