← 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;
```