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

3.0 KiB
Raw Blame History

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.