• v0.7.0 37becba7e2

    feat: audio devices + fullscreen + banner cleanup (v0.7.0)
    Release desktop app / build (, windows-latest) (push) Has been cancelled
    Release desktop app / build (--target universal-apple-darwin --bundles app,updater, macos-14) (push) Has been cancelled

    byGalax released this 2026-04-20 21:26:10 +02:00 | 363 commits to main since this release

    Audio device selection:

    • audioSettings: persisted inputDeviceId + outputDeviceId
    • CallContext: uses stored input deviceId on mic enable, new
      setAudioInputDevice / setAudioOutputDevice actions that hot-swap
      without reconnect. Output swap applies HTMLMediaElement.setSinkId
      to every attached remote-audio element (LiveKit's switchActiveDevice
      only tracks elements it attached itself)
    • SettingsPage: new "Mikrofon" + "Ausgabegerät" selects with
      enumerateDevices, devicechange listener, permission-probe button.
      setSinkId-unsupported fallback is messaged but non-blocking

    Fullscreen:

    • FullscreenCall was absolute inset-0 z-40 which trapped it inside the pane — sidebar + chat-list stayed visible. Switched to fixed inset-0 z-[60] so the call overlays the whole window Discord-style
    • ScreenShareViewer fullscreen: CSS-only toggle (native Fullscreen API
      unreliable under Tauri WKWebView), portalled to document.body when
      active so no ancestor stacking context can clip it. Esc exits

    ActiveCallBanner:

    • cleanup effect returned early when presence was entirely empty,
      leaving the "1 im Raum" fallback stuck after both peers left. Now
      schedules dismissLastCall as soon as othersIn.length === 0, with a
      3s grace window to absorb presence re-sync flicker

    Bump tauri version 0.6.0 -> 0.7.0

    Downloads