Merge pull request 'SPL Meter 0.4.3: a failed capture-tool build must not park the listener forever' (#31) from claude/spl-build-retry into main

This commit was merged in pull request #31.
This commit is contained in:
2026-09-28 11:31:49 -04:00
2 changed files with 8 additions and 4 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "spl-meter", "id": "spl-meter",
"name": "SPL Meter", "name": "SPL Meter",
"version": "0.4.2", "version": "0.4.3",
"proddash": ">=1.5.0", "proddash": ">=1.5.0",
"description": "Calibrated sound level, Leq and RTA from an audio input on this machine", "description": "Calibrated sound level, Leq and RTA from an audio input on this machine",
"permissions": [ "permissions": [
+7 -3
View File
@@ -153,9 +153,13 @@ function createSplListener(opts) {
const missing = ensureBinary(); const missing = ensureBinary();
if (missing) { if (missing) {
onUpdate({ error: missing }); onUpdate({ error: missing });
// A build in flight calls start() itself when it lands; anything else // onReady is only the FAST path (a successful build restarts us at
// is config-shaped and should back off hard rather than spin. // once). The slow retry must stay armed regardless: a failed build
if (missing !== BUILDING) scheduleRestart(BAD_CONFIG_RETRY_MS); // never calls back, and a binary can also arrive from outside — scp'd
// in on a machine whose toolchain can't build (AB's broken CLT).
// Waiting on onReady alone deadlocked exactly that way in the Timers
// module: "building…" forever, with a working binary on disk.
scheduleRestart(BAD_CONFIG_RETRY_MS);
return; return;
} }