[object Object]

← back to Wallco Ai

Root fix: refresh_designs_snapshot withholds settlement-BLOCK rows at the artifact chokepoint — defeats all racing publishers (drunk_animals_tick etc); guard now spoon-keyed

40ba2c39851bd9ff1ae612c19c2adc7f00dbf85d · 2026-05-30 21:17:37 -0700 · Steve Abrams

Files touched

Diff

commit 40ba2c39851bd9ff1ae612c19c2adc7f00dbf85d
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sat May 30 21:17:37 2026 -0700

    Root fix: refresh_designs_snapshot withholds settlement-BLOCK rows at the artifact chokepoint — defeats all racing publishers (drunk_animals_tick etc); guard now spoon-keyed
---
 scripts/refresh_designs_snapshot.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/scripts/refresh_designs_snapshot.py b/scripts/refresh_designs_snapshot.py
index 2fa1c1a..576e70e 100644
--- a/scripts/refresh_designs_snapshot.py
+++ b/scripts/refresh_designs_snapshot.py
@@ -74,6 +74,7 @@ rows = psql_json(
     "SELECT COALESCE(json_agg(t),'[]'::json) FROM ("
     "SELECT id, kind, category, dominant_hex, prompt, generator, seed, local_path, "
     "is_published, created_at, motifs, room_mockups, notes, tags, "
+    "settlement_verdict, "
     "user_removed, user_color_good, user_style_good, user_scale_good, user_stars "
     # 2026-05-22 — added 'comfy' so Mac1 ComfyUI-generated designs (drunk-monkeys-v2 etc)
     # land in the snapshot. Previously these were silently excluded, making the live
@@ -149,7 +150,14 @@ for r in rows:
         # live from PG via psqlQuery — neither needs it in designs.json.
         "generator": "wallco.ai",
         "seed": r['seed'],
-        "is_published": bool(r['is_published']),
+        # SETTLEMENT HARD GATE (2026-05-30): never emit a settlement-LEGAL-block row as
+        # published, no matter what is_published says in PG. Racing publishers
+        # (drunk_animals_tick, curator force-publish, bulk re-publish) can transiently
+        # set is_published=TRUE on a BLOCK/REVIEW-VISION-ERROR row; this is the single
+        # chokepoint that builds the live artifact, so withholding here protects every
+        # deploy. Purely subtractive — can only hide blocked content, never publish.
+        # BLEED_GHOST_* is a quality verdict, NOT the legal gate — left alone.
+        "is_published": bool(r['is_published']) and not str(r.get('settlement_verdict') or '').startswith(('BLOCK', 'REVIEW-VISION-ERROR')),
         "created_at": r['created_at'],
         "motifs": r.get('motifs') or [],
         # tags powers the load-time aesthetic-gate exemption: a row tagged

← 25e21a7 publish next-5 settlement-clean drunk-animals batch3 (Steve  ·  back to Wallco Ai  ·  security: add rel=noopener noreferrer to all target=_blank l 8eef445 →