← back to Dw Pitch Followup

5x/REPORT.md

33 lines

# /5x REPORT — dw-pitch-followup

## Run 2 — 2026-07-14 (local http://127.0.0.1:9768)
After the card/UX + George-401-fix + FileMaker-deep-link batch (commits c6d5609…9aa4cdc).

### Sweep ledger
| sweep | six-way | click-through | caught | fixed | commit |
|-------|---------|---------------|--------|-------|--------|
| 1 | 7/7 | 51 passed / 0 failed | 0 | 0 | — |
| 2 | 7/7 | 51 passed / 0 failed | 0 | 0 | — |

**Stop condition:** clean twice → DONE. No fixes required.

### Final six-way state (local)
- **M1 HTTP contract** — 200 text/html, expect "Invoiced" matched ✅
- **M2 headless render** — screenshot renders (#board present) ✅
- **M3 Playwright E2E** — 1×#board, **0 JS errors** ✅ (localhost has no Cloudflare challenge scripts, so the tunnel's networkidle trap below doesn't apply)
- **B4 Chrome / B5 Safari / B6 Firefox** — render OK ✅
- **Click-through** — 51 controls (layout toggle, Sent log, Copy/Export, every card's Generate/Details/✓ Done, all sort selects): 51 passed, 0 failed, 0 console/page errors ✅
- **Endpoints** — /api/lists, /api/sent-index, /api/sent all 200 ✅

### Open items (external / manual — NOT app defects)
- **FileMaker `GotoClient` script** — the `acct …` deep-link returns "script not found" until `GotoClient` is created in the `Clients` file (`GotoInvoice` already works; `fmurlscript` confirmed enabled). FileMaker design object, can't be done from the web side.

### Verdict
Web app clean and stable across all six methods + full click-through. No regressions from the session's changes.

---

## Run 1 — earlier (tunnel https://pitch.designerwallcoverings.com) — still-valid notes
- Sweep 1 fixed a favicon `/favicon.ico` 404 console error → added auth-exempt `GET /favicon.ico → 204` (commit d29d6ef). Still in place.
- Over the **tunnel**, M3 `waitUntil:networkidle` never settles because Cloudflare injects `/cdn-cgi/challenge-platform/` bot-challenge scripts that keep the network active — the "networkidle trap", not an app defect (app loads clean with `waitUntil:load`). Local runs (Run 2) avoid this entirely.