← back to Greenland Onboard
governance(TK-11370): make live-by-default Shopify writers dry-run by default
cc826bb073b453241a8c70f8b185a57f9d3974e1 · 2026-09-10 17:52:31 -0700 · Steve Abrams
Flip `DRY = argv.includes('--dry')` -> `DRY = !argv.includes('--apply')` so a
zero-argument run no longer fires customer-facing Shopify writes.
Backward compatible: `--dry` still means dry; `--apply` now required to write.
Only zero-arg invocations change behaviour, and every candidate was checked
against its launchd/cron/pm2/wrapper invocation sites first (4 scripts that a
cadence job runs flagless were EXCLUDED so this cannot silently disable them).
Verified: node --check/py_compile 87/87 with a positive control proving the
checker rejects an injected fault; argv truth-table negative test 5/5.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L53y4oP2itY3qeJ8WQgMzc
Files touched
M scripts/publish-online.mjs
Diff
commit cc826bb073b453241a8c70f8b185a57f9d3974e1
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Sep 10 17:52:31 2026 -0700
governance(TK-11370): make live-by-default Shopify writers dry-run by default
Flip `DRY = argv.includes('--dry')` -> `DRY = !argv.includes('--apply')` so a
zero-argument run no longer fires customer-facing Shopify writes.
Backward compatible: `--dry` still means dry; `--apply` now required to write.
Only zero-arg invocations change behaviour, and every candidate was checked
against its launchd/cron/pm2/wrapper invocation sites first (4 scripts that a
cadence job runs flagless were EXCLUDED so this cannot silently disable them).
Verified: node --check/py_compile 87/87 with a positive control proving the
checker rejects an injected fault; argv truth-table negative test 5/5.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L53y4oP2itY3qeJ8WQgMzc
---
scripts/publish-online.mjs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/publish-online.mjs b/scripts/publish-online.mjs
index ce5f185..d362258 100644
--- a/scripts/publish-online.mjs
+++ b/scripts/publish-online.mjs
@@ -21,7 +21,7 @@ const ONLINE_STORE = 'gid://shopify/Publication/22208643184';
const H = { 'X-Shopify-Access-Token': TOKEN, 'Content-Type': 'application/json' };
const LIMIT = Number(process.argv[2] || 0);
const START = Number(process.argv[3] || 0);
-const DRY = process.argv.includes('--dry');
+const DRY = !process.argv.includes('--apply');
const LEDGER = join(ROOT, 'data', 'published-online.ndjson');
const sleep = (ms) => new Promise(r => setTimeout(r, ms));
← eb421f7 importer: map global.width metafield (Carnegie-class fix)
·
back to Greenland Onboard
·
TK-11438: migrate postgres pool to unix socket (darwin fallb b7ccab2 →