← back to Studio Zero
5x/REPORT.md
36 lines
# /5x REPORT — Studio Zero
Target: studio-zero served in demo mode (SZ_PROVIDER=demo → clickthrough exercises every
control instantly; the LLM path is out of scope for a UI sweep).
## Sweep-by-sweep
| Sweep | Port | Six-way | Caught | Fixed | Commit |
|------|------|---------|--------|-------|--------|
| 1 | 4190 | 4/7 | 3 (M3 favicon-404, 2× export-button click-timeout, M1) | favicon + conditional export buttons | 81d5154 |
| 2 | 4190 | 6/7 | 1 (M1 only) | diagnosed M1 as a test artifact (see below) | — |
| 3 | 4321 | 7/7 | 0 | — | (clean) |
| 4 | 4321 | 7/7 | 0 | — | (clean) |
Stop condition: **clean twice** (sweeps 3 & 4).
## Defects + real fixes
1. **M3 JS error = `/favicon.ico` 404** — page had no icon. Fixed at root: inline data-URI
SVG favicon (a play-button mark) → no request, no 404. `81d5154`
2. **Clickthrough: "Download plan" / "Copy markdown" click-timeout** — they rendered
dimmed-but-present (pointer-events:none) with 0 steps done, so Playwright waited 5s.
Fixed by only RENDERING those export buttons once ≥1 step exists (better UX — no inert
dead buttons — and nothing for the clickthrough to hang on). `81d5154`
3. **M1 "fetch failed" — NOT an app defect.** Port 4190 is a WHATWG "bad port"
(managesieve) that undici's `fetch` refuses by spec ("bad port"). curl, Chrome, and
Node `http.get` all reached the server (200); only `fetch` blocked it. Re-ran on a
non-bad port (4321) → M1 passes. No code change warranted; documented so it isn't
mistaken for a server bug next time.
## Final six-way state (sweeps 3–4)
M1 HTTP 200 ✅ · M2 render ✅ · M3 E2E 0 JS errors ✅ · Chrome/Safari/Firefox ✅ ·
click-through 5/5 (New · Start · Generate · Copy markdown, + export buttons appear post-generate) ✅
## Open items
None. Note for future local `/5x` / fetch-based tests: avoid WHATWG bad ports
(4190, 6000, 6666, 5060, …) or undici fetch will report "fetch failed / bad port".