Repository navigation
v0.2.0 — Full Feature Release
Highlights
Resolved all 34 open issues in a single session using 5 parallel agents across 2 waves.
Bug Fixes
- Secure RNG: Replaced
Math.random()withcrypto.getRandomValues()for fair results (#1) - Column bet indicator: Fixed chip placement on correct column/dozen cells (#2)
- Animation loop: Added rAF cancellation to prevent double animations (#3)
- Canvas clarity: Fixed blurriness on Retina/HiDPI displays (#8)
- Color contrast: Fixed WCAG AA compliance for lose-message text (#18)
New Features
- localStorage persistence: Balance saved across sessions (#10)
- Bankruptcy state: Game over modal when balance hits zero (#11)
- Repeat/Undo bets: Replay last round or undo individual bets (#14)
- Sound effects: Web Audio API with mute toggle (#12)
- Bet history panel: Last 20 spins with hot/cold numbers (#13)
- Statistics panel: Win rate, streaks, profit tracking (#28)
- Win feedback: Cell highlights, balance animation, confetti (#25)
- Keyboard shortcuts: Space/Escape/R/Z/1-4 (#26)
- Table limits: Min $1 / Max $500 per position (#30)
- American roulette: Double-zero mode toggle (#31)
- Dark/light theme: CSS custom properties with toggle (#32)
- Advanced bets: Split, street, corner, six-line placement (#9)
Accessibility
- ARIA labels, keyboard navigation, focus outlines (#15)
prefers-reduced-motionsupport (#16)- Colorblind mode with texture patterns (#17)
DevOps
- Vitest: 76 unit tests, 97%+ coverage (#4)
- ESLint with typescript-eslint (#5)
- Husky + lint-staged pre-commit hooks (#6)
- GitHub Actions CI/CD + Pages deploy (#7)
- pnpm-lock.yaml committed (#33)
Performance
- Off-screen canvas for static wheel elements (#19)
- Diff-based chip indicator updates (#20)
- Ball bounce animation with damped oscillation (#29)
Code Quality
- Named constants replacing magic numbers (#21)
- Dead state fields removed, WheelState encapsulated (#22)
- Typed
getEl<T>()guard replacing non-null assertions (#23) - CSS custom properties for color deduplication (#24)
Other
What's Changed
- fix: resolve RNG, column bet indicator, and rAF loop bugs by @TibetOS in #36
- feat: set up Vitest testing framework by @TibetOS in #39
- feat: add ESLint, husky, CI/CD pipeline, and lockfile by @TibetOS in #37
- refactor: extract constants, typed guards, CSS vars by @TibetOS in #41
- feat: add localStorage, bankruptcy, repeat/undo by @TibetOS in #35
- feat: integrate accessibility, canvas, UX, and remaining features by @TibetOS in #44
New Contributors
Full Changelog: v0.1.0...v0.2.0