From 0691665b3a17199bd67b1846f17d7f601e8e4b57 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Wed, 19 Aug 2026 16:09:56 +0700 Subject: [PATCH] chore(plans): consolidate all plans at repo root Plans were split across three trees: plans/, web/plans/, and android/plans/. Merge them into plans/ at the repo root. Sweep the shipped Android experience pass and the two reports for it, carrying the residual forward into plans/todo.md: the device QA checklist (open only because this environment has no device or emulator), the clipped web PWA icons defect, and the untested native assumptions. Merge android/plans/todo.md in the same pass, dropping items the experience pass already delivered -- haptics, back button, safe-area insets, launcher icon, and splash -- each verified against MainActivity.java, web/src/app.css, and the res/ tree. Correct two stale claims while merging: web/ is a plain directory in this monorepo, not a git submodule, and the serialize-javascript override is held by @rollup/plugin-terser rather than workbox-build. The retired native Kotlin/Compose port plan moves as-is; it is superseded by the Capacitor wrapper but not yet swept. --- android/plans/todo.md | 120 ---------- .../phase-01-confetti-and-celebration.md | 0 .../phase-02-section-cho-ring.md | 0 .../phase-03-solid-color-palette.md | 0 .../phase-04-voice-hint-per-mode.md | 0 .../phase-05-extract-auto-tick.md | 0 .../phase-06-tests-and-verification.md | 0 .../260429-1511-loto-upstream-sync/plan.md | 0 .../reports/xia-recon-260429-1511.md | 0 .../phase-01-tier1-defects.md | 137 ------------ .../phase-02-tier2-defensive.md | 132 ----------- .../phase-03-store-polish.md | 82 ------- .../plan.md | 82 ------- .../260721-1328-shared-android-signing-key.md | 0 ...814-1004-android-experience-pass-report.md | 205 ------------------ ...code-reviewer-260429-1554-upstream-sync.md | 0 ...d-experience-pass-implementation-report.md | 131 ----------- ...ch-260510-0055-wrap-loto-as-android-app.md | 0 .../researcher-260426-2324-loto-rules.md | 0 {web/plans => plans}/todo.md | 0 20 files changed, 889 deletions(-) delete mode 100644 android/plans/todo.md rename {android/plans => plans}/260429-1511-loto-upstream-sync/phase-01-confetti-and-celebration.md (100%) rename {android/plans => plans}/260429-1511-loto-upstream-sync/phase-02-section-cho-ring.md (100%) rename {android/plans => plans}/260429-1511-loto-upstream-sync/phase-03-solid-color-palette.md (100%) rename {android/plans => plans}/260429-1511-loto-upstream-sync/phase-04-voice-hint-per-mode.md (100%) rename {android/plans => plans}/260429-1511-loto-upstream-sync/phase-05-extract-auto-tick.md (100%) rename {android/plans => plans}/260429-1511-loto-upstream-sync/phase-06-tests-and-verification.md (100%) rename {android/plans => plans}/260429-1511-loto-upstream-sync/plan.md (100%) rename {android/plans => plans}/260429-1511-loto-upstream-sync/reports/xia-recon-260429-1511.md (100%) delete mode 100644 plans/260814-1317-android-experience-pass/phase-01-tier1-defects.md delete mode 100644 plans/260814-1317-android-experience-pass/phase-02-tier2-defensive.md delete mode 100644 plans/260814-1317-android-experience-pass/phase-03-store-polish.md delete mode 100644 plans/260814-1317-android-experience-pass/plan.md rename {android/plans => plans}/reports/260721-1328-shared-android-signing-key.md (100%) delete mode 100644 plans/reports/brainstorm-android-ux-260814-1004-android-experience-pass-report.md rename {android/plans => plans}/reports/code-reviewer-260429-1554-upstream-sync.md (100%) delete mode 100644 plans/reports/from-cook-to-review-260814-1317-android-experience-pass-implementation-report.md rename {android/plans => plans}/reports/research-260510-0055-wrap-loto-as-android-app.md (100%) rename {web/plans => plans}/reports/researcher-260426-2324-loto-rules.md (100%) rename {web/plans => plans}/todo.md (100%) diff --git a/android/plans/todo.md b/android/plans/todo.md deleted file mode 100644 index f84bd1d..0000000 --- a/android/plans/todo.md +++ /dev/null @@ -1,120 +0,0 @@ -# Lô tô Android — TODO - -## Direction change (2026-05-10) - -Repo migrated from **native Kotlin/Compose port** to a **Capacitor wrapper** -around the upstream `tiennm99/loto` SvelteKit PWA. Native code lives in git -history at commits `9a35686` and `fe52232` — recoverable but no longer the -ship target. - -Reason: maintenance parity. Loto evolves; the wrapper rebuilds and ships -without re-porting features. - -## Done in 2026-05-10 session - -- [x] Migrate to Capacitor wrapper, push to main (commit `dab4f7e`) -- [x] CI green: Node 22 + JDK 21 (commits `95358f2`, `4fde3f1`) — debug APK 4.9 MB -- [x] BlueStacks/emulator compat: ``, WebView debug auto-enabled in debug builds (commit `1ec4863`) -- [x] Optional Play Store auto-publish wired into `release.yml`, gated on `PLAY_SERVICE_ACCOUNT_JSON` (commit `793f009`) - -## P0 — Smoke test on real device - -- [x] CI build-debug workflow assembles APK (validated by run `25610204367`) -- [ ] Sideload the latest artifact onto a real device (API 24, API 31, API 36) and BlueStacks -- [ ] Smoke test cold start: app loads `https://localhost/`, no white flash > 1s -- [ ] Smoke test offline: enable airplane mode, kill app, relaunch — must work -- [ ] Smoke test audio: tap any number → Vietnamese voice plays -- [ ] Verify both voices switch correctly (`hoai-my` ↔ `nam-minh`) - -## P0 — Wrapper-specific concerns - -- [ ] First-launch SW registration: confirm Workbox precaches the bundled audio - (should be idempotent since assets already on-disk, but verify no errors) -- [ ] Back button behavior: Capacitor default closes app — decide whether to - add `App.addListener('backButton', …)` for in-app history navigation -- [ ] Safe-area / status-bar inset: SvelteKit UI may render under the status bar. - Check; add `` plugin if needed -- [ ] Audio focus: WebView `