[object Object]

← back to Dw Marketing Reels

chore: refactor (env-var alert routing), v0.8.8 (session close)

5be46a4b098d6c586eae6816554beabaddd6f21c · 2026-08-11 08:27:04 -0700 · cre-agent

Files touched

Diff

commit 5be46a4b098d6c586eae6816554beabaddd6f21c
Author: cre-agent <steve@designerwallcoverings.com>
Date:   Tue Aug 11 08:27:04 2026 -0700

    chore: refactor (env-var alert routing), v0.8.8 (session close)
---
 package-lock.json         | 4 ++--
 package.json              | 2 +-
 scripts/retry-publish.mjs | 9 +++++----
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 49c1fc8..ec67911 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "dw-marketing-reels",
-  "version": "0.8.7",
+  "version": "0.8.8",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "dw-marketing-reels",
-      "version": "0.8.7"
+      "version": "0.8.8"
     }
   }
 }
diff --git a/package.json b/package.json
index 5d79eab..1e166c9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "dw-marketing-reels",
-  "version": "0.8.7",
+  "version": "0.8.8",
   "private": true,
   "type": "module",
   "description": "DW Marketing — auto-generated New Arrivals reels (HyperFrames) + auth-gated console",
diff --git a/scripts/retry-publish.mjs b/scripts/retry-publish.mjs
index 48d4393..a99ab0a 100644
--- a/scripts/retry-publish.mjs
+++ b/scripts/retry-publish.mjs
@@ -43,18 +43,19 @@ function list(r) { return Array.isArray(r) ? r : (r.reels || r.items || []); }
 
 function fireAlert(msg) {
   // Same channel as cron-run.sh: CNCP parking-lot card + George email to steve-office.
+  // msg is passed via ALERT_MSG env var — no shell-escaping of untrusted content needed.
   const cncp = process.env.CNCP_URL || 'http://localhost:3333';
   const to = process.env.REELS_ALERT_TO || 'steve@designerwallcoverings.com';
   const sh = `
     curl -sS --max-time 10 "${cncp}/api/parking-lot" -H 'Content-Type: application/json' \
-      -d "$(node -e 'console.log(JSON.stringify({url:"http://marketing.designerwallcoverings.com/",note:process.argv[1]}))' "${msg.replace(/"/g, '\\"')}")" \
+      -d "$(node -e 'console.log(JSON.stringify({url:"http://marketing.designerwallcoverings.com/",note:process.env.ALERT_MSG}))')" \
       >/dev/null 2>&1 && echo "  CNCP card posted" || echo "  CNCP post failed (non-fatal)";
     if [ -f "$HOME/.claude/skills/_shared/george-send.sh" ]; then
       . "$HOME/.claude/skills/_shared/george-send.sh";
-      george_send steve-office "${to}" "⚠ DW nightly reel — gave up after delayed retries ($(date +%Y-%m-%d))" "<p>${msg.replace(/"/g, '\\"')}</p>" >/dev/null 2>&1 \
+      george_send steve-office "${to}" "DW nightly reel -- gave up after delayed retries ($(date +%Y-%m-%d))" "<p>$ALERT_MSG</p>" >/dev/null 2>&1 \
         && echo "  George alert sent" || echo "  George send failed (non-fatal)";
     fi`;
-  spawnSync('bash', ['-c', sh], { stdio: 'inherit' });
+  spawnSync('bash', ['-c', sh], { stdio: 'inherit', env: { ...process.env, ALERT_MSG: msg } });
 }
 
 let reels = load();
@@ -106,7 +107,7 @@ reel.publish.instagram_retry = { ...rq };
 if (LANDED.has(ig2.status)) {
   reel.publish.instagram_retry.recovered_at = now();
   writeFileSync(MAN, JSON.stringify(reels, null, 2));
-  log(`✅ recovered on delayed attempt ${rq.delayed_attempts}/${MAX} — status=${ig2.status}`);
+  log(`recovered on delayed attempt ${rq.delayed_attempts}/${MAX} — status=${ig2.status}`);
   process.exit(0);
 }
 writeFileSync(MAN, JSON.stringify(reels, null, 2));

← 15c6386 TK-10395: delayed re-queue — re-attempt a Meta-2207076-faile  ·  back to Dw Marketing Reels  ·  auto-data-snapshot: 2026-08-11T11:14:15 (1 data files) — dat f21cf40 →