← back to Wallco Ai

data/yolo-overnight/missing-rooms-20260525-1305.md

102 lines

# Missing Room Mockups — Published Designs

**Run:** 2026-05-25 13:05 PT
**DB:** `dw_unified` · table `public.all_designs`
**Field:** `room_mockups jsonb` (nullable)
**Action:** **Report only — no generation performed.**

## Headline

**273 / 273** published designs are missing `room_mockups` — i.e., **100% of the
published catalog has no room visualizations.** Every published row is `NULL`;
none are empty objects/arrays.

## Counts

| Metric | Value |
|---|---|
| Total published (`is_published = true`) | **273** |
| Published with `room_mockups IS NULL` | **273** |
| Published with `room_mockups = '{}' / '[]' / 'null'` | 0 |
| Published WITH room_mockups populated | **0** |
| Total rows in `all_designs` (all brands/kinds) | 8,745 |
| Total rows (any) with `room_mockups` populated | 17 (all unpublished — e.g. id 2912) |

So the universe of populated `room_mockups` in the table is tiny (17 rows) and
**none of those 17 are currently published.** Whatever script generated the
2912-style mockups never ran across the published set.

## 10 Sample IDs (oldest first, deterministic by id ASC)

```
78, 79, 80, 81, 82, 83, 84, 85, 86, 87
```

| id | kind | category | created |
|---|---|---|---|
| 78 | best_seller_seed | phillipe-romano | 2026-05-12 |
| 79 | best_seller_seed | ralph-lauren | 2026-05-12 |
| 80 | best_seller_seed | traditional-whimsy | 2026-05-12 |
| 81 | best_seller_seed | ralph-lauren | 2026-05-12 |
| 82 | best_seller_seed | mind-the-gap | 2026-05-12 |
| 83 | best_seller_seed | mind-the-gap | 2026-05-12 |
| 84 | best_seller_seed | mind-the-gap | 2026-05-12 |
| 85 | best_seller_seed | koroseal | 2026-05-12 |
| 86 | best_seller_seed | graduate-collection | 2026-05-12 |
| 87 | best_seller_seed | thibaut | 2026-05-12 |

(All 273 published rows landed between **2026-05-12 → 2026-05-20** across
**21 distinct categories.**)

## Expected shape (from id 2912 — an unpublished design that *does* have rooms)

```json
{
  "office":      "/Users/stevestudio2/Projects/wallco-ai/data/rooms/design_2912_office.png",
  "bedroom":     "/Users/stevestudio2/Projects/wallco-ai/data/rooms/design_2912_bedroom.png",
  "dining_room": "/Users/stevestudio2/Projects/wallco-ai/data/rooms/design_2912_dining_room.png",
  "living_room": "/Users/stevestudio2/Projects/wallco-ai/data/rooms/design_2912_living_room.png"
}
```

Object keyed by room type → image path. Paths in the sample row are absolute
**stevestudio2 macOS paths** — if a generator runs on this Kamatera box, paths
will likely need to be remapped to `/root/public-projects/wallco-ai/data/rooms/…`
or rewritten relative.

## Notes for overnight room-gen targeting

- The full published set (273) is small enough that one overnight pass at
  4 rooms each = **1,092 renders** total. Sized for a single Gemini job.
- Per `/root/DW-Agents/CLAUDE.md` rule #18, room generation **MUST** run in
  parallel batches (3 concurrent). Don't sequentialize.
- Path mismatch above means a generator written for stevestudio2 won't
  resolve outputs correctly on this server — verify the path rewrite before
  kicking it off.
- `id 78–87` are a tight first-batch sample (all `best_seller_seed`, all
  2026-05-12) — useful for smoke-testing the pipeline before running 273.
- Inversely interesting: ~17 unpublished designs DO have room_mockups,
  which suggests rooms were generated pre-publish-flip and the publish
  trigger doesn't enqueue room-gen. Worth wiring into
  `settlement_publish_trigger.sql` so future publishes don't accumulate
  this gap.

## SQL used

```sql
-- Count breakdown
SELECT 'total_published'  AS metric, COUNT(*) FROM all_designs WHERE is_published = true
UNION ALL
SELECT 'missing_rooms', COUNT(*) FROM all_designs
  WHERE is_published = true
    AND (room_mockups IS NULL OR room_mockups::text IN ('{}','[]','null'));

-- 10 sample IDs
SELECT id, kind, category, created_at::date
FROM all_designs
WHERE is_published = true
  AND (room_mockups IS NULL OR room_mockups::text IN ('{}','[]','null'))
ORDER BY id
LIMIT 10;
```