simulate: audio subcommand with impairment flags - #943
Merged
Conversation
theomonnom
approved these changes
Aug 20, 2026
u9g
force-pushed
the
jason/simulate-audio-subcommand
branch
from
August 24, 2026 15:18
7416a5e to
40dd5a4
Compare
u9g
marked this pull request as ready for review
August 24, 2026 15:22
server-sdk-go moves with it: protocol #1730 changed TransferSIPParticipant to return a response, which v2.18.1 cannot compile against.
u9g
force-pushed
the
jason/simulate-audio-subcommand
branch
from
August 24, 2026 15:31
40dd5a4 to
272cd58
Compare
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.
Turns
--audiointo anaudiosubcommand, which carries three new booleans sent on the create-simulation message:simulate's own flags did not need duplicating on the subcommand: urfave/cli v3 flags are persistent unlessLocalis set, so--scenarios,--agent-name,-nand friends parse on either side ofaudio. Since v3's help only renders the root's persistent flags under GLOBAL OPTIONS, the subcommand carries a one-line description pointing back at them.Verified against a local fake twirp endpoint:
lk agent simulate audio --background-noise --low-quality-microphone --packet-losssendswhile plain
lk agent simulatestill sendsSIMULATION_MODE_TEXTwith no impairments, and the impairment flags are rejected on the parent command.The protocol side (livekit/protocol#1723) has merged, so the temporary local-checkout build is gone and
go.modpoints at the real fields.Two dependency notes on that bump, both pseudo-versions because neither repo has cut a release containing the commits yet:
github.com/livekit/protocol→v1.50.5-0.20260824151414-2122e1d08bc9(protocolmainat the #1723 squash). The open release PR is Version Packages protocol#1683.github.com/livekit/server-sdk-go/v2→v2.18.2-0.20260824093707-96a978c6d455. This one is not optional and unrelated to this PR: protocol#1730 changedTransferSIPParticipantto return a response instead ofemptypb.Empty, and the published v2.18.1 cannot compile against protocolmain. server-sdk-go#971 fixed it on theirmain. Both pins can collapse to tagged versions once protocol and server-sdk-go publish.Breaking:
--audioshipped in v2.18.2 and is removed by this change, replaced by the subcommand. Say the word if it should stay as a hidden alias.