From 49c25bbf2128ec91a946b0b3dd2da44ecf6e666b Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Fri, 24 Apr 2026 21:49:29 -0300 Subject: [PATCH] fix(audio): reject false-positive uac sanity runs --- Cargo.lock | 6 +++--- client/Cargo.toml | 2 +- common/Cargo.toml | 2 +- scripts/manual/run_uac_output_sanity.sh | 14 +++++++++++++- server/Cargo.toml | 2 +- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a7d1ed..7fe91da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1642,7 +1642,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "lesavka_client" -version = "0.13.8" +version = "0.13.9" dependencies = [ "anyhow", "async-stream", @@ -1676,7 +1676,7 @@ dependencies = [ [[package]] name = "lesavka_common" -version = "0.13.8" +version = "0.13.9" dependencies = [ "anyhow", "base64", @@ -1688,7 +1688,7 @@ dependencies = [ [[package]] name = "lesavka_server" -version = "0.13.8" +version = "0.13.9" dependencies = [ "anyhow", "base64", diff --git a/client/Cargo.toml b/client/Cargo.toml index 8882e15..cd977c8 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -4,7 +4,7 @@ path = "src/main.rs" [package] name = "lesavka_client" -version = "0.13.8" +version = "0.13.9" edition = "2024" [dependencies] diff --git a/common/Cargo.toml b/common/Cargo.toml index 1f74b42..e61fc9d 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lesavka_common" -version = "0.13.8" +version = "0.13.9" edition = "2024" build = "build.rs" diff --git a/scripts/manual/run_uac_output_sanity.sh b/scripts/manual/run_uac_output_sanity.sh index 4f4d356..6adb736 100644 --- a/scripts/manual/run_uac_output_sanity.sh +++ b/scripts/manual/run_uac_output_sanity.sh @@ -92,6 +92,8 @@ build_candidates() { run_tone() { local candidate="$1" + local log + log=$(mktemp) echo "🎧 trying UAC playback device: $candidate" >&2 set +e timeout --signal=INT "${DURATION_SECONDS}s" \ @@ -107,14 +109,24 @@ run_tone() { provide-clock=false \ enable-last-sample=false \ buffer-time="$BUFFER_TIME_US" \ - latency-time="$LATENCY_TIME_US" + latency-time="$LATENCY_TIME_US" \ + 2>"$log" local rc=$? set -e + if grep -Eiq 'unknown pcm|playback open error|invalid argument|no such (device|file)|^error:|could not open|failed to change state|not-negotiated' "$log"; then + echo "⚠️ tone failed on $candidate (sink open error)" >&2 + sed 's/^/ /' "$log" >&2 || true + rm -f "$log" + return 1 + fi if [[ $rc -eq 0 || $rc -eq 124 ]]; then echo "✅ UAC tone completed on $candidate" >&2 + rm -f "$log" return 0 fi echo "⚠️ tone failed on $candidate (rc=$rc)" >&2 + sed 's/^/ /' "$log" >&2 || true + rm -f "$log" return "$rc" } diff --git a/server/Cargo.toml b/server/Cargo.toml index 99edbf2..901a548 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -10,7 +10,7 @@ bench = false [package] name = "lesavka_server" -version = "0.13.8" +version = "0.13.9" edition = "2024" autobins = false