Phase 4 plan: refresh status header (stages 0-10 + §4 migration shipped)

Header was dated 2026-05-10 and described stages 0-8 with Stage 9 in
progress. As of 2026-05-18 Stage 10 (chat tab), the §4 payment-before-pair
migration (Stages 5.1/5.3/5.4), the legacy /payment retirement, and the
TS-01..TS-07 Maestro suite are all on master. Older notes preserved
under "Post-Stage-8 corrections".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-17 20:57:19 +08:00
parent 93fa5f113a
commit 938954bbe8

View File

@@ -1,11 +1,26 @@
# Phase 4 — Implementation Plan
> **Status (2026-05-10):** Stages 08 are code-complete and committed
> on master (commits `4ada7c9` through `862fc35`, plus the pre-Phase-4
> `4680c36` OTP test infrastructure). `flutter analyze` clean across
> both apps; backend Vitest 15/15. **Stage 9 (test sweep) is
> operator-driven and in progress** — see "Post-Stage-8 corrections"
> below for fixes applied during the visual sweep.
> **Status (2026-05-18):** Stages 010 + the §4 returning-user payment
> migration (Stages 5.1 / 5.3 / 5.4) are code-complete on master. Latest
> milestones:
>
> - Pricing relational migration (commit `1c9d81d`).
> - §4 payment-before-pair for returning users (commit `e09f76c`):
> bestie-history row tap now routes through the full QRIS multi-screen
> flow before pairing, for both targeted (lama) and blast (baru /
> cari-bestie-lain) branches. Legacy `/payment` route + screen retired.
> - Maestro suite (commits `e09f76c` + `93fa5f1`): seven flows
> `ts-01..ts-07` covering every §4 branching point plus the §2
> "existing user with name skips set-name" edge. All green end-to-end
> against a debug APK rebuilt with the new code; shared onboarding
> prelude under `.maestro/subflows/`. New backend `_test` endpoints
> for offline/online/seed/accept fixtures (`/internal/_test/{force-mitra-{offline,online},reset-all-mitras-online,accept-latest-pending,seed-customer}`).
> - `/internal/_test/force-pairing-timeout` now branches targeted-vs-blast
> so the targeted-fail-post-payment path fires `RETURNING_CHAT_TIMEOUT`
> (drives the BestieOfflinePopup → fallback-to-blast UX).
>
> Older status notes for stages 08 preserved in
> "Post-Stage-8 corrections" below.
> See [phase4-customer-flow.md](phase4-customer-flow.md) for the PRD,
> [flow_customer.md](flow_customer.md) for the source-of-truth flow,