Files
arah2/.planning/phases/05-routing-route-display/05-VERIFICATION.md

36 lines
3.0 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 5: Routing + Route Display — Verification
**Verified:** 2026-10-24
**Method:** goal-backward against ROADMAP §Phase 5 (SC3 as amended per 05-CONTEXT — fixture RoutingSource backend + documented backend ladder + deliberate router-pending state).
## Success Criteria
### SC1 (RTNG-01) — route drawn on the Rams map from current location to destination — ✅ PASS
- Route paint stack live: selected = 9px matte-black casing + 5px signal-orange center (Phase 1's reserved accent as primary consumer); unselected = 5px/3px black+beige quiet mini-stack; layers ADDED above `building-3d` at pitch 35° — style never re-set (RP gates + code greps).
- Origin ring + destination pin (12px square + 8px tail, name chip) per UI-SPEC; camera fit-bounds with the declared padding.
- Two real bugs the new capture legs caught and fixed: `bootMap` missing the `onLoad` callback (route sources never installed) and route-consult racing map load — both gated by an RS2 boot-wiring regression test.
- Capture evidence: `shell-route-fixture.png` / `shell-route-alt.png` / `shell-route-dark.png` (13/13 non-blank).
### SC2 (RTNG-02) — up to 3 alternatives, quiet Rams cards, selection redraws — ✅ PASS
- Bottom card + chips per UI-SPEC: time in `telemetry-num`, distance, one-line difference; tap → redraw (alt-swap capture shows `ROUTE 2/2 / +1 MIN VS ROUTE 1`).
- 8 of 15 corpus pairs carry ≥2 alternates (floor 4 — exceeded).
### SC3 (amended) — golden corpus routes cleanly through the fixture backend — ✅ PASS
- 15 real KL pairs (23 routes) fetched once at build time from the public OSRM demo (`code: Ok` throughout; no user data, D-12 mechanically proven — RT2b joins origins to gazetteer landmarks).
- Offline tolerance gate RT1–RT10 **PASS**: 16,576B gz / 102,400 budget; bundle gate BA9: 35,076 / 204,800 gz bytes; BA10: 15/15 pair ids in the shipped bundle.
- Backend ladder documented: fixtures (#1) → client-side WASM router (#2, OSS track) → Valhalla-on-VPS (#3, provision path documented, not shipped). Worker no-route-proxy gates RP1/RP2 teeth-proven (D-05).
### Phase 6 groundwork
- `guidance_sessions` envelope frozen **types-only**: exact 4-field envelope, inline snapshot, 7200s TTL constant, `guidance:<id>` key scheme — zero KV runtime (GE1–GE7, `KvNamespace` count 0). Route model carries step geometry + snapped-progress fields day-one (D-07).
## Gates at close
search 57/57 · routing 35/35 · corpus PASS · bot 74/74 · web 76/76 · typechecks ×3 clean · theme audit clean · captures 13/13 · live deploy `e6a6811c`.
## Known-open (non-blocking)
- /cari client-menu defect (carried from Phase 4 — Telegram-side, diagnosis + re-arm script committed).
- RoutingSource backend #2/#3 deferred by design (05-CONTEXT D-01); arbitrary-origin routing arrives with them; "router pending" state is the designed interim.
## Verdict
**PHASE 5: PASSED** — 5/5 plans executed; all success criteria met (SC3 as amended). Phase 6 (Turn-by-Turn Guidance) is next.