From f9a140dd84292afe594890d17d6adbc8714fd74d Mon Sep 17 00:00:00 2001 From: araharah-executor Date: Sat, 24 Oct 2026 03:19:17 +0800 Subject: [PATCH] =?UTF-8?q?docs(04):=20phase=204=20PASSED=20=E2=80=94=20ve?= =?UTF-8?q?rification=20+=20checkpoint=20resolution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../04-04-SUMMARY.md | 9 +++++ .../04-VERIFICATION.md | 39 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 .planning/phases/04-destination-search-kl-gazetteer/04-VERIFICATION.md diff --git a/.planning/phases/04-destination-search-kl-gazetteer/04-04-SUMMARY.md b/.planning/phases/04-destination-search-kl-gazetteer/04-04-SUMMARY.md index 8911510..800cb6d 100644 --- a/.planning/phases/04-destination-search-kl-gazetteer/04-04-SUMMARY.md +++ b/.planning/phases/04-destination-search-kl-gazetteer/04-04-SUMMARY.md @@ -242,3 +242,12 @@ BotFather-side value; the bot-side menu button + `MINI_APP_URL` are confirmed eq each). - Suites re-run at close: web 57/57, bot 65/65, corpus threshold PASS; capture 8/8; deploy live with canaries green. + +## Checkpoint resolution (orchestrator, 2026-10-24) + +Device gate **PASSED** (user verdict): legs 1–4 + 6 PASS on real hardware; leg 5 +user-accepted after the BotFather Main Mini App fix (automated DP coverage stands). +Post-gate rounds shipped: map tilt + extrusion, /start logo, command-scope shadow +law. Known-open cosmetic: client command menu (Telegram non-default setMyCommands +defect; diagnosis in 04-DEVICE-GATE.md). Verification: 04-VERIFICATION.md — +phase 4 PASSED. diff --git a/.planning/phases/04-destination-search-kl-gazetteer/04-VERIFICATION.md b/.planning/phases/04-destination-search-kl-gazetteer/04-VERIFICATION.md new file mode 100644 index 0000000..97cfc28 --- /dev/null +++ b/.planning/phases/04-destination-search-kl-gazetteer/04-VERIFICATION.md @@ -0,0 +1,39 @@ +# Phase 4: Destination Search + KL Gazetteer — Verification + +**Verified:** 2026-10-24 +**Method:** goal-backward against ROADMAP §Phase 4 success criteria; device-gate user verdict ("everything else is approved") after in-gate debug/UX rounds (see 04-DEVICE-GATE.md). + +## Success Criteria + +### SC1 (SRCH-01) — golden queries return the right KL landmark — ✅ PASS +- 75-case pinned corpus: **top-3 68/68 (100%)** ≥ 90% gate; golden landmarks (KLCC, Sunway Pyramid, DUKE), malls, transit hubs, kampung-style names all resolve. +- LIVE on the deployed Worker: gazetteer inlined into the bundle (30/30 ids verified in the served chunk), `/cari KLCC` → sendVenue card via the real bot. + +### SC2 (SRCH-02) — abbreviated/typo'd/glued queries resolve — ✅ PASS +- Abbreviation tier 15, glued 7, typo 14 corpus cases green; JUPEM rule table (48 rows incl. Kpg) as DATA + OSA-Damerau residual net; `Jln Ampang`→`Jalan Ampang`, `KCLC`→KLCC verified in-suite and on-device. + +### SC3 (SRCH-03) — native venue card confirms before navigation — ✅ PASS +- `sendVenue` card + OPEN IN ARAHARAH + 2–4 alternates (callback swap re-renders a new card); device legs 1–3 confirmed the card on Android/iOS/Desktop. +- Honest out-of-area refusal (SC "negatives"): `/cari Kuching` refuses in text — device leg 6 PASS; 7/7 corpus negatives refused with measured admission margin. + +### SC4 (ONBD-02) — Mini App opens preloaded from search — ✅ PASS +- Two-carrier reader: primary `?dest=` on the web_app button (platform truth: `web_app` buttons cannot carry `start_param` — research-verified, D-10 mechanism amended, intent preserved), `start_param` secondary. +- Device legs 1–3: destination card "Suria KLCC" preloaded on Android, iOS, Desktop. Memory-only resolution (D-03/D-07 gates: no storage writes; BA drift gates over dist). + +### SC5 (ONBD-03) — home-screen launch lands search-ready — ✅ PASS +- Device leg 4: home-screen relaunch lands the app booted in Telegram, search-ready; `addToHomeScreen`/`checkHomeScreenStatus` behind capability guards (iOS "unknown" ≠ failure, per RESEARCH). + +### SC-bake-off — the experiment closes — ✅ PASS (closed at the first rung) +- D-14 gate: threshold met, escalation lever **None** (recorded in docs/SEARCH-QUALITY.md). Ladder preserved for later phases: table edits → WASM geocoder backend #2 → Photon-on-VPS (#3). VPS provisioning correctly deferred to Phase 5 (Valhalla). + +## Known-open (non-blocking, recorded) +- `/cari` absent from the *client command menu*: Telegram-side silent-write defect on non-default `setMyCommands` scopes (diagnosed in 04-DEVICE-GATE.md; default scope is correct; the command itself works when typed; register script re-arms all scopes for retry). +- Leg 5 on-device re-send after the BotFather Main Mini App config was deferred by the user ("everything else is approved"); the unknown-id surface is covered by automated DP gates + capture. +- Post-gate UX shipped within this phase: map tilt (pitch 35°) + runtime building extrusion (style-owned colors), `/start` logo (static-asset URL), command-scope shadow law. + +## Final gates at close +search 57/57 · bot 65/65 · web 57/57 · typechecks clean · theme audit clean · captures 8/8 · live deploy `41dedd84`. + +## Verdict + +**PHASE 4: PASSED** — 4/4 plans executed; all success criteria met. Phase 5 (Routing + Route Display) is next; VPS provisioning begins there.