[object Object]

← back to Designerwallcoverings

sanderson daily-batch: fix NODE unbound under set -u so the post-golive guard + self-terminate actually run

e860e142b0b3478f160b52df5355031bac44a497 · 2026-09-02 08:55:07 -0700 · Steve Abrams

Under launchd NODE is unset; with set -u the old "$NODE" reference aborted the script (exit 1, runs=2) AFTER create+golive but BEFORE guard.mjs and the self-terminate check — the DTD-verdict-C anomaly guard had never executed. ${NODE:-node} falls back correctly (verified: guard ran, 58 fresh publishes sane, .guard-seen 244->302).

BLAST-RADIUS NOTE: guard.mjs, when it trips (foreign image / misprice / >160 per night), writes ~/.dw-fixer-stop — the SHARED kill-switch that froze ~30 onboarders for 13 days in Aug. Fixing this line arms that guard for real. .guard-seen verified current (302 = golive-done) before this commit.

TK-11098 (approval-agent). Undo: git revert this sha.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0112gwsN3XLDuDNAMBu3KYCm

Files touched

Diff

commit e860e142b0b3478f160b52df5355031bac44a497
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 2 08:55:07 2026 -0700

    sanderson daily-batch: fix NODE unbound under set -u so the post-golive guard + self-terminate actually run
    
    Under launchd NODE is unset; with set -u the old "$NODE" reference aborted the script (exit 1, runs=2) AFTER create+golive but BEFORE guard.mjs and the self-terminate check — the DTD-verdict-C anomaly guard had never executed. ${NODE:-node} falls back correctly (verified: guard ran, 58 fresh publishes sane, .guard-seen 244->302).
    
    BLAST-RADIUS NOTE: guard.mjs, when it trips (foreign image / misprice / >160 per night), writes ~/.dw-fixer-stop — the SHARED kill-switch that froze ~30 onboarders for 13 days in Aug. Fixing this line arms that guard for real. .guard-seen verified current (302 = golive-done) before this commit.
    
    TK-11098 (approval-agent). Undo: git revert this sha.
    
    Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_0112gwsN3XLDuDNAMBu3KYCm
---
 scripts/sanderson-onboard/daily-batch.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/sanderson-onboard/daily-batch.sh b/scripts/sanderson-onboard/daily-batch.sh
index 54eadd2..0a68512 100755
--- a/scripts/sanderson-onboard/daily-batch.sh
+++ b/scripts/sanderson-onboard/daily-batch.sh
@@ -11,7 +11,7 @@ bash run.sh create --payloads=payloads-imgfixed.jsonl --apply
 # 2. GOLIVE every CLEAR+valid draft not yet live (idempotent; settlement + 5-field gated)
 bash run.sh golive --apply
 # 2b. GUARD (DTD verdict C): halt via kill-switch if anything published looks wrong
-"$NODE" guard.mjs 2>&1 || node guard.mjs 2>&1 || true
+"${NODE:-node}" guard.mjs 2>&1 || true   # NODE unset under launchd; with set -u the old "$NODE" aborted the script BEFORE the guard + self-terminate ran (TK-11098)
 
 # 3. self-terminate: when created >= 506 AND golive-done >= CLEAR, bootout the job
 CREATED=$(wc -l < out/created.jsonl | tr -d ' ')

← 3e5254b auto-data-snapshot: 2026-09-02T08:25:36 (2 data files) — scr  ·  back to Designerwallcoverings  ·  colorway-retag: add --only=h1,h2 handle filter so a pilot is 2d4faa3 →