Timers 1.5.1: a failed capture-tool build must not park the listener forever #30

Merged
michael merged 1 commits from claude/timers-build-retry into main 2026-09-27 10:59:21 -04:00
2 changed files with 8 additions and 4 deletions
+7 -3
View File
@@ -191,9 +191,13 @@ function createLtcListener({ device, channel, moduleDir, log, onUpdate }) {
}); });
if (!tool.ready) { if (!tool.ready) {
report({ error: tool.error, detail: tool.detail }); report({ error: tool.error, detail: tool.detail });
// A build in flight restarts us itself when it lands; anything else is // onReady is only the FAST path (a successful build restarts us at
// config-shaped and should back off hard rather than spin. // once). The slow retry must stay armed regardless: a failed build
if (tool.error !== TOOL_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 production:
// "Capture tool building…" forever, with a working binary on disk.
scheduleRestart(BAD_CONFIG_RETRY_MS);
return; return;
} }
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "propresenter-timers", "id": "propresenter-timers",
"name": "Timers", "name": "Timers",
"version": "1.5.0", "version": "1.5.1",
"proddash": ">=1.4.0", "proddash": ">=1.4.0",
"description": "Timers, Clocks, and LTC From configured Modules", "description": "Timers, Clocks, and LTC From configured Modules",
"provides": [ "provides": [