← back to Wallco Ai
yolo D5: /moodboard confirmed working (not a bug) + staged-cohorts report; loop ends [5/5 defects resolved]
76a29ad71bdfd838ebc145e64af55cc82f7fe271 · 2026-06-02 13:12:37 -0700 · Steve
Files touched
A yolo-queue/staged-cohorts-report-2026-06-02.mdM yolo-queue/yolo-loop-2026-06-02.md
Diff
commit 76a29ad71bdfd838ebc145e64af55cc82f7fe271
Author: Steve <steve@designerwallcoverings.com>
Date: Tue Jun 2 13:12:37 2026 -0700
yolo D5: /moodboard confirmed working (not a bug) + staged-cohorts report; loop ends [5/5 defects resolved]
---
yolo-queue/staged-cohorts-report-2026-06-02.md | 44 ++++++++++++++++++++++++++
yolo-queue/yolo-loop-2026-06-02.md | 6 ++--
2 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/yolo-queue/staged-cohorts-report-2026-06-02.md b/yolo-queue/staged-cohorts-report-2026-06-02.md
new file mode 100644
index 0000000..9ec728f
--- /dev/null
+++ b/yolo-queue/staged-cohorts-report-2026-06-02.md
@@ -0,0 +1,44 @@
+# Staged-cohort report — wallco.ai gated work (2026-06-02)
+
+Read-only snapshot for Steve to clear the **Steve-gated** cohorts fast on return.
+Counts pulled live from the **local Mac2 catalog** (`all_designs`, the source of
+truth; prod PG is sparse). NOTHING was published/deployed/written — this is a
+report only. Verify counts at action time (catalog changes constantly).
+
+> How counts were pulled (read-only): `DBURL=$(grep '^DATABASE_URL=' .env | cut -d= -f2- | tr -d '"'); psql "$DBURL" -tAc "<select>"`
+
+---
+
+## Ranked by leverage (clearest payoff first)
+
+### 1. 🐕 Dogs collection — **201 unpublished / 17 published** ⭐ highest-leverage
+Self-contained, fully generated, just needs your hot-or-not. (TODO said 203 — live is 201.)
+- Verify: `psql "$DBURL" -tAc "select is_published, count(*) from all_designs where category like 'dogs%' group by 1"`
+- Curate: open **`/admin/dogs-curator`** (has the date+time chip), hot-or-not the 201.
+- Then publish the keepers + `./deploy-kamatera.sh`. Engine: `scripts/generate-dogs.js`; list API `server.js:1248`.
+
+### 2. 🎨 Luxe-curator roots — **588 unpublished luxe rows** (queue file 924 entries; UI groups into ~307 roots)
+Steve-in-loop per `feedback_luxe_curator_steve_in_loop` — never bulk-publish.
+- Verify rows: `psql "$DBURL" -tAc "select count(*) from all_designs where is_published=false and coalesce(user_removed,false)=false and (lower(coalesce(notes,'')) like '%luxe%' or lower(coalesce(local_path,'')) like '%luxe%')"`
+- Curate: open **`/luxe-curator`** (data `/api/luxe-curator`, `server.js:19401`); pick keeper per root.
+
+### 3. 🩹 EDGES_FAIL heal+promote — **6,603 unpublished EDGES_FAIL** · 2,279 already EDGE_HEALED_BY
+⚠️ **The TODO's "~454 promotable PASSes" is STALE** — locally only **1** `pil-seam-fix-v` heal-child remains unpublished; the prior heal batch was largely published already. The live open pool is the **6,603 raw EDGES_FAIL** awaiting a heal pass, of which 2,279 sources already carry `EDGE_HEALED_BY`.
+- Promotion MUST gate on a fresh per-row edges-agent scan (only `verdict=PASS` flips `is_published`), per the standing rule — it is NOT a static SQL count.
+- Surface: **`/admin/edges-review`** (red-outlined chips). Recommended: sample-scan a batch, promote PASSes, then deploy. Don't bulk-flip.
+- Verify: `psql "$DBURL" -tAc "select count(*) from all_designs where is_published=false and notes ilike '%EDGES_FAIL%'"`
+
+### 4. 🖼️ No-TIF backlog — **3,041 published-without-TIF** (informational, NOT a blocker)
+Per CLAUDE.md (2026-06-02 DTD), TIFs are **lazily-built print masters, NOT a publish prerequisite** — purchase/download don't need them. So this is an accepted backlog for *physical-print fulfillment*, not gated work to "clear."
+- Browse: **`/admin/needs-tif`**. Build on demand only: `scripts/cron-build-tifs.sh` / `POST /api/admin/design/:id/build-tif` (each ~2 GB — disk-gated).
+- Verify: `psql "$DBURL" -tAc "select count(*) from all_designs where is_published=true and tif_path is null and coalesce(user_removed,false)=false"`
+
+---
+
+## Also parked for approval (from the loop's Approval queue)
+- **DEPLOY** `./deploy-kamatera.sh` — ships this session's loop fixes (D1 samples, D2 pairs-CORS, D3 Big-Red) + the earlier batch-timeout fix (3eeffee3) + gemini-2.5 migration. One deploy covers all.
+- **PDP customizer** PR #1 (`pdp-theme-customizer`) — merge decision.
+- **George credential** — rotate + secret-strip the **470 files** hardcoding the password (burned: in 470 files + 2 security emails). Narrow crontab-move paste already handed over.
+- **Orphan rooms** — targeted additive rsync of the 141 (deploy-excluded dir).
+
+_All numbers are local Mac2 catalog as of 2026-06-02; re-run the verify queries before acting._
diff --git a/yolo-queue/yolo-loop-2026-06-02.md b/yolo-queue/yolo-loop-2026-06-02.md
index 34e50ee..c76a61d 100644
--- a/yolo-queue/yolo-loop-2026-06-02.md
+++ b/yolo-queue/yolo-loop-2026-06-02.md
@@ -15,7 +15,7 @@ DTD verdict: **B** (bug-hunt + audit all user-facing surfaces, fix locally) + gr
- [x] **D2 · PDP "pairs well with" CORS-blocked** — root cause: a same-origin proxy already existed (`/api/coordinates/pairs`, server.js:458) but the color-swatch→paint lookup at L14398 still hit the cross-origin `pairs.designerwallcoverings.com/api/pairs` DIRECTLY. Upstream only whitelists `https://wallco.ai` (works on prod, breaks on localhost/previews — brittle). Fix: point L14398 at the existing same-origin proxy. Verified (Playwright): 0 CORS errors, 0 direct cross-origin calls, 1 proxy call → 200. **commit (tick 2).**
- [x] **D3 · front page `localhost:9935/widget.js` ERR_CONNECTION_REFUSED** — it WAS the Big-Red widget (server.js:7022-7025, `BIG_RED_URL || 'http://localhost:9935'`). Per the fleet-wide removal decision ([[reference_dw_bigred_widget_fleet_removal]]) removed the block from the front page (single self-contained block on wallco.ai — no CTA/onclick hook to null-throw). Verified (Playwright): 0 requests to 9935/widget.js, 0 failed requests, 0 page errors. **commit (tick 3).**
- [x] **D4 · /studio serves the /designs page** — NOT a bug. `/studio` is an intentional `301 → /designs` (server.js:7487), added by `aed2aa0` (2026-05-28) "strip Scenic/Studio sub-brand from customer-facing surfaces (proposal killed 2026-05-28 via DTD)". The audit saw "All Designs" because the 301 correctly lands on /designs. The `/api/studio/*` compose+renders endpoints still exist (embedded in another surface ~L23979) but the public Studio page was deliberately retired. No code change — confirmed + documented.
-- [ ] **D5 · /moodboard near-empty (bodyLen 379)** — likely just needs pinned data, but confirm it's not a broken render. Low priority.
+- [x] **D5 · /moodboard near-empty (bodyLen 379)** — NOT a bug. Renders 11 pins, 0 page errors, 0 failed requests, and has a proper empty-state branch (`No pins yet…`) for the no-data case. The tick-1 "bodyLen 379" was a measurement artifact — I used `innerText.length`, which is naturally tiny for an image-grid page. No code change.
## Approval queue (PARKED — needs Steve; do NOT do autonomously)
- George creds: rotate + secret-strip the **470 files** hardcoding the password (it's burned — in 470 files + 2 security emails). The narrow crontab move is staged (paste handed earlier). → real fix is rotation.
@@ -30,4 +30,6 @@ DTD verdict: **B** (bug-hunt + audit all user-facing surfaces, fix locally) + gr
- T1 · 2026-06-02 10:5x · audit sweep (8 routes) + D1 fix · commit a805dc0 · /samples form JS restored
- T2 · 2026-06-02 11:2x · D2 PDP pairs CORS → same-origin proxy · verified 0 CORS / proxy 200 · commit 9014783
- T3 · 2026-06-02 12:0x · D3 removed dead Big-Red widget from front page · verified 0 widget reqs/errors · commit 624b2ee
-- T4 · 2026-06-02 12:3x · D4 /studio = intentional 301→/designs (Studio sub-brand killed via DTD aed2aa0) · no code change · ledger commit (below)
+- T4 · 2026-06-02 12:3x · D4 /studio = intentional 301→/designs (Studio sub-brand killed via DTD aed2aa0) · no code change · commit 6155755
+- T5 · 2026-06-02 13:0x · D5 /moodboard = working (11 pins, empty-state present; 379 was innerText artifact) · no code change · + staged-cohorts report · commit (below)
+- LOOP ENDED 2026-06-02 13:0x · all 5 defects resolved (D1/D2/D3 fixed, D4/D5 not-bugs) · grafted-C report written · no further wakeups scheduled
← f4956d3 yolo-backlog: T5 — N5 theme-gallery skipped (theme switcher)
·
back to Wallco Ai
·
LA Toile: Option-B img2img recipe — luxe seed @0.72 + foliag a878353 →