Skip to content

Bug fixes, performance, game balance, accessibility, server hardening, and test coverage improvements#10

Merged
AndrewAltimit merged 3 commits into
mainfrom
improvements/comprehensive-plan
Feb 21, 2026
Merged

Bug fixes, performance, game balance, accessibility, server hardening, and test coverage improvements#10
AndrewAltimit merged 3 commits into
mainfrom
improvements/comprehensive-plan

Conversation

@AndrewAltimit
Copy link
Copy Markdown
Owner

Summary

  • Phase 1 (Bug Fixes): Remove unwrap() in room manager, fix broadcast error logging, fix sync/async WS mismatch, cap minimap walls at 500, add WS reconnect timeout + queue preservation, scene clear preserves capacity
  • Phase 2 (Performance): Frustum culling for off-screen objects, pre-allocated render buffers, monotonic scene IDs, network queue preservation on reconnect
  • Phase 3 (Game Balance): LaserTag post-stun invulnerability (1s), smoke zone LOS blocking for lasers, Tron bot 2-step lookahead AI, 6 grinding mechanic tests
  • Phase 4 (Accessibility): Skip link, 44px min touch targets, focus trap for modals, button debouncing (1s), tablet breakpoint at 900px
  • Phase 5 (Server Robustness): First-message rejection logging, rate-limit drop counter, relay max_clients_per_room (16), poller 24h pruning + sliding window stats, defensive JSON navigation in webhooks
  • Phase 6 (Test Coverage): SSE integration tests, rate limiting integration test, event claim test, relay client limit test, Tron property-based tests

594 tests passing (up from 484), 19 files changed, +1028/-90 lines across 8 workspace crates.

Test plan

  • cargo fmt --all -- --check passes
  • cargo clippy --workspace --all-targets -- -D warnings passes
  • cargo test --workspace -- 594 tests, 0 failures
  • Playwright browser tests (CI)
  • Manual smoke test of LaserTag invulnerability + smoke zone blocking
  • Manual smoke test of Tron bot AI improvements

Generated with Claude Code

…er, tests

Phase 1 - Bug fixes: remove unwrap() in room manager, fix broadcast error
logging, fix sync/async mismatch in WS handler, cap minimap walls, add WS
reconnect timeout, scene clear preserves capacity.

Phase 2 - Performance: frustum culling, pre-allocated render buffers,
monotonic scene IDs, network queue preservation on reconnect.

Phase 3 - Game balance: LaserTag post-stun invulnerability (1s), smoke zone
LOS blocking, Tron bot 2-step lookahead AI, grinding mechanic tests.

Phase 4 - Accessibility: skip link, 44px touch targets, focus trap for
modals, button debouncing, tablet breakpoint at 900px.

Phase 5 - Server robustness: first-message rejection logging, rate-limit
drop counter, relay max_clients_per_room (16), poller 24h pruning + sliding
window stats, defensive JSON navigation in webhooks.

Phase 6 - Test coverage: SSE integration tests, rate limiting integration
test, event claim test, relay client limit test, Tron proptests.

594 tests passing (up from 484), 19 files changed, +1028/-90 lines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@AndrewAltimit AndrewAltimit changed the title Comprehensive 6-phase improvement plan (#10) Bug fixes, performance, game balance, accessibility, server hardening, and test coverage improvements Feb 21, 2026
AI Agent Bot and others added 2 commits February 21, 2026 07:46
Split queue.len() into a separate binding to avoid simultaneous
mutable (drain) and immutable (len) borrows of the same VecDeque.
The native target accepted this but the WASM target's borrow checker
rejected it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@AndrewAltimit AndrewAltimit merged commit 97641aa into main Feb 21, 2026
9 checks passed
@AndrewAltimit AndrewAltimit deleted the improvements/comprehensive-plan branch February 21, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant