← back to Wallco Ai
loop tick2: UNSTABLE flag benign, designer-scenic 363 root-caused (auto-curator republish), broken-images clean on prod
6e65e8c731e08037cebafcf1696e4e5c630642e5 · 2026-06-03 09:25:52 -0700 · Steve Abrams
Files touched
A REVIEW-2026-06-03.mdM yolo-queue/LOOP-2026-06-03.md
Diff
commit 6e65e8c731e08037cebafcf1696e4e5c630642e5
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Jun 3 09:25:52 2026 -0700
loop tick2: UNSTABLE flag benign, designer-scenic 363 root-caused (auto-curator republish), broken-images clean on prod
---
REVIEW-2026-06-03.md | 51 +++++++++++++++++++++++++++++++++++++++++++
yolo-queue/LOOP-2026-06-03.md | 18 +++++++++++++++
2 files changed, 69 insertions(+)
diff --git a/REVIEW-2026-06-03.md b/REVIEW-2026-06-03.md
new file mode 100644
index 0000000..39fe2fe
--- /dev/null
+++ b/REVIEW-2026-06-03.md
@@ -0,0 +1,51 @@
+# wallco-ai — STAGED ACTIONS for Steve's approval (2026-06-03)
+
+Autonomous compliance loop (DTD focus A). Everything below is **staged, NOT executed**.
+Approve / Disapprove on the viewer; add per-item notes in the textarea. On your
+return I execute the approved ones by hand (they're all deploy/publish-gated, so
+the loop cannot run them itself).
+
+---
+
+## ① Deploy 195 dogs to prod · severity HIGH · gated: prod-deploy
+**State:** Dogs collection curated + published in Mac2 PG — **195 breed-silhouette
+wallpapers**, all settlement-OK (13 non-compliant already pulled by the post-publish
+canary). Snapshot rebuilt locally. **Not yet on live wallco.ai** (deploy blocked under
+the loop's no-deploy guardrail).
+
+**On approval I run:**
+```
+cd ~/Projects/wallco-ai && python3 scripts/refresh_designs_snapshot.py && ./deploy-kamatera.sh
+```
+**Risk:** customer-facing prod deploy, fully reversible (unpublish + redeploy).
+
+---
+
+## ② Unpublish 658 user_removed-yet-live rows · severity HIGH · gated: bulk-unpublish
+**Finding (loop tick 1):** 658 published rows have `user_removed=true` — removed
+content that is still live. The hard legal gate is otherwise CLEAN (0 live rows are
+settlement BLOCK / VISION-ERROR / REVIEW).
+
+By category: **designer-scenic 363** · stoned-animals 125 · drunk-animals-designer 110
+· face-skull-damask 27 · damask 13 · cactus 9 · (rest ≤4).
+
+⚠️ These **may include intentional auto-curator force-publish overrides** — that's
+exactly why I'm not bulk-pulling pre-existing rows without your eyes.
+
+**On approval I run** (staged SQL → then snapshot rebuild + deploy):
+```
+psql -d dw_unified -f ~/Projects/wallco-ai/yolo-queue/STAGED-unpublish-user-removed-live.sql
+```
+**Risk:** bulk-unpublish of pre-existing rows, reversible (re-publish).
+**Tick-2 root cause:** designer-scenic's 363 are a SINGLE 2026-05-20 batch that was removed (`user_removed=true`) then force-republished by the auto-curator — i.e. explicitly-removed content, safe to unpublish. Also flags an auto-curator bug (must honor `user_removed`).
+
+
+---
+
+## 🟡 FYI — not requesting action yet
+- **2,867 never-settlement-gated live rows** — legacy / auto-curator publishes. Not a
+ violation (no BLOCK live), but un-gated. Recommend a settlement-gating *pass*, not a
+ purge (would gut the catalog). Deferred to a later loop tick / your call.
+
+*The loop keeps running (~25 min/tick), appending new staged actions to
+`yolo-queue/staged-actions.jsonl` + this review file as it finds them.*
diff --git a/yolo-queue/LOOP-2026-06-03.md b/yolo-queue/LOOP-2026-06-03.md
index e90dbec..68fad09 100644
--- a/yolo-queue/LOOP-2026-06-03.md
+++ b/yolo-queue/LOOP-2026-06-03.md
@@ -22,3 +22,21 @@ Staged (NOT executed): `yolo-queue/STAGED-unpublish-user-removed-live.sql`.
Legacy / auto-curator publishes. NOT a violation (no BLOCK), but un-gated.
Recommend a settlement-gating pass (not bulk-unpublish — would gut catalog).
Deferred to a later tick / Steve decision.
+
+## Tick 2 — health, designer-scenic root-cause, broken-image dimension
+- **wallco-ai-9905 UNSTABLE flag = BENIGN.** pm2: status online, restart_time 19,
+ **unstable_restarts 0**, /health 200. The fleet-health flag tripped on cumulative
+ restart count (my snapshot reloads + standing pipeline), not a crash-loop. No action.
+- **designer-scenic 363 removed-yet-live = root cause found.** All 363 created the SAME
+ day (2026-05-20), notes empty. A single batch was `user_removed=true` but the standing
+ auto-curator force-republished (`is_published=true`) ignoring the removal flag. This is
+ the bulk of staged action ② — confirms it's safe-to-unpublish (explicitly removed
+ content) and points at an auto-curator bug (it should honor user_removed).
+- **Broken-image dimension = CLEAN on prod.** 12 published rows have a missing local_path
+ file on Mac2 (11 aztec-kilim + 1 stripe) + 150 with no local_path — BUT all 12 serve
+ **HTTP 200** live via /designs/img/by-id (prod has the rsynced file). Not broken live.
+ No action; Mac2-local file gap only.
+
+**Compliance picture after tick 2:** legal gate clean (0 BLOCK live), broken-images clean
+live, only real issue = the removed-yet-live batch (staged ②). Next: analyze the 2,867
+never-gated live rows (which categories → recommend a settlement-gating pass, not purge).
← e5dc163 mural-contact-sheet.py: visual panel review aid for any buil
·
back to Wallco Ai
·
fliepaper-bugs admin grid: created date+time chip (standing 47c3b30 →