Repository navigation
Edit Hyper Core settings through hyper.settings.client - #13
Merged
jlnstrk merged 1 commit intoOct 23, 2026
Merged
Conversation
jlnstrk
force-pushed
the
jlnstrk/layered-settings-hooks
branch
from
October 22, 2026 04:10
fb02be0 to
bfbe1cd
Compare
This was referenced Oct 22, 2026
rksm
approved these changes
Oct 23, 2026
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.
jlnstrk
changed the base branch from
main
to
jlnstrk/noise-suppression-values
October 23, 2026 14:23
jlnstrk
force-pushed
the
jlnstrk/layered-settings-hooks
branch
from
October 23, 2026 14:23
bfbe1cd to
9e9f96d
Compare
jlnstrk
merged commit Oct 23, 2026
4df8814
into
jlnstrk/noise-suppression-values
8 of 9 checks passed
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. The PR is stacked on #12: without it, every noise suppression that the simulator offers butnonenames an engine that hyper.video drops.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, which hyper.video still has. A planned hyper.video change replaces that join option with a layeredtransportsetting, and the simulator moves to it then.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.