Brush Quest

Branch: main
298 commits
Updated: 2026-05-12 18:30
Current #1 Priority
Await TestFlight Beta Review approval, then re-invite Antoine/Matt/Jan to TestFlight.
Phase: Dual-platform v22 in review — Android v22 in Play Store production review (worldwide) + iOS v22 awaiting TestFlight Beta Review approval; v23 audio hotfix on Android internal track
Workstreams
PRODUCT
APP
v1.0.0+23 audio StateError hotfix shipped to Android internal track (v22 stays in Play Store production review). TestFlight Beta Review submitted.
Last commit: `78b9ec2` — chore: bump to 1.0.0+23 for audio StateError fix
What happened: Hotfix day. Patched `audio_service.dart:630` AudioPlayer StateError crash (changed `Exception` → `Object` to catch broader error types), bumped 1.0.0+22 → +23, rebuilt AAB and deployed to Android internal track only (v22 left undisturbed in Play Store production review). Cleaned ASC records; diagnosed TestFlight build 22 was blocked by a missing Beta Review approval; started Beta Review submission for Antoine/Matt/Jan.
Last: v1.0.0+23 audio StateError hotfix to Android internal track + TestFlight Beta Review submitted (2026-05-12)
Next up: Await TestFlight Beta Review approval, then re-invite Antoine/Matt/Jan to TestFlight; monitor Play Store production review
LANDING PAGE
Live at brushquest.app — email capture LIVE via Buttondown
Last commit: `9354055` — Desktop hero: QR code to open on phone, email form secondary
What happened:
Next up: Add Play Store badge (app approved), monitor first signups
PRICING
APPROVED — "Space Ranger Pass" $4.99/mo or $39.99/yr
BLOCKED: Phase 1 validation needed before implementation (100 users, D7 retention > 35% per D-003)
Last commit:
What happened:
Next up: Implement paywall + RevenueCat after Phase 1 metrics hit
CEO: None — model approved
MERCH
DONE
Last commit:
What happened:
Next up: Order on Printful (Oliver YS/YM black, Theo 4T/5T black)
BUSINESS
LLC
Complete — LLC approved, EIN obtained, bank open, Google Play org account active
Last commit:
What happened: Play Store org account registered, app deployed to internal testing
Next up: Monitor internal testing, prepare for production release
ACCOUNTING
In progress — QuickBooks + Mercury bank open, need to connect and log expenses
Last commit:
What happened:
Next up: Connect Mercury → QuickBooks, log all existing expenses
OPS
DEV CYCLE
v23 audio StateError hotfix shipped to Android internal track. v22 still in Play Store production review + iOS TestFlight Beta Review pending.
Last commit: `78b9ec2` — chore: bump to 1.0.0+23 for audio StateError fix
What happened: Side-channel hotfix: `audio_service.dart:630` AudioPlayer StateError caught via broader `Object` instead of `Exception`. Bump 1.0.0+22 → +23, AAB rebuilt and pushed to Android internal track only (v22 leaves Play Store production review undisturbed). TestFlight invites for Antoine/Matt/Jan diagnosed — build 22 was blocked on missing Beta Review approval; submission started.
Next up: Await TestFlight Beta Review approval → re-invite Antoine/Matt/Jan; monitor Play Store production review; iterate on Phase 1 metrics
STRATEGY
Dual-platform v22 shipped — first simultaneous Android+iOS release. Path forward = tester feedback → ASC review submission.
Last commit: `2ac386c` — launch/branding docs + marketing screenshots/video + iOS fastlane
What happened: Dual-platform v22 cycle executed end-to-end. Android v22 in Play Store production review (worldwide). iOS v22 on TestFlight with 3 external testers (Jan, Antoine, Matt) via `fastlane beta` + ASC API key. Jim emailed Antoine + Matt for feedback before final ASC submit. Launch/branding docs + marketing screenshots/video added.
Next up: Collect tester feedback, click Add for Review in ASC, monitor Play Store production approval
MEMORY SYSTEM
Active — 4-tier architecture built, knowledge graph operational
Last commit:
What happened:
Next up: Refine write gate criteria from real usage, improve cross-project entity linking, session handoff reliability
Dev Cycle
v22
Last Cycle
2
Platforms Shipped
3
iOS Testers
788
Tests
85.7 MB
APK
Date: 2026-05-12
Mode: side-channel hotfix (audio StateError caught broader; internal track + TestFlight Beta Review submitted)
Version: v1.0.0+23 (Android internal track; v22 still in Play Store production review + iOS TestFlight Beta Review pending)
Commit: 78b9ec2
Trend: C13: 12 commits, v1.0.0+10 C14: 13 T1/T2 fixes, v1.0.0+17 C16 v20: 4 Oliver regression fixes, 784 tests 2026-04-28: Public Beta submitted, iOS port plan locked 2026-05-11 v22: dual-platform release — Android production review + iOS TestFlight (3 testers), 788 tests 2026-05-12 v23: audio StateError hotfix → Android internal track + TestFlight Beta Review submitted
Benchmark insight (Chomper Chums): Chomper Chums uses animated character reactions as immediate feedback during brushing — the character visibly reacts to brushing speed with facial expressions (happy/sad/excited). In Brush Quest, mons
Deferred Backlog (2 items)
#2: Companion voice retirement — Jim said no unless strongly needed. Arc suppression (Cycle 3) is working.
#3: `audioplayers._completePrepared` crash — pre-v20 builds only; can deprioritize if install base rolls forward to v20.
Next: Post-v23 hotfix — await TestFlight Beta Review approval, then re-invite Antoine/Matt/Jan; monitor Play Store production review of v22; iterate on early Phase 1 metrics
Active Decisions
D-009: Dual-platform v22 release — first simultaneous Android+iOS ship (2026-05-11) ACTIVE
Android v22 submitted to Play Store production review (worldwide availability set via Play Console UI — API has no setter). iOS v22 uploaded to TestFlight 07:48 via `fastlane beta` + ASC API key 4YY7329MH5; 3 external testers invited (Jan Deloach, Antoine Markarian, Matt Ganser). Family-and-Friends 409 STATE_ERROR workaround: attach via `builds` then POST `betaTesterInvitations`. Cycle delivered parent-gated camera onboarding (4th page) + home camera nudge + 20s→15s default brush phase + new `voice_camera_prompt.mp3` asset; 788 tests pass.
D-008: iOS port plan locked — 4 phases, Kids 6-8 + Education, manual release, v1 iPhone-only (2026-04-28) ACTIVE
`docs/ios-port/PLAN.md` locks the iOS port at 50+ tasks across 4 phases with 11 compliance gaps mapped (Sign in with Apple, parental gates, privacy manifests, COPPA). Targets Kids 6-8 + Education category, manual release, v1 iPhone-only. Name conflict discovered with existing "Brush Quest" iOS app — needs differentiation.
D-007: Decouple Android Phase 1 from iOS port (2026-04-28) ACTIVE
GTM restructured into `docs/launch/CROSS-PLATFORM-GTM.md` + `docs/android-launch/PLAN.md`. Android Public Beta ships independent of iOS readiness; iOS follows after Apple Business verification + name conflict resolution.
D-006: Alpha closed test track + public tester Group (2026-04-22) ACTIVE
Configured Alpha closed test track on Play Console in 4 countries (US/CA/UK/AU). Created public Google Group brush-quest-testers@googlegroups.com with open self-enrollment for tester onboarding. Firebase auth resolved for v20 Crashlytics access (Chrome + jmchabas@gmail.com).
D-005: GTM-v4 portfolio frozen — 3 Tier-1 pillars, 400-600 WAK target (2026-04-21) ACTIVE
Trunk loop closed Phase 1. Portfolio frozen at 3 Tier-1 pillars; target reframed to 400-600 Weekly Active Kids. 3 Substack pitches drafted (PRD-007). instagram-executor-agent stub passed smoke test. Phase 2 = execution on frozen portfolio.
D-001: Ship to Play Store before v7 polish (2026-03-14) DONE — v1.0.0+10 approved by Google Play, live for internal testers (2026-04-12)
App passed Google Play review and is now live with completed release status. Cycle 13 addressed Oliver's 22-day playtest feedback before deployment.
D-002: "Space Ranger Pass" — $4.99/mo or $39.99/yr (2026-03-15, APPROVED) APPROVED — implement after Phase 1 validation (100 users, D7 retention > 35%)
Deep research done (see `research/`). Parent-feature subscription rejected — camera "verification" is dishonest. Content-led model approved by Jim.
D-003: Feature freeze until 100 users (2026-03-14) ACTIVE
Zero new features until 100 real (non-Jim) users. Only allowed: bug fixes blocking brush completion, Play Store requirements, analytics instrumentation.
D-004: Cross-platform expansion — iOS scaffold with Sign in with Apple (2026-04-17) ACTIVE
Expand beyond Android-only. iOS platform scaffolded with Sign in with Apple auth to satisfy App Store requirements when Google Sign-In is offered. Cross-platform strategy spec committed.
Blockers
BlockerOwnerSinceImpactStatus
D-U-N-S number pending Jim 2026-03-20 Blocks Google Play org account DONE — Play Store org account active, app deployed
Google Play developer account (personal) suspended Jim 2026-03-14 N/A — going org account route ABANDONED — registering org account under AnemosGP LLC instead
No Firebase Analytics events APP 2026-03-14 Flying blind on retention DONE — COPPA-compliant, 10 events instrumented
No privacy policy page LANDING 2026-03-14 Blocks Play Store DONE — COPPA 2025 + CCPA compliant, 10 sections, live
No email capture on landing page LANDING 2026-03-14 Losing potential early adopters DONE — Buttondown, platform-aware forms, QR code for desktop
Play Store listing missing dashboard screenshot APP 2026-04-22 Blocks listing upload for Alpha track DONE — 8 captioned screenshots + 26s promo v5 submitted in Public Beta listing
Apple Business org verification Jim 2026-04-28 Blocks iOS App Store Connect setup OPEN — case #102880286319 escalated, May 4 ETA
iOS name conflict — existing "Brush Quest" iOS app Jim 2026-04-28 Blocks iOS App Store listing OPEN — needs differentiation (tagline, suffix, or rename)
TestFlight build 22 missing Beta Review approval Jim 2026-05-12 Blocks Antoine/Matt/Jan from receiving TestFlight invites OPEN — Beta Review submission started 2026-05-12
Recent Activity
78b9ec2 chore: bump to 1.0.0+23 for audio StateError fix (internal/TestFlight only)
460e1db parent-gated camera onboarding + home nudge (1.0.0+22)
2ac386c launch/branding docs + marketing screenshots/video + iOS fastlane
e0f6f7d Cycle 16 v20: 4 regression fixes from Oliver v19 retest
86d938d docs(gtm-v4): trunk status + 3 Substack pitches drafted (PRD-007)
7602710 loop(trunk): termination gate — 2 PRDs + 6 meta-PRDs
8d391e1 loop(trunk): synth-final — portfolio frozen (3 Tier-1 pillars, target reframed 400-600 WAK)
8c23feb loop(trunk): 3 evaluator outputs
294c7e5 loop(trunk): synth-1 portfolio draft + live writer research for PRD-007
3018a76 loop(trunk): question + context brief + 5 lens research outputs
2510b1d docs(gtm-v4): Phase 1 closed — validation shipped; follow-on plans listed
4bfeb50 feat(gtm-v4): instagram-executor-agent stub + successful smoke test
829d836 docs: Sign in with Apple design spec
61949fa feat: iOS platform scaffold + Sign in with Apple + cross-platform strategy
8e0d3a0 chore: bump to v1.0.0+17
0c2a721 Cycle 14: 13 T1/T2 auto-fixes — audio, lifecycle, parent trust, consistency
f6f1987 chore: flip fastlane release_status draft → completed (app approved)
cb0102a fix: CI — upgrade Flutter 3.32.1 → 3.41.4 + format all files
1f3a643 chore: bump version to 1.0.0+10 and deploy Cycle 13 to Play Store
79e35da feat: legendary first-only + audio crossfade + K.O. voice variety
f6c3b01 fix: TAP TO FIGHT icon + onboarding P3 space theme
d130d00 feat: shop snackbars icon-only + evolution arrows (P1)
ed8281c feat: victory — route exits through _goHome, auto-open chest, bigger stats
9df66ed fix: shared purchase mutex across hero+weapon services
94d572d feat: add delete cloud data button — COPPA compliance
494f0d4 feat: home — stat animations on return + greeting voice stops on dismiss
36d0d1c feat: simplify Stars tab — visual summary, remove math
836831c feat: show monster silhouettes for uncaught trophies — Pokemon-style mystery
72c28b0 feat: add voice to locked trophy taps — P7 consistency with shop
2c37462 feat: home screen — badge icon for rank + icon-first greeting popup (P1, P11)
da8ba84 Add memory management system victory + design docs
7399d97 Update landing page download links to v1.1.0
076e28a Fix tests: update camera flow test for picker removal, add unlock voice assets
82e33cb Voice: 10 world mission briefings + 10 unlock encouragements (classic + buddy)
5c8702e World intro: 10s auto-advance timer with countdown ring
d628377 Victory: show next unlock name + icon, full card reveal, album highlights card
eef5b7c Text variety + performance: encouragement pools, cap popups, reduce particles, fix painters
4d76847 Remove pre-brush picker — hero tap opens shop, BRUSH button goes straight to battle
68ac272 Privacy policy: move phone to contact section, simplify legalese
f579c22 Privacy policy overhaul: COPPA 2025, CCPA, store-ready
d0af93f Update status board: Cycle 6 shipped, 99MB APK, 651 tests
e9cb7d5 Cycle 6: 30 findings — onboarding, victory, home, voice arcs, new tests (99MB APK, 651 tests)
def0ded Splash logo, weapon UI, voice latency, auto-sync, mentor voice pack (George)
7e22ecf Update status board: Cycle 5 shipped, 98MB APK, 593 tests
35ccca1 Cycle 5: voice preload, card duplicates, visual progress, audio compression (98MB APK)
Snapshot generated 2026-05-12 18:30 — View Build Log