Full deployment history for this project.
🎨 Palette: Display saved high score on title screen overlay - Render a retro-styled HIGH SCORE badge on the main title screen overlay when `state.highScore > 0`. - Provides immediate positive feedback and motivation for returning players upon launching the game. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🧪 Add unit tests for POST JSON parsing and error responses in MCP endpoint (#157)
test: add unit tests for cn classname utility function (#156)
🧪 Add unit tests for POST JSON parsing and error responses in MCP endpoint
test: add unit tests for cn classname utility function
🔒 Fix potential CSS/XSS injection in ChartStyle dangerouslySetInnerHTML (#155)
🔒 Fix potential CSS/XSS injection in ChartStyle dangerouslySetInnerHTML Sanitize dynamic chart IDs, configuration keys, and CSS color values before injecting them into the style tag in ChartStyle. This prevents CSS declaration breakout and Cross-Site Scripting (XSS) attacks. - Add sanitizeCssIdentifier to strip characters outside [a-zA-Z0-9_-] - Add sanitizeCssValue to strip unsafe CSS and HTML breakout characters - Add unit tests validating sanitization against malicious payloads
⚡ Bolt: Cache static audio noise buffers for sound effects - Lazily generate and cache static noise AudioBuffer objects for smash, splash, and thunder SFX - Store cached buffers in sfxBuffers linked to AudioContext lifetime - Prevents re-computation of Math.random() and Math.exp() loops on every sound effect trigger
test: add unit tests for createPlatphormTraceContext (#153)
test: add unit tests for createPlatphormTraceContext
🧹 Extract side effect out of reducer in use-toast.ts (#143)
docs: verify particle loop in-place compaction is active (#137)
refactor: decompose updateGame function into modular helpers (#139)
⚡ Bolt: cache audio noise buffers for SFX playback (#140)
🧹 Extract side effect out of the reducer in use-toast.ts (#141)
refactor: replace explicit 'any' in addDrawable and Drawable (#142)
🎨 Palette: Display saved high score on Title Screen overlay (#135)
⚡ Bolt: optimize projectile collision loops with spatial Y-proximity early exits (#136)
🎨 Palette: Add touch gesture prevention to mobile touch controls (#124)
⚡ Bolt: Fix batch coordinate variable references in drawGround (#132)
⚡ Bolt: fix ground batch array reference for zero-allocation rendering (#134)
🎨 Palette: Add touch-none select-none to mobile touch controls (#111)
🎨 Palette: Improve touch control UX and clean up upgrade shop accessibility attributes (#115)
⚡ Bolt: optimize route entity scanning in render loop with early breaks (#116)
⚡ Bolt: lazy cache HUD bar canvas gradient and batch star path rendering (#129)
🎨 Palette: Improve touch controls UX and fix accessibility props (#130)
chore: stack PR #69
chore: stack PR #61
chore: stack PR #58