Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0
Why this matters
stores.test.ts explicitly tests useUserStore/useWalletStore/useUIStore/useThemeStore but never imports useGamificationStore, leaving its real logic untested: addXP -> checkLevelUp transitions (useGamificationStore.ts:210-254), calculateLevel threshold boundaries (125-132), getNextLevelInfo math (346-376), and unlockAchievement/updateAchievementProgress clamping (264-298).
Acceptance criteria
Files to touch
frontend/src/app/stores/useGamificationStore.ts
frontend/src/app/stores/stores.test.ts
Out of scope
- Gamification persisting transient state (already filed)
Why this matters
stores.test.ts explicitly tests useUserStore/useWalletStore/useUIStore/useThemeStore but never imports useGamificationStore, leaving its real logic untested: addXP -> checkLevelUp transitions (useGamificationStore.ts:210-254), calculateLevel threshold boundaries (125-132), getNextLevelInfo math (346-376), and unlockAchievement/updateAchievementProgress clamping (264-298).
Acceptance criteria
Files to touch
frontend/src/app/stores/useGamificationStore.tsfrontend/src/app/stores/stores.test.tsOut of scope