Block a user
[server] .tmp avatar file leaks on disk if fs::rename fails
[server] ReplayHeader.seed is i64 but client Replay.seed is u64 — high-bit seeds rejected
expect() in Startup system and TokioRuntimeResource::default() violate no-panic rule
WinSummaryOverlay bypasses spawn_modal / ModalScrim — invisible to all modal guards
AnimationChain skips one frame between each step due to deferred command flush
drop_overlay_rect panics via HashMap index operator on unknown PileType
play_by_seed fires NewGameRequestEvent { confirmed: false } — forces unwanted confirm dialog
SettleAnim and FoundationFlourish both write Transform.scale on king card — undefined visual result
evaluate_on_win uses .last() — drops all but the final GameWonEvent when multiple fire in one frame
Multiple modals can stack — sync_setup, achievements, and leaderboard guard by plugin marker not ModalScrim
Time attack countdown continues running while Win Summary overlay is displayed
[Android] U+25BE Geometric Shapes glyph in HUD labels — renders as missing-glyph rectangle
Theme A→B→A switch leaves stale card-image handles — cards display wrong theme
SyncAuthError and SyncBusyOverlay on same entity — auth error text is always invisible
Stats double-counted on game forfeit — record_abandoned() fires twice
check_win only counts 13 cards per foundation — corrupt save permanently locks game
[server] avg_time_seconds merge produces wrong value when losing side has more wins
Undo penalty deducted from pre-move score instead of post-move score
take_from_foundation defaults to true but is documented as "Off by default"
[server] Replay leaderboard update is dead code — case mismatch "classic" vs "Classic"