Files

39 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase 6: Turn-by-Turn Guidance (Live Driving) — Verification
**Verified:** 2026-10-25
**Method:** goal-backward against ROADMAP §Phase 6 success criteria; device-gate user verdict ("approved" — Parts A/B/C) after one in-gate bug round (a69fe31).
## Success Criteria
### SC1 (GUID-01/03/04) — maneuver banner, ETA progression, haptics — ✅ PASS
- Prominent next-maneuver banner (distance + arrow + street) with the collapsible full list (GS1–GS7 gates); real OSM street names via the graph's street reconstruction (Jalan Tun Sambanthan et al., on film).
- ETA + remaining progress per accepted fix with per-axis EMA + independent display deadbands (E1–E8) — no visible whiplash, replay-pinned.
- Haptic cues behind capability guards: selectionChanged at maneuver approach (~300m), impact at the point; graceful no-op unsupported (GS13–GS14).
### SC2 (GUID-02) — silent self-healing reroute with storm guard — ✅ PASS
- D-04 thresholds + grace machine: ON_ROUTE → OFF_ROUTE (grace window + N consecutive off-route fixes) → REROUTING → ON_ROUTE (R1–R12 replay green incl. the storm guard + the retry-after-guard deviation fix).
- Engine side delivered **with escalation**: engine A (typed-array A\* over the R2-hosted 15.4MB KL CSR graph) routes arbitrary origins live — 200 + real geometry verified at the deployed origin; free-plan CPU budget honored via the measured c3 class: short product reroutes 2–8ms in-budget; cross-metro → calm NO REROUTE / honest router-pending (maintainer decision 2026-10-25: c3 now, **ALT preprocessing (c2) = next-milestone upgrade lever**; c1 paid tier rejected on the $0 law).
- Verified via recorded-drive replays AND the one real drive (Part B approved).
### SC3 (GUID-05/06) — backgrounded turn-cards, seamless resume — ✅ PASS
- Minimize → the frozen envelope goes live (POST /api/guidance; claim-only identity — GW4 injection probe) → the repo's first Cron Trigger (60s) scans active guidance:, projects progress along the snapshot, pushes street-bearing glyph+text turn-cards (envelope.chat_id ONLY, zero KV writes per tick).
- Re-open → GET resume at progressed position (G9–G12; the steps-less-resume instant-arrival bug found + fixed during the concurrent-dispatch merge).
### SC4 (PX-01/PX-03) — full BackButton graph, close protections — ✅ PASS
- BackButton walks search → routes → guidance → back to search, never dead-ends (context-aware resolver; the phase-3 two-state walk extended); closing during guidance requires the "Tinggalkan laluan?" confirm card (G7b survival gate); vertical-swipe-close disabled while guidance active; safe areas respected.
### SC5 (PRIV-01 in-app half) — trip end deletes + messaging — ✅ PASS
- Arrival and abandon both run the same teardown: watch stopped, close protection released, chrome cleared, **session deleted** (DELETE endpoint), trip-ended "data deleted" card in the center register (D-14) — user-confirmed on the road; optional KV spot-check showed no stale `guidance:` keys.
## Gates at close
search 57/57 · routing 65/65 · corpus PASS · bot 125/125 · web 148/148 · typechecks ×3 clean · theme audit clean · captures 20/20 · live deploy `39045611` (web 148-gz BA9 69.5KB/204.8KB budget).
## Known-open (non-blocking)
- /cari client-menu defect (carried from Phase 4 — Telegram-side).
- /start logo served from web/public PNG; master SVG set now in-repo (brand source).
- R2 activation done (2026-10-25); graph uploads verified round-trip.
## Verdict
**PHASE 6: PASSED** — 8/8 plans executed; all success criteria met. Phase 7 (Hardening + Private Launch) is next.