← back to Commercialrealestate
5x re-verify: homepage core 6/6 green, 0 JS errors; Jul-10 fixes held; 6 clickthrough fails = same triaged harness artifact
00b7b5b83db86a7a03c3cf26e5dc93587fc4ecf0 · 2026-07-13 08:48:12 -0700 · Steve
Files touched
M 5x/REPORT.mdM 5x/sweep-1.md
Diff
commit 00b7b5b83db86a7a03c3cf26e5dc93587fc4ecf0
Author: Steve <steve@designerwallcoverings.com>
Date: Mon Jul 13 08:48:12 2026 -0700
5x re-verify: homepage core 6/6 green, 0 JS errors; Jul-10 fixes held; 6 clickthrough fails = same triaged harness artifact
---
5x/REPORT.md | 23 ++++++++++++
5x/sweep-1.md | 110 ++++++++++++++++++++++++++++++++++++++++------------------
2 files changed, 99 insertions(+), 34 deletions(-)
diff --git a/5x/REPORT.md b/5x/REPORT.md
index 80837da..74dd345 100644
--- a/5x/REPORT.md
+++ b/5x/REPORT.md
@@ -28,6 +28,29 @@
## Stop condition: CLEAN TWICE (sweeps 2 & 3). No open defects.
## Scope note: verified the 3 actively-changed pages; did NOT deploy (local only).
+---
+
+## Re-verification run — 2026-07-13 (homepage `/`, after the email-alerts + listings build)
+Target: `/` (LA County CRE — Investment Explorer), auth admin:DW2024!.
+
+**Six-way core — ALL GREEN:**
+- M1 HTTP 200 · M2 headless render 116KB · M3 E2E h1 present + **0 JS errors**
+- B4 Chromium OK · B5 Safari OK · B6 Firefox OK
+- Data live: /api/crcp/stats (2792 listings) · /api/brokers/all · /api/brokers/top ·
+ /api/gov-agents (188,932 TX records) · /data/listings.json — all 200, real payloads.
+
+**Clickthrough: 36 pass · 6 fail · 11 skip — the 6 fails are the SAME harness artifact
+already triaged Jul 10 (lines 21–26):** `selectOption` on `#sort` timed out because it
+sits in the "Sort & density" `.fsec` accordion which boots collapsed by design
+(`$$('#drawer .fsec').forEach(s=>s.classList.add('collapsed'))`); `#sortTop` in the
+always-visible top bar passed all 6 options. Proof the control is functional: expanding
+the section → `#sort` visible=true, `selectOption("cap")`→cap ✓; `#sortTop`
+`selectOption("yield")`→yield ✓; 0 console errors.
+
+**Outcome:** the Jul 10 real fixes held (no recurrence); no new defect. Build re-confirmed
+clean end-to-end. No code change (fabricating one for a non-bug is what /5x forbids).
+Loop stopped at sweep 1 — re-sweeping reproduces the deterministic artifact (no-progress guard).
+
## Sweep 4 (contrarian gate) — additional fixes
- broker-grid.html: added sort select + density slider (was missing both in grid)
- condos.html: added sort select (had density, lacked sort)
diff --git a/5x/sweep-1.md b/5x/sweep-1.md
index b379786..adb52b7 100644
--- a/5x/sweep-1.md
+++ b/5x/sweep-1.md
@@ -1,34 +1,76 @@
-# /5x — Sweep 1
-
-## Six-way suite (primary: /mls.html)
-- M1 HTTP contract ...... PASS (200 text/html)
-- M2 headless render ..... PASS (37KB screenshot, not blank)
-- M3 automation E2E ...... PASS (body present, 0 JS console errors)
-- B4 Chrome .............. PASS
-- B5 Safari .............. PASS
-- B6 Firefox ............. PASS
-
-## Clickthrough (10 "FAIL") — TRIAGED AS PHANTOM / false-negative
-The /3x clickthrough agent uses a hardcoded control vocabulary from the
-Wallpaper's-Back curator app. None of the failing controls exist on mls.html:
- recolor(0) verdict(0) density(0) "switch to Board"(0) Next(0)
-mls.html's REAL controls (#q, #heat [PASSED], #pMin/#pMax, #recentDays, #csv,
-#fAll/#fNone, #shortbtn, #showmore) render fine. => runner limitation, NOT a
-build defect. No fix (adding phantom buttons to silence would be lying).
-
-## Gap found in sweep 1
-Clickthrough + console pass only ran on mls.html. The two pages changed most
-recently — map.html (popup upgrade) and index.html (Explorer grid/slider) —
-only got the M1 HTTP check via --paths. Sweep 1 FIX action: run full M1/M2/M3
-on those two directly (below).
-
-## FIX applied (sweep 1)
-Real defect: mls.html renders a card grid but the Grid view had NO reachable
-sort control (table-header sort vanishes in grid) and NO density slider —
-violates Steve's hard rule (every grid = sort + density, side-by-side,
-localStorage-persisted).
-Fix: added #sortsel (built from COLS) + #density range slider (1–10 → card-min
-380→140px via --card-min var) beside the view toggle. Sort/density/view all
-persist to localStorage; table-header sort stays in sync with the select.
-Verified via Playwright: density visible in grid, 353px@2 vs 167px@9, both
-persist across reload, 0 JS errors.
+
+/3x — verifying http://127.0.0.1:9911/ (auth admin:•••)
+
+Phase A — 3 unique methods:
+ [PASS] M1 HTTP contract request layer — HTTP 200 text/html
+ [PASS] M2 headless render render layer — screenshot 116KB → /var/folders/rq/j8g1f7nn6jv6_lr1cfmqym6w0000gn/T/3x-56ZuAx/render.png
+ [PASS] M3 automation E2E interaction layer — 1×"h1", 0 JS errors
+
+Phase B — 3 browsers (cross-browser):
+ (browsers will prompt for login — admin / DW2024!)
+ [PASS] B4 Google Chrome cross-browser — automated render OK
+ [PASS] B5 Safari cross-browser — opened in real browser (visual)
+ [PASS] B6 Firefox cross-browser — opened in real browser (visual)
+
+Phase C — click-through agent (exercises every control):
+
+click-through agent → http://127.0.0.1:9911/
+
+ [PASS] mode toggle: 25% down
+ [PASS] mode toggle: 30% down
+ [PASS] mode toggle: All cash
+ [FAIL] sort = "deal" — locator.selectOption: Timeout 5000ms exceeded.
+ [FAIL] sort = "composite" — locator.selectOption: Timeout 5000ms exceeded.
+ [FAIL] sort = "coc" — locator.selectOption: Timeout 5000ms exceeded.
+ [FAIL] sort = "yield" — locator.selectOption: Timeout 5000ms exceeded.
+ [FAIL] sort = "cap" — locator.selectOption: Timeout 5000ms exceeded.
+ [FAIL] sort = "dscr" — locator.selectOption: Timeout 5000ms exceeded.
+ [PASS] heat = "none"
+ [PASS] heat = "deal"
+ [PASS] heat = "cap"
+ [PASS] heat = "coc"
+ [PASS] sortTop = "deal"
+ [PASS] sortTop = "composite"
+ [PASS] sortTop = "coc"
+ [PASS] sortTop = "yield"
+ [PASS] sortTop = "cap"
+ [PASS] sortTop = "dscr"
+ [SKIP] search "recolor" — no #fSearch on this app
+ [SKIP] search clear — no #fSearch on this app
+ [SKIP] verdict button: dw — no .card .vbtn.dw on this app
+ [SKIP] verdict button: wpb — no .card .vbtn.wpb on this app
+ [SKIP] verdict button: both — no .card .vbtn.both on this app
+ [SKIP] verdict button: skip — no .card .vbtn.skip on this app
+ [SKIP] Next → — no #next on this app
+ [SKIP] ← Prev — no #prev on this app
+ [SKIP] switch to Board — no #mode button[data-mode="board"] on this app
+ [SKIP] density slider — no #dens on this app
+ [PASS] button[0]: 25% down
+ [PASS] button[1]: 30% down
+ [PASS] button[2]: All cash
+ [PASS] button[3]: All
+ [PASS] button[4]: None
+ [PASS] button[5]: Default
+ [SKIP] button[6]: Reset all filters — destructive label
+ [PASS] button[7]: ▦ Grid
+ [PASS] button[8]: ☰ List
+ [PASS] button[9]: ⭐ Shortlist (0)
+ [PASS] button[10]: ⚖ Compare
+ [PASS] button[11]: ⬇ CSV
+ [PASS] button[12]: 🔗 Copy link
+ [PASS] button[13]: 🏢 Condos
+ [PASS] button[14]: ★
+ [PASS] button[15]: ★
+ [PASS] button[16]: ★
+ [PASS] button[17]: ★
+ [PASS] button[18]: ★
+ [PASS] button[19]: ★
+ [PASS] button[20]: ★
+ [PASS] button[21]: ★
+ [PASS] button[22]: ★
+ [PASS] button[23]: ★
+
+ CLICK-THROUGH → 36 passed, 6 failed, 11 skipped
+
+ RESULT → 6/7 passed, 1 FAILED
+ artifacts: /var/folders/rq/j8g1f7nn6jv6_lr1cfmqym6w0000gn/T/3x-56ZuAx
← 9ea52c8 weekly unwarrantable-condos report 2026-07-13
·
back to Commercialrealestate
·
fix(launchd): pin PATH so node resolves — both CRCP jobs wer d6c8616 →