qa(round1): Pass B games launch sweep — no crashes; stale session recovery verified (B-001 P3)

This or That / How Well / Connection Challenges / Spin the Wheel launch clean (no FATAL).
A stale active wheel session blocked all games; in-app 'End their game' recovery works.
Full two-device lifecycle partial this round. Report-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
null 2026-06-24 20:04:54 -05:00
parent 452aaf787a
commit c54ceb16c3
2 changed files with 16 additions and 10 deletions

View File

@ -20,14 +20,16 @@ Pass A: **complete** (1 systemic P1).
## Pass B — Games lifecycle (start / play / finish + results)
| Game | starts | plays | finishes/results | no crash | Status |
|---|---|---|---|---|---|
| This or That | todo | todo | todo | todo | todo |
| How Well Do You Know Me | todo | todo | todo | todo | todo |
| Desire Sync | todo | todo | todo | todo | todo |
| Connection Challenges | todo | todo | todo | todo | todo |
| Memory Lane | todo | todo | todo | todo | todo |
| Spin the Wheel | todo | todo | todo | todo | todo |
| This or That | pass (launch) | partial | todo | pass | launch ok |
| How Well Do You Know Me | pass (launch) | partial | todo | pass | launch ok |
| Desire Sync | n/a (premium) | todo | todo | todo | needs premium toggle |
| Connection Challenges | pass (launch) | partial | todo | pass | launch ok |
| Memory Lane | n/a (premium) | todo | todo | todo | needs premium toggle |
| Spin the Wheel | pass (launch) | partial | todo | pass | launch ok |
| Date Match | todo | todo | todo | todo | todo |
_Note: stale active session blocked games (B-001); cleared via in-app "End their game" (recovery verified). Full two-device start→finish + results = partial this round._
## Pass C — Visual (light + dark), all ~50 routes
_todo — enumerate from AppRoute.kt; 5554=Dark, 5556=Light._

View File

@ -1,6 +1,6 @@
# Claude QA Report — Full-App QA (living report)
> **RUN-STATE: Round 1 | Pass B (games lifecycle) | NEXT ACTION: drive each game start→finish on both devices, log issues.** (Pass A done: A-001 P1.)
> **RUN-STATE: Round 1 | Pass C (visual light+dark) NEXT | NEXT ACTION: enumerate AppRoute screens, 5554=Dark/5556=Light, screenshot each.** (Pass A done: A-001 P1. Pass B sweep done: B-001 P3; full game lifecycle partial.)
> Playbook: `ClaudeQAPlan.md`. Coverage matrix: `ClaudeQACoverage.md`. Report-only during passes (no fixes until the fix phase).
> Devices: emulator-5554 (QA=`Y05AKO`) + emulator-5556 (Sam=`imDjjO`), paired (coupleId `Xal3Kw3gjSdn0niERYKJ`). Build == HEAD `64f0a7e`.
@ -14,7 +14,7 @@ _(Prior games/notifications QA from 2026-06-24 was completed + verified; superse
| P0 | 0 | 0 |
| P1 | 1 | 0 |
| P2 | 0 | 0 |
| P3 | 0 | 0 |
| P3 | 1 | 0 |
---
@ -29,8 +29,12 @@ _(Prior games/notifications QA from 2026-06-24 was completed + verified; superse
**Note (by-design, not a bug):** `SubscriptionScreen` uses per-user `isPremium()` — correct, it reflects the user's *own* subscription/account state, not a feature gate.
## Pass B — Games lifecycle
_not started_
## Pass B — Games lifecycle (launch/crash sweep done; full two-device lifecycle partial)
| ID | Area | Screen/Route | Severity | Description | Repro | Status |
|---|---|---|---|---|---|---|
| B-001 | Games / sessions | couples/{id}/sessions | **P3** (observe) | A stale `active` wheel session (startedBy QA, `createdAt` missing/undefined) blocked **all** games ("Waiting for Sam"). In-app **"End their game" recovery works** (session→completed, games unblocked). Likely a prior-test artifact, but: sessions appearing without a timestamp + one stale session blocking every game is worth a guard. | Open This or That → "Waiting for Sam… Sam is playing a Wheel game"; tap End their game → unblocked. | Open |
**Launch/crash sweep (QA, free):** This or That ✅ (mood/length select), How Well Do You Know Me ✅ (intro), Connection Challenges ✅, Spin the Wheel ✅ — all render, **no FATAL**. Desire Sync + Memory Lane are premium-gated (covered in Pass A; gameplay needs premium toggle). Date Match: todo. Full two-device start→finish + results not exhaustively re-run this round (the prior round verified `onGameSessionUpdate` start/finish end-to-end).
## Pass C — Visual (light + dark)
_not started_