docs(future): file P0 onboarding slide-3 crash (blocks first-run users from reaching login)
This commit is contained in:
parent
9e8084a02e
commit
902fef11d1
14
Future.md
14
Future.md
|
|
@ -6,6 +6,20 @@ Non-blocking ideas: things that work today but could be better, plus feature ide
|
|||
## UI
|
||||
Themes
|
||||
|
||||
- **🚨 P0 — Onboarding CRASHES on slide 3 (and on Skip) — blocks every first-run user from reaching login.** Discovered 2026-06-28 on a fresh `emulator-5558` install (Pixel 7 Pro, API 34, KVM hw accel). Slides 1 + 2 render fine; tapping **Next** on slide 2 → slide 3 → `FATAL EXCEPTION: main` → app dies back to the launcher. Tapping **Skip** (which jumps to a later slide) also crashes. Existing QA emulators (`5554`/`5556`) never hit this because they're past onboarding with logged-in users — **this regression is invisible to recurring QA and hits every new install.**
|
||||
|
||||
**Stack:** `java.lang.IllegalArgumentException: Only VectorDrawables and rasterized asset types are supported ex. PNG, JPG, WEBP` at `androidx.compose.ui.res.PainterResources_androidKt.loadVectorResource` from `app.closer.ui.onboarding.OnboardingScreenKt.CtaSlide(OnboardingScreen.kt:246)`.
|
||||
|
||||
**Root cause:** line 246 calls `painterResource(R.drawable.ic_launcher_background)`. The XML is a valid `<vector>` (108dp square with 4 gradient paths), but `painterResource` rejects it at runtime on API 34 — likely an aapt/adaptive-icon bundling quirk where the launcher-background resource resolves to something other than `VectorDrawable`/`BitmapDrawable`.
|
||||
|
||||
**Fix options** (any one closes it): (a) swap to `Image(painter = ImageVector.vectorResource(...))`, (b) drop the decorative launcher icon entirely and use a solid `Color`/`Brush` matching the brand, (c) rasterize the background to a PNG and `painterResource` that, (d) use `LocalContext.current.getDrawable(R.drawable.ic_launcher_background)` wrapped in `runCatching`.
|
||||
|
||||
**Re-introduction risk / regression-prevention:** add an onboarding route to `qa/entrypoint_smoke.sh` (the cold-start/launch-integrity smoke) so the `am kill` → notification path covers the entire onboarding flow, not just the post-login launch. Also consider a `theme-scan.sh` Tier 2 check: flag `painterResource(R.drawable.ic_launcher_*)` outside `BrandIllustration` / `OnboardingScreen` review.
|
||||
|
||||
**Verification before close:** fresh AVD → install → tap Next through all onboarding slides + tap Skip from slide 1 → assert no FATAL, login screen reachable. Repeat on `5554` and `5556` (dark + light).
|
||||
|
||||
**Note (project convention):** `Future.md`'s header says actual bugs belong in `ClaudeReport.md`. Filing here per explicit user request 2026-06-28 — recommend also adding a `O-ONBOARD-001` row to `ClaudeReport.md` with the same repro + fix options so it shows up in the recurring QA pass sweep. (The current working-tree `ClaudeReport.md` has uncommitted R17 edits — leaving it alone until the user commits/stashes.)
|
||||
|
||||
- **"Add to Bucket List" has mixed dark/light mode UI.** The input field, button, and surrounding elements use
|
||||
light-mode colors even when the app is in dark mode. Needs theme alignment.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue