← back to Wallco Ai
data/yolo-overnight/library-health-20260525-1318.md
83 lines
# Library Health Check — 2026-05-25 13:18 PT
## Endpoint Note
Task prompt said `GET http://127.0.0.1:9877/api/library`. Port **9877** is now owned by
`paint-visualizer-agent` (`/root/DW-Agents/paint-visualizer-agent/server.js`) and has no
`/api/library` route (returns 404). The real `wallco-ai` PM2 process listens on **port 9905**
(`/root/public-projects/wallco-ai`), and that is where this check actually ran. The prompt's
9877 reference appears stale — recommend updating the YOLO runner config.
## `/api/library?limit=1` Response
- **HTTP** `200 OK`
- **Auth**: none required for this route
- **Top-level keys**: `ok`, `total`, `offset`, `limit`, `sort`, `filters`, `rows`
- **`total`**: `57417`
- **`filters`**: `{ q, hue, style, material }`
### `rows[0]` schema (observed)
| field | type | example |
|-------------------|-------------|----------------------------------------------------------------------|
| `id` | integer | `7661` |
| `title` | string | `Waves Wallcoverings (cw10030) – Greige and Grey` |
| `image_url` | string(url) | `https://cdn.shopify.com/.../CW10030.jpg?v=1774415489` |
| `dominant_hex` | string(hex) | `#F2E8DA` |
| `palette` | string[] | `["#F2E8DA","#D9CDBF","#E3D9C9"]` |
| `color_family` | string | `Beige` |
| `hue_bucket` | string | `amber` |
| `style_bucket` | string | `Modern` |
| `styles` | string[] | `["Contemporary","Organic Modern","Minimalist"]` |
| `patterns` | string[] | `["Abstract","Marble"]` |
| `ai_tags` | string[] | `["Beige","Light Beige","Cream",...]` |
| `material` | string | `Vinyl` |
| `design_era` | string | `Contemporary` |
| `mood` | string | `Serene` |
| `tags_redacted` | string[] | `["Abstract","Bathroom","Bedroom",...]` |
Schema verified — all expected fields present and well-typed.
## Random Sample — 10 Entries, Image HEAD Checks
Sampled offsets (uniform across 0–57416): `[3993, 24941, 20715, 16452, 46746, 11342, 39908, 39165, 19899, 56206]`
| # | id | offset | HTTP | content-type | size (B) | title |
|----|-------|--------|------|-------------------|---------:|----------------------------------------------------------------------------------------|
| 1 | 15178 | 3993 | 200 | image/jpeg | 578,277 | BluMarine BM29053 |
| 2 | 44242 | 24941 | 200 | image/png | 106,701 | Vinyl Metalworks - Metalwork Silver ⚠ image is a vendor logo, not a swatch |
| 3 | 36476 | 20715 | 200 | image/jpeg | 430,528 | W3943-319 Red Design \| Rifle Paper Co Second Edition |
| 4 | 30080 | 16452 | 200 | image/jpeg | 35,757 | W3653-16 Beige Design \| Texture Wallcovering |
| 5 | 66594 | 46746 | **404** | text/html | 0 | Sorrento Commercial Wallcovering — **BROKEN** |
| 6 | 3739 | 11342 | 200 | image/jpeg | 31,326 | Ruche Charcoal |
| 7 | 59735 | 39908 | 200 | image/jpeg | 378,571 | Kalamkari Border Celeste Gray Charcoal on White Screen Printed |
| 8 | 58992 | 39165 | 200 | image/jpeg | 168,364 | Lilya Leopard Sphere Pillow Natural Pillows |
| 9 | 34844 | 19899 | 200 | image/jpeg | 427,690 | Benning - Steel Natural Textiles |
| 10 | 73285 | 56206 | 200 | image/jpeg | 27,343 | Pleated Map Fabric Walls |
## Broken Set
**Count: 1 / 10 (10.0%)**
| id | image_url | failure |
|-------|------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
| 66594 | `https://cdn.shopify.com/s/files/1/0015/4117/7456/products/NEWMOR_0922d792-331f-466d-87d6-4fa122f9a8b9.jpg?v=1573939853` | HTTP 404 |
### Soft data-quality flags (not counted as broken)
| id | issue |
|-------|------------------------------------------------------------------------------------------------------------------------------------|
| 44242 | `image_url` points to `PhillipJeffriesLogo_*.png` — vendor logo file, not the actual product swatch. Loads 200, but wrong asset. |
## Extrapolation (informational, n=10)
A 10% Shopify-CDN 404 rate against the 57,417-row library would imply roughly **~5,700**
library entries with dead/relocated images. n=10 is too small to act on directly; a 200-row
sweep would tighten the estimate. Recommend a follow-up sweep before any backfill effort.
## Next Steps
1. Open ticket to repair / replace image for `library.id = 66594` (Sorrento Commercial Wallcovering, NEWMOR asset).
2. Update logo placeholder for `library.id = 44242` (Phillip Jeffries Vinyl Metalworks) — pull real swatch from `image_url` fallback or vendor catalog.
3. Update the YOLO runner that emitted this task: replace `:9877` with `:9905` (or use the wallco-ai PM2 name).
4. Run a 200-sample HEAD sweep to get a tighter broken-image rate.