useHistory and useGameProgress each instantiate a private state per
consumer (no global store), so an addScan from Scanner did NOT appear
in Home's RecentScans nor bump Profile stats until the app was killed
and relaunched.
- RecentScans now reload()s its history from AsyncStorage on
useFocusEffect — covers the post-scan return to Home.
- ProfileScreen reload()s both useGameProgress and useUserProfile on
useFocusEffect so the Bento stats and avatar are fresh after edits.
- useGameProgress wraps loadProgress in useCallback and exposes it,
enabling external triggers (used by the two screens above).
- ProfileScreen also fixes a brittle stat lookup: the BENTO_STATS keys
("scans"/"grapes"/"streak"/"xp") didn't match the GameProgress shape
("totalScans"/"uniqueGrapes.length"/"bestStreak"/"xp"). Now an
explicit statValues map drives the render.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>