•Pausing no longer eats your game time — the clock stops with you
•Fixed a rendering error that spammed the console every match
•Fixed highscores being saved to the wrong game mode when switching modes
•Real share preview images: links now show a proper card on X, Discord and iMessage
•Removed 16 console errors from missing announcer sound files
•Cleaned up the project surface (README, leftover template files)
v2.0.32026-06-08
Launch Hardening — Security & Scale
•Locked down internal debug endpoints behind a secret token (raw data dump and leaderboard cleanup are no longer publicly reachable)
•Nickname uniqueness now uses an O(1) index instead of scanning every leaderboard entry — instant availability checks and far lower database cost at scale
•Hardened score rate limiting so a transient error can never block an IP indefinitely
•Stopped exposing your private recovery code through sharing — the profile page no longer prints it and the Share button now links to the game instead of your profile URL
•Removed noisy per-request debug logging from the leaderboard API
•Minor multiplayer cleanup: correct timer teardown when leaving a match
v2.0.22026-04-11
Multiplayer Stability & Performance
•Fixed game crash during intense matches with 30+ bubbles
•Capped physics iterations per frame to prevent death spiral under load
•Dynamic state update frequency — reduces bandwidth when many bubbles active
•Limited synced bubble snapshots to 40 max to prevent network overload
•Fixed ball teleporting caused by collision push-apart cap
•Simplified opponent view rendering for reliable bubble positions