← back to Nineoh Guide
5x: verification report — 3 sweeps, /api/cast 500 fixed, clean twice
6693593b3f49f0eff59aaa852182789bafd2aaa5 · 2026-09-12 20:35:45 -0700 · Steve Abrams
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
Diff
commit 6693593b3f49f0eff59aaa852182789bafd2aaa5
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sat Sep 12 20:35:45 2026 -0700
5x: verification report — 3 sweeps, /api/cast 500 fixed, clean twice
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
5x/REPORT.md | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/5x/REPORT.md b/5x/REPORT.md
new file mode 100644
index 0000000..ab7c059
--- /dev/null
+++ b/5x/REPORT.md
@@ -0,0 +1,36 @@
+# /5x REPORT — Unofficial 90210 Fan Guide (web)
+
+**Target:** http://127.0.0.1:4090 (local Next.js dev, `nineoh_guide` Postgres at /tmp socket)
+**Date:** 2026-09-12 · **Ticket:** TK-00032 · **Agent:** claude-run-00032
+
+## Sweep ledger
+| sweep | six-way | routes | caught | fixed | commit |
+|-------|---------|--------|--------|-------|--------|
+| 1 | 7/7 pass, 0 JS err | 18/19 (`/api/cast` **500**) | 1 | 1 | dc8c199 |
+| 2 | 7/7 pass, 0 JS err | 19/19 | 0 | 0 | — |
+| 3 | 7/7 pass, 0 JS err | 19/19 | 0 | 0 | — |
+
+**Stop condition:** clean twice (sweeps 2 & 3) → DONE.
+
+## Defect caught + fixed (sweep 1)
+`/api/cast` returned HTTP 500 (`{cast:[]}`) — the Expo app's cast endpoint served an
+empty list. Root cause: the query referenced `cr.show_id` (credits.show_id), a column
+that does not exist in the schema; only `characters.show_id` carries show scoping.
+Postgres threw `column cr.show_id does not exist`, the route caught it and returned 500.
+Fix: replaced `coalesce(cr.show_id, ch.show_id)` with `ch.show_id` in the select,
+`distinct on`, and `order by`. `/api/cast` now returns 200 with populated `showId`
+(verified: Shenae Grimes-Beech → Annie Wilson, real showId). Commit dc8c199 (local).
+
+Note: the `/cast` **page** was already 200 (its query never selected show_id) — only the
+`/api/cast` route (added later for the mobile app) carried the bad column.
+
+## Final six-way state (all sweeps)
+- M1 HTTP contract · M2 headless render (801KB) · M3 E2E (0 JS errors)
+- B4 Chrome · B5 Safari · B6 Firefox — all pass
+- Click-through: 1 pass / 0 fail / 10 skip (skips = DW-store-specific selectors absent here)
+- tsc `--noEmit`: clean
+- 19/19 routes 200: `/ /episodes /cast /characters /news /community /games /show /search
+ /legal/{disclaimer,dmca,privacy} /sitemap.xml /robots.txt /api/{health,episodes,cast,news,shows}`
+
+## Open items
+None. Live web app verified clean and self-healed.
← dc8c199 5x sweep 1: fix /api/cast 500 — credits has no show_id; scop
·
back to Nineoh Guide
·
mobile: align deps to Expo SDK 57 (pre-build hygiene before 4310f6e →