Repository navigation
Edit Hyper Core settings through hyper.settings.client - #17
Merged
Merged
Conversation
hyper.video #6017 and #6020 moved noise suppression, volume normalization, background blur, the video resolution limits and the video track limit into the core's settings layers, and removed the setters on hyper.settings.media that the settings commands called. The commands now read the values that apply from hyper.settings.client.report and edit the participant layer with hyper.settings.client.edit. Auto gain control is volume normalization, which the web app's "Automatically adjust volume" switch turns on and off. Video constraints convert to resolution levels, and no limit to null. They take 4320p too, hyper.video's highest resolution level. Auto gain control, background blur, both video constraints and the track limit take "default" next to their values, and default to it. "default" unsets the setting in the participant layer, so that an admin's value for the session applies, else hyper.video's default. Noise suppression keeps setting its value, "none" by default. Each launch setting applies on its own, so that a failing one, such as any settings edit on a deployment without hyper.settings.client, no longer skips the transport and the microphone and camera state.
This was referenced Oct 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DR: the Hyper Core settings commands edit hyper.video's participant layer, leave five settings to hyper.video by default, and apply each setting on its own.
Today, the simulator sets a Hyper Core participant's settings through the setters on
window.hyper.settings.media. hypervideo/hyper.video#6017 and hypervideo/hyper.video#6020 moved those settings into the core's settings layers and removed the setters, so every settings command but the transport's fails against current hyper.video. The first failure also skips the rest of the settings that a participant joins with, so neither its transport nor its microphone and camera state apply.The commands now use
hyper.settings.client. Getters read the value that applies from itsreport, and setters edit the participant layer, where a participant keeps its own choices. It relies on #12, now on main, which limits the simulator's noise suppressions to the two that hyper.video takes.null.480pisP480, andnoneisnull, no limit. The constraints take4320ptoo, hyper.video's highest level.defaultin the config, the CLI,--participantJSON and the TUI, and default to it.defaultunsets the setting in the participant layer, so that an admin's value for the session applies, else hyper.video's default.noneby default, and the simulator keeps setting it, so that simulated participants run no model where hyper.video's web platform defaults to Hyper Voice.hyper.video's defaults match what the simulator set before: volume normalization on with a 0dBFS target and a -38dBFS threshold, no background blur, and no resolution limits. Only the track limit's default differs: one track, where the simulator set no limit.
Cloudflare participants are out of scope, since their worker calls the removed setters itself. The simulator sends the worker hyper.video's defaults in place of
default, except no track limit, andnonein place of4320p, which its schema lacks.Follow-up: the transport stays on
hyper.settings.sessionDebug.forceWebrtc. hypervideo/hyper.video#6101 replaced it with a layeredtransportsetting, and #16 moves the simulator to that.The settings edits need hyper.video from hypervideo/hyper.video#6020 on, which latest.dev, PR previews and local stacks run. A participant without a track limit now encodes one track; pass
--video-max-concurrent-tracks unlimitedfor every track. Aconfig.yamlthat the TUI saved keeps its explicit values until they saydefault.--auto-gain-controland--blurtaketrue,falseordefault.This replaces #13, which was merged into #12's branch instead of main. The commit is the same.