qa(round1): A-001 fixed+verified (couple-shared premium); A-003 P3 logged (static badge)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
e8892a9669
commit
58208fd443
|
|
@ -15,7 +15,7 @@
|
|||
| Date Match / Plan Date | pass | fail→A-001 | pass | fail→A-001 |
|
||||
| Subscription screen (own status) | n/a | n/a | n/a | pass (by-design per-user) |
|
||||
|
||||
Pass A: **complete** (1 systemic P1).
|
||||
Pass A: **complete** (1 systemic P1). **A-001 FIXED** (e8892a9) — couple-shared everywhere; re-verify each feature in re-QA. New cosmetic A-003 (P3, badge). Subscription screen by-design.
|
||||
|
||||
## Pass B — Games lifecycle (start / play / finish + results)
|
||||
| Game | starts | plays | finishes/results | no crash | Status |
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Claude QA Report — Full-App QA (living report)
|
||||
|
||||
> **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.)
|
||||
> **RUN-STATE: Round 1 | Pass C (visual light+dark) NEXT | NEXT ACTION: set 5554=Dark/5556=Light, screenshot each AppRoute screen.** (Pass A done; A-001 P1 **FIXED** e8892a9. Pass B sweep done: B-001 P3. New: A-003 P3 badge cosmetic.)
|
||||
> 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`.
|
||||
|
||||
|
|
@ -12,9 +12,9 @@ _(Prior games/notifications QA from 2026-06-24 was completed + verified; superse
|
|||
| Severity | Open | Fixed |
|
||||
|---|---|---|
|
||||
| P0 | 0 | 0 |
|
||||
| P1 | 1 | 0 |
|
||||
| P1 | 0 | 1 |
|
||||
| P2 | 0 | 0 |
|
||||
| P3 | 1 | 0 |
|
||||
| P3 | 2 | 0 |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -24,7 +24,8 @@ _(Prior games/notifications QA from 2026-06-24 was completed + verified; superse
|
|||
|
||||
| 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-001 | Premium gating | PlayHubViewModel, DesireSyncScreen, MemoryLaneScreen, ConnectionChallengesScreen, QuestionPackLibraryViewModel, wheel CategoryPicker/SpinWheel/WheelHistory(VMs) | **P1** | These gated on per-user `EntitlementChecker.isPremium()` instead of couple-shared. A free partner of a premium user stayed locked. | Set Sam premium, QA free → QA Play hub still showed 🔒 on Desire Sync + Memory Lane. | **FIXED** `e8892a9` — routed all gates through `CouplePremiumChecker` (now exposes isPremium/hasPremium resolving partner internally). Verified: Sam premium → QA enters Desire Sync; both free → QA → paywall. |
|
||||
| A-003 | Premium UI (cosmetic) | PlayHubScreen (Desire Sync + Memory Lane cards) | **P3** | The "🔒 Premium" badge on these two cards is static (rendered in separate card composables that don't receive `hasPremium`), so it still shows a lock even when the couple has premium access. Feature IS accessible (gate fixed in A-001) — only the badge is misleading. | With couple premium, QA's Play hub still shows 🔒 Premium on Desire Sync/Memory Lane though tapping enters the game. | Open (deferred — thread hasPremium into the card composables) |
|
||||
| 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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue