← 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
M package-lock.jsonM package.jsonM scripts/retry-publish.mjs
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 →