[object Object]

← back to Dw Rotation Activator

drain: prune the activation-calendar cadence after each hourly run

e06f84c4668d3d7c8ee4bfd2d2152c4611dddc43 · 2026-07-22 11:01:34 -0700 · Steve

After flipping the per-slot batch DRAFT->ACTIVE, call the calendar's
prune-active.js so already-live SKUs never linger in the projected cadence
between nightly regens (Steve: cadence = staged items only).

Files touched

Diff

commit e06f84c4668d3d7c8ee4bfd2d2152c4611dddc43
Author: Steve <steve@designerwallcoverings.com>
Date:   Wed Jul 22 11:01:34 2026 -0700

    drain: prune the activation-calendar cadence after each hourly run
    
    After flipping the per-slot batch DRAFT->ACTIVE, call the calendar's
    prune-active.js so already-live SKUs never linger in the projected cadence
    between nightly regens (Steve: cadence = staged items only).
---
 drain.sh | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drain.sh b/drain.sh
index 189ed2a..d5ebb77 100755
--- a/drain.sh
+++ b/drain.sh
@@ -29,3 +29,13 @@ echo "[$(ts)] rotation-activate start slot_max=$SLOT_MAX" >>"$LOG"
 /opt/homebrew/bin/node "$EXE" --max "$SLOT_MAX" --commit >>"$LOG" 2>&1
 RC=$?
 echo "[$(ts)] rotation-activate end rc=$RC" >>"$LOG"
+
+# Keep the activation-calendar cadence to STAGED (DRAFT) items only: this run just
+# flipped a batch DRAFT->ACTIVE, so drop any now-active SKU from the projected
+# schedule (Steve's rule — the daily cadence must never list already-live items).
+# Local, reversible, idempotent; a no-op when the snapshot is already clean.
+PRUNE="$HOME/Projects/dw-activation-calendar/scripts/prune-active.js"
+if [ -f "$PRUNE" ]; then
+  /opt/homebrew/bin/node "$PRUNE" >>"$LOG" 2>&1
+  echo "[$(ts)] cadence prune-active rc=$?" >>"$LOG"
+fi

← 3466936 chore: clarify _HARD_RE/_VENDOR_RE are [token,RegExp] pairs  ·  back to Dw Rotation Activator  ·  leakGuard: add rigo / rigowall / rigo wallcovering (RIGO PL 469d6e0 →