Build / build_full_element_call (push) Canceled after 0s
Build / build_embedded_element_call (push) Canceled after 0s
Build / build_sdk_element_call (push) Canceled after 0s
Build / Build Storybook (push) Canceled after 0s
Build & publish embedded packages for releases / Versioning (push) Canceled after 0s
Test / Run unit tests (push) Canceled after 0s
Test / Run end-to-end tests (push) Canceled after 0s
Upload translation files to Localazy / upload (push) Canceled after 0s
GitHub Actions Security Analysis with zizmor 🌈 / Run zizmor 🌈 (push) Canceled after 0s
Build / deploy_develop (push) Canceled after 0s
Build / docker_for_develop (push) Canceled after 0s
Build & publish embedded packages for releases / build_element_call (push) Canceled after 0s
Build & publish embedded packages for releases / Publish tarball (push) Canceled after 0s
Build & publish embedded packages for releases / Publish NPM (push) Canceled after 0s
Build & publish embedded packages for releases / Publish Android AAR (push) Canceled after 0s
Build & publish embedded packages for releases / Publish SwiftPM Library (push) Canceled after 0s
Build & publish embedded packages for releases / Update release notes (push) Canceled after 0s
Build Element Call / Build Element Call (push) Canceled after 0s
Previously these were only accessible under the "Developer" settings
tab, gated behind an explicit "Developer mode" toggle in Preferences -
functionally not developer-only at all (just resolution/framerate/
bitrate/codec pickers), just accidentally buried two clicks deep behind
a checkbox most users would never find or think to enable.
Extracted the MediaQualitySettings component out of
DeveloperSettingsTab.tsx into its own file and moved both usages
(camera + screen share) into the existing "Video" settings tab, visible
to all users without any special mode. DeveloperSettingsTab keeps
everything else (audio processing, connection stats, etc.) unchanged.
Verified: full project typecheck clean, production embedded build
succeeds.
Default was only [180p, 360p] simulcast fallback layers - a big
quality cliff straight to blocky 360p on minor network hiccups instead
of gracefully stepping down from the 1440p top layer. Added a 720p
middle rung. Also documented the likely real reason forcing video_codec:
vp9 broke calls (2026-07-28): LiveKit uses SVC for vp9/av1, not classic
simulcast, but buildPublishOptions() always builds simulcast-shaped
layers regardless of codec - needs a code fix before retrying vp9.
Setting video_codec: vp9 resulted in no audio/video being transmitted
in real calls (2026-07-28), despite server-side codec regression
fallback to VP8 appearing to work in LiveKit SFU logs. Root cause not
further isolated beyond this. Leaving video_codec unset (defaults to
vp8) with the same 1440p/60fps/bitrate bump confirmed working.
Sets higher default video quality ceiling (up to 1440p/60fps camera,
1440p/30fps screen share, VP9 preferred codec) via the media_quality
config block introduced in element-hq/element-call#3736. These are
seeded defaults users can still adjust in Settings, not hard limits.
Bumped embedded package to @sorb/threadnet-call-embedded.