29F Rewire — Status Board

Frozen 29F look  +  Neon engine underneath  |  Ohio Clean Cans
Last updated: July 4, 2026 (afternoon) — Full app live at this site + today's review round all shipped: your Aug→Jul routing moves (13,414 jobs, verified exact), the 3 UI fixes you called (side-card fields, pin→tile highlight, un-stickable profile), the side-card credit card, and 4 new engine money endpoints (audited identical). NEW on the proof page: a LIVE money card — old pipe vs new engine side by side with a Refresh button. Waiting on Howard: ① write-back design sign-off (parked, no rush — _docs/WRITEBACK_DESIGN.md), ② "restore it" for the Orders counters, ③ the broken-live-card-buttons fix approval (real finding: several card saves on LIVE 29F silently fail today). To use the app: sign in → lands in the CRM.
Standing rules: The mirror (Tools\29F_MIRROR_2026-07-03) is FROZEN — never edited. Live production (occ-app-29f) is untouched. All payment/send switches stay OFF. No tab counts as done until Howard opens it and approves it.
✅ DONE

Phase 0 — Freeze the Look

Exact mirror of live 29F saved (85 files). This is the visual truth — pixel-identical because it IS 29F.

✅ DONE

Phase 1 — Recon

30F + Neon inventoried (read-only). Verdict: Neon engine (occ-auth, 150+ endpoints) is real, decoupled, and can back plain HTML. 30F = parts shop.

✅ DONE

Phase 2 — Working Copy + This Status Board

Working copy at Tools\29F_REWIRE (rewiring happens here, never in the mirror). This page is the live scoreboard.

✅ DONE

Phase 3 — Call Map

100+ data calls cataloged across every tab. 75–80% have a direct match in the Neon engine. Gaps (prepaid manager, postcards/NFC, intel analytics, discounts) keep their OLD wiring for now — nothing gets guessed. Cleanest first tab: Dashboard.

🔨 WORKING

Phase 4 — Foundations: Adapter, Auth Bridge, Engine Endpoints

✅ Neon adapter + secure proxy (audit: PASS). ✅ Engine multi-site login shipped + verified. ✅ Login page live at /neon-login.html — waiting on Howard's one-time registration. ✅ First engine endpoints (Dashboard KPI math, 29F-exact) shipped after TWO audit rounds — 6 real findings caught and fixed before deploy, including an over-count bug of the exact type that caused the April 11 incident. ✅ Proof page live with tonight's real 29F numbers (1,837 subscribers · 321 stops this week) as the targets Neon must hit.

🔨 WORKING

Phase 5 — Data Refresh

Stage A (customers) DONE: 5 schema columns + all 4,334 customers synced (audited, upsert-only, zero deletes) — 1,837 Active Subscribers exact. ✅ Stage B (jobs) DONE: 1:1 mirror of all 13,343 jobs (new dedicated table, zero risk to anything else) — 321 stops / 7 orders MTD / 20 orders YTD all exact, status vocabulary matches row-for-row. Both pipelines are re-runnable for freshness (re-run cadence = Howard's call). Flagged for Howard: 176 stale June-seed leftover customer rows (cleanup = his call).

🔨 WORKING

Phase 6 — Tab-by-Tab Rewire

Blueprint COMPLETE — all 5 tabs: 120 data calls extracted from the frozen mirror, mapped against the Neon engine with line-level evidence, and adversarially verified. Every call classified (clean swap / adapter / new endpoint / keep old wiring), issue lists attached, saved as 6 contract documents. Notable find: the customer card writes some data through browser-composed raw SQL — those become proper endpoints during its write phase. Write phase order: Routes → Inbox → Reports → Customers → Settings, one at a time through build→audit, each ending with Howard's eyes.

Dashboard (KPIs)🔬 ALL database KPIs matching (1,837 · 321 · 7 · 20) — awaiting Howard's proof-page confirm
Routes / Schedule board🔬 LIVE ON SANDBOX — reads on Neon mirror, awaiting Howard's eyes
Customers / CRM🔬 LIVE — 1 read on Neon; rest on proven old pipes (schema-honest)
Inbox / Comms🔬 LIVE — 7 reads on Neon (10 sites); all sends stay on old pipes
Money / Reports✅ Audited — 0 wireable (every money number needs proven engine work first); runs on old pipes
Automations / Settings✅ Complete by blueprint — nothing wireable yet; runs on old pipes
⬜ HOWARD

Phase 7 — Cutover Decision

When every tab is approved: Howard decides when the rewired 29F becomes the daily driver. Nothing swaps without his word.