Release Date: Unreleased
Version Code: 38
🌐 Online Multiplayer - Play with friends remotely
🌙 New Moonlight Theme - Complete UI redesign
🐛 Bug Fixes - Major gameplay fixes
📱 Android 15 Support - 16KB page size compatibility
Create Room - Host games with unique 4-digit room codes
Join Room - Enter a code to join friends' games
Real-time Sync - All players stay synchronized via Firebase
Waiting Room - See who has joined before starting
Host Controls - Only the host can configure roles and start the game
View version history directly in the app
Automatically appears after updates
Tap the version badge anytime to view past changes
Instant feedback when offline (no more waiting for timeouts)
Clear "No Internet" message before attempting to connect
Deep night sky gradient backgrounds (#030810 → #122240)
Moonlit blue primary color (#4A90D9)
Silver moonlight accents (#B8C5D9)
Crescent moon icon replaces the skull logo
Night sky background with twinkling star animations
Elegant diamond divider in tagline
Refined button text: "BEGIN THE NIGHT"
Win Condition - Now correctly counts all villager team roles (Doctor, Officer, Cupid, Little Child) when determining winner
Marriage Death Cascade - Fixed spouse not being eliminated correctly when partner dies
Vote Elimination Race Condition - Atomic state updates prevent data corruption during elimination
Timer Cleanup - Fixed memory leaks from intervals not being cleared
Role Fetch Interval - Fixed interval not clearing in online roles screen
Null Role Lookups - Added safety checks for undefined role assignments
Audio Queue - Fixed items being silently dropped when queue was full
Queue now properly logs warnings and resolves dropped items
Feedback Prompt - No longer reappears after user responds
Preferences Persist - User settings preserved through game resets
User-friendly error messages throughout
Network timeout messages are clear and actionable
Better error recovery in all screens
Rate Limiting - 30 actions per minute to prevent abuse
Input Sanitization - Player names are sanitized to prevent injection
Room Auto-Expiry - Rooms automatically expire after 1 hour
Firebase Config - Supports environment variables for secure deployment
Atomic Updates - State changes are processed atomically
16KB Memory Page Size - Proper alignment for Android 15 devices
NDK 27 - Updated to version 27.0.12077973 for compatibility
Native Library Packaging - Correct packaging with useLegacyPackaging = false
LobbyScreen.js - Added internet connectivity check
VotesScreen.js - Fixed race condition with atomic updates
OnlineGameScreen.js - Fixed timer cleanup
OnlineRolesScreen.js - Fixed interval cleanup with isMounted flag
audio.js - Fixed queue overflow handling
storage.js - Added version tracking, preserved user preferences
HomeScreen.js - Added update log modal and version detection
colors.js - Complete theme overhaul
changelog.js - New file for version history
UpdateLogModal.js - New component for displaying updates
app.config.js - Added 16KB page size support plugins
eas.json - Added NDK 27 configuration
LastSeenVersion - Tracks last viewed update log version
No new dependencies added.
Users upgrading from v3.0 will see the update log automatically on first launch
All game data is reset on launch (as before)
User preferences (feedback responses) are now preserved