feat(mobile): add huddles with LiveKit

Mirrors the desktop huddle window: tap the headphones button on a stream
to fetch a LiveKit token from Orion and join a video room. Active huddles
show a red badge on the stream card (participant count) and a red Join
pill in the stream top bar — both driven by huddle_active_participants
synced from the LiveKit webhook.

The HuddleScreen lives at its own route (not a modal/window): video tile
grid with placeholders for camera-off, mic/camera toggles, and a leave
button. Adds the LiveKit RN SDK plus the WebRTC + LiveKit Expo config
plugins for prebuild.

https://claude.ai/code/session_01Po5tAD17MXhnqGQ9hKh6PC
This commit is contained in:
Claude
2026-05-26 19:20:00 +00:00
parent 173c63508a
commit 5b4643bcb3
10 changed files with 1298 additions and 15 deletions
+6
View File
@@ -1,5 +1,11 @@
import "./global.css";
import { registerGlobals } from "@livekit/react-native";
import { registerRootComponent } from "expo";
import App from "./src/App";
// LiveKit pipes WebRTC globals (RTCPeerConnection, mediaDevices, ...) onto the
// JS global. Must run before any LiveKit client is constructed, so do it at
// app entry rather than inside the huddle screen.
registerGlobals();
registerRootComponent(App);