
isFinal=true Events bei Satzgrenzen
autoSelectTransport(config). Broadcast Transport und Presence Transport werden durch AES-256-GCM Verschlüsselung als Decorator gewrappt.192.168.8.1 (GL.iNet)192.168.1.1 (Standard)192.168.0.1 (Alternativ)10.0.0.1 (Hotspots)172.20.10.1 (iOS Personal Hotspot)192.168.43.1 (Android Hotspot)interface BroadcastTransport {
type: 'supabase' | 'local-ws' | 'ble'
isConnected: boolean
subscribe(code, handlers): void
broadcast(event, payload): void
unsubscribe(): void
onConnectionChange(cb): () => void
}
interface PresenceTransport {
type: 'supabase' | 'local-ws' | 'ble'
join(code, data): void
updatePresence(data): void
leave(): void
onSync(cb): () => void
}GT-TR-XXXX (Session-Code)BleTransportPlugin.java — BluetoothGattServer, Android 12+ Permission DecoratorsBleTransportPlugin.swift — CBPeripheralManager, CoreBluetooth Framework:8765. Listener-Geräte verbinden sich per WiFi.8765 (Standard), 8766 (Embedded Fallback)GET /health → 200 OKWIFI:T:WPA;S:{SSID};P:{Password};;{ _encrypted: base64_ciphertext }VITE_GOOGLE_TTS_API_KEYcom.fintutto.translatorINTERNET, ACCESS_NETWORK_STATERECORD_AUDIO, CAMERACHANGE_WIFI_STATE, ACCESS_WIFI_STATE, ACCESS_FINE_LOCATIONNEARBY_WIFI_DEVICES (SDK 33+)BLUETOOTH, BLUETOOTH_ADMIN (SDK < 30)BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECTNSMicrophoneUsageDescriptionNSCameraUsageDescriptionNSSpeechRecognitionUsageDescriptionNSLocalNetworkUsageDescriptionNSBluetoothAlwaysUsageDescriptionNSBluetoothPeripheralUsageDescriptionbluetooth-central, bluetooth-peripheralLatencyReport { sttMs, translateMs, broadcastMs, ttsMs, totalMs, provider }npm run build # tsc && vite build (12s)
npm test # vitest run (2.2s)
npm run cap:sync # Capacitor sync