Closer/ClaudeReport.md

2.3 KiB

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.) 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.

(Prior games/notifications QA from 2026-06-24 was completed + verified; superseded by this full-app effort.)


Severity summary (Round 1)

Severity Open Fixed
P0 0 0
P1 1 0
P2 0 0
P3 0 0

Pass A — Couple-shared premium pass complete

Target: if either partner is premium, all premium features unlock for both. Result: only chat is couple-shared. Every other feature gate is per-user → a free user whose partner paid stays locked.

ID Area Screen/Route Severity Description Repro Status
A-001 Premium gating PlayHubViewModel, DesireSyncScreen, MemoryLaneScreen, ConnectionChallengesScreen, QuestionPackLibraryViewModel, wheel CategoryPicker/SpinWheel/WheelHistory(VMs) P1 These gate on per-user EntitlementChecker.isPremium() instead of couple-shared CouplePremiumChecker.coupleHasPremium(partnerId). A free partner of a premium user stays locked — violates couple-shared requirement. Set Sam premium, QA free → QA Play hub still shows 🔒 Premium on Desire Sync + Memory Lane (confirmed live). Code: only ConversationViewModel uses CouplePremiumChecker. Open
A-002 Premium (control) ConversationViewModel (chat) Working correctly (couple-shared) — kept as the reference pattern for the A-001 fix. Verified prior round: partner-premium unlocks chat media/reactions for the free partner. OK

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 C — Visual (light + dark)

not started

Pass D — Security & Encryption

not started

Pass E — Notifications

not started