{"slug":"rebel-walls-push","total":15,"limit":100,"offset":0,"since":null,"commits":[{"hash":"2f475a9","date":"2026-07-21 13:37:51 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-21T13:37:45 (1 files) — scripts/push.js.bak-20260721-131041","body":""},{"hash":"fa667c7","date":"2026-07-21 13:11:11 -0700","author":"Steve Abrams","subject":"push: create DRAFT not ACTIVE so Rebel Walls flows through the unified rotation","body":""},{"hash":"e6677f9","date":"2026-07-08 15:56:09 -0700","author":"Steve Abrams","subject":"GMC re-gate: exclude Google & YouTube publication (29646651457) from push + activate","body":"Both run on a daily cron and re-leaked the $4.25 sample price to the Google channel.\nFilter Google out of loadPublications() in each. Google is fed by the controlled TSV\nfeed only. Inline + reversible.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"2f4dc48","date":"2026-07-03 08:08:15 -0700","author":"Steve","subject":"chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)","body":""},{"hash":"a3c8752","date":"2026-06-30 15:22:47 -0700","author":"Steve Abrams","subject":"Add RW cadence daily step — 5 murals/day, budget-coordinated, DRY by default","body":"Steve 2026-06-30: '5 new SKUs a day, focusing on murals' (RW is 100% murals). Budget-coordinated\nvia the shared variant ledger (take 'rebel' N) so it never races the hourly uploader. DRY by default;\n--commit creates live. NOTE: push.js dry flag is --dry-run (an initial --dry typo created 5 live\nproducts DWRW-361150..361154 = today's authorized batch; flag corrected, true-dry now verified 0 writes)."},{"hash":"d7447f1","date":"2026-06-22 09:25:46 -0700","author":"Steve Abrams","subject":"secret-strip: remove hardcoded dw_admin password from PG config (env-first, no rotation/deploy)","body":""},{"hash":"e01aadd","date":"2026-06-09 13:00:38 -0700","author":"SteveStudio2","subject":"launchd plist for daily staggered push (Steve pastes the load command)","body":"Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>"},{"hash":"d3719d0","date":"2026-06-09 12:59:50 -0700","author":"SteveStudio2","subject":"daily-push.sh: capped daily slice wrapper for the staggered push","body":"Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>"},{"hash":"1e70258","date":"2026-06-09 11:16:11 -0700","author":"SteveStudio2","subject":"dedup-guard push: skip 759 patterns already live under older Rebel Walls SKUs (DTD verdict A)","body":"- dedup-flag.js: tightened pattern+exact-color match vs older live cohort (DWRW-72201..451820);\n  flags 759 true dups, leaves 2,874 net-new pushable via reversible dedup_skip column\n- push.js fetchRows: AND dedup_skip IS NOT TRUE (null-safe) so resume pushes only net-new\n- verify-live.js / reconcile-from-shopify.js: read-only Shopify count + sku->id helpers"},{"hash":"c54afd5","date":"2026-06-04 08:29:40 -0700","author":"SteveStudio2","subject":"Rebel Walls: bake live-on-create (ACTIVE + all channels + inventory 2026) into pusher; add activation pass for already-pushed products","body":"push.js now creates non-discontinued products as ACTIVE with tracked variants,\npublishes to all 13 publications, and sets available=2026 on both variants after\neach productSet. New activate.js does the same for the ~500 already-pushed DRAFT\nproducts (idempotent, resumable via activated_at checkpoint). _shop.js shared\nGraphQL/psql helper with 429/throttle backoff.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"6401830","date":"2026-06-04 08:01:29 -0700","author":"SteveStudio2","subject":"add retitle.js: title-only bulk update inserting \" Wallcoverings\", resumable, idempotent","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"de60df5","date":"2026-06-04 08:00:09 -0700","author":"SteveStudio2","subject":"rebel walls title: insert \" Wallcoverings\" before \" | Rebel Walls\" suffix","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"f6de296","date":"2026-06-04 00:14:36 -0700","author":"Steve","subject":"align metafield types to store defs; canary 5 verified clean in Shopify","body":""},{"hash":"87b7133","date":"2026-06-04 00:12:39 -0700","author":"Steve","subject":"title-caser preserves 3D/ABC/acronym tokens","body":""},{"hash":"3dcaf20","date":"2026-06-04 00:11:47 -0700","author":"Steve","subject":"rebel walls -> shopify pusher (productSet, draft, sample variant, resumable)","body":""}]}