[object Object]

← back to Wallco Ai

refresh_designs_snapshot: include tags[] column so the curator-force-publish exemption in passesAestheticGate actually matches on prod (was the missing piece — gate filtered #53814 out of DESIGNS at load despite is_published=TRUE)

63a6271dc3298b88e92452bca26620398060ec84 · 2026-05-28 09:37:33 -0700 · Steve Abrams

Files touched

Diff

commit 63a6271dc3298b88e92452bca26620398060ec84
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu May 28 09:37:33 2026 -0700

    refresh_designs_snapshot: include tags[] column so the curator-force-publish exemption in passesAestheticGate actually matches on prod (was the missing piece — gate filtered #53814 out of DESIGNS at load despite is_published=TRUE)
---
 scripts/refresh_designs_snapshot.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/scripts/refresh_designs_snapshot.py b/scripts/refresh_designs_snapshot.py
index 74bb968..0a546d5 100644
--- a/scripts/refresh_designs_snapshot.py
+++ b/scripts/refresh_designs_snapshot.py
@@ -73,7 +73,7 @@ def title_for(cat, hex_, id_):
 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, "
+    "is_published, created_at, motifs, room_mockups, notes, tags, "
     "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
@@ -145,6 +145,11 @@ for r in rows:
         "is_published": bool(r['is_published']),
         "created_at": r['created_at'],
         "motifs": r.get('motifs') or [],
+        # tags powers the load-time aesthetic-gate exemption: a row tagged
+        # 'curator-force-publish' bypasses passesAestheticGate so it actually
+        # loads into DESIGNS (otherwise the /by-id route 404s even though
+        # is_published=TRUE). Safe to ship: tags are non-PII curator metadata.
+        "tags": r.get('tags') or [],
         # User-feedback fields — used by sorts (highest-stars-first), grid
         # badges, and the rating UI on /design/:id.
         "user_removed":    bool(r.get('user_removed')),

← 49f4fa9 HOT-always-publish: bypass passesAestheticGate at server loa  ·  back to Wallco Ai  ·  cactus-curator: 📦 TIF badge on every card (green when archi 1f77520 →