Block a user
bug(challenge): silent no-op when all challenges are completed
bug(engine): auto-complete does not block player drag/tap input
Add selectable touch input mode (one-tap auto-move vs. tap-to-select)
bug(achievements): XP granted before persistence confirmed — reward lost on crash
bug(daily-challenge): stale date cache when app runs past midnight
bug(server): leaderboard opt-in check is not atomic — TOCTOU race condition
bug(server): missing input validation on replay header fields
bug(android): safe area inset arithmetic has no bounds check — UI can shift off-screen
perf(analytics): per-event HTTP flush causes excessive network requests — add batching
Add selectable touch input mode (one-tap auto-move vs. tap-to-select)
fix(android): replace forbidden Unicode U+2500 (─) in win_summary_plugin.rs
fix(android): replace forbidden Unicode U+258C (▌) cursor glyph in splash_plugin.rs
bug(assets): assert!() on bundled font parse in svg_loader.rs — startup crash risk
bug(theme): broken theme manifests are silently skipped — no log warning
bug(settings): default theme ID 'classic' contradicts migration that renames it to 'dark'
refactor(engine): deduplicate TABLEAU_FAN_FRAC constant shared between layout.rs and card_plugin.rs
bug(wasm): replay move failures are silently ignored in solitaire_wasm