Full deployment history for this project.
chore: merge open PRs into main
chore: merge open PRs into main
chore: merge open PRs into main
🎨 Palette: Enhance accessibility in HostMatchControls - Explicitly link select and input controls to labels using id/htmlFor - Add aria-live="polite" to match update status message container
⚡ Bolt: early return and zero-allocation in BloodEffects - Track active particle count in `BloodEffects` with `activeCountRef` to enable immediate early returns in `useFrame` when no blood drops are active, avoiding per-frame array loops and matrix updates during idle periods. - Replace array spreading `drop.position.set(...detail.position)` with direct scalar indexing `drop.position.set(pos[0], pos[1], pos[2])` to prevent temporary array allocations on impact events. - Clean up duplicate declarations in `components/game/hud/scoreboard.tsx`.
🎨 Palette: Enhance PWA install prompt accessibility and clarity - Wrap install prompt in an accessible `<aside role="region" aria-label="App installation prompt">` landmark. - Add descriptive title and subtitle for visual hierarchy and screen reader context. - Add comprehensive unit tests verifying landmark attributes, text rendering, and user action handlers.
🎨 Palette: Leaderboard search clear button and accessibility
⚡ Bolt: Precompute remote player horizontal speed in useRemotePlayerFrame Precompute `remoteSpeed` once per frame update in `useRemotePlayerFrame` and pass it to `processRemoteFootsteps` to eliminate redundant `Math.hypot` calculations per remote player per frame update.
🎨 Palette: Add accessible aria-label and aria-hidden to BackupShareSettings export button
accessibility(settings): associate combatant skin label and add focus ring offsets
⚡ Bolt: optimize remote player and bot hot frame velocity calculations
⚡ Bolt: optimize remote player horizontal speed and footstep calculations
🛡️ Sentinel: Enforce path parameter validation on map API routes - Add `isValidMapParamId` in `lib/utils/id-validation.ts` to validate map parameter inputs (3-64 chars, alphanumeric/hyphens/underscores). - Validate `[id]` path parameters on `GET /api/v1/maps/[id]` and `GET /api/v1/maps/[id]/stream` to reject malformed parameters with status 400 and error code `invalid_id`. - Add unit tests in `__tests__/app/api/v1/maps/id.test.ts`. - Clean up duplicate imports in match and server API routes. - Fix syntax error in `components/game/hud/scoreboard.tsx`.
fix(a11y): add focus visible rings to preflight match controls Add focus visible ring styles to all preflight configuration checkboxes and range sliders in MatchQuickSettings so keyboard users have clear visual focus feedback when navigating setup options.
chore: auto-close PR #353 via merge path
chore: auto-close PR #352 via merge path
chore: auto-close PR #353 via merge path
chore: auto-close PR #352 via merge path
chore: auto-close PR #351 via merge path
chore: auto-close PR #351 via merge path
chore: stack PR #353
chore: stack PR #351
Merge pull request #280 from mbarbine/perf/pk3-scenic-props-concurrent-loading-7021196601852794209 ⚡ Optimize pk3 scenic props texture loading with Promise.all
Merge pull request #280 from mbarbine/perf/pk3-scenic-props-concurrent-loading-7021196601852794209 ⚡ Optimize pk3 scenic props texture loading with Promise.all
Merge pull request #244 from mbarbine/jules-10307082121189889322-8f19d957 🎨 Palette: Improve MatchQuickSettings accessibility & key navigation
Merge pull request #244 from mbarbine/jules-10307082121189889322-8f19d957 🎨 Palette: Improve MatchQuickSettings accessibility & key navigation
Merge pull request #243 from mbarbine/jules-13441717843555108133-80c45097 ⚡ Bolt: Optimize snow particle simulation loop-invariant calculations
Merge pull request #243 from mbarbine/jules-13441717843555108133-80c45097 ⚡ Bolt: Optimize snow particle simulation loop-invariant calculations
Merge pull request #245 from mbarbine/sentinel-secure-match-events-4912160361791894271 🛡️ Sentinel: Secure GET /api/v1/matches/[id]/events route and add unit tests
Merge pull request #245 from mbarbine/sentinel-secure-match-events-4912160361791894271 🛡️ Sentinel: Secure GET /api/v1/matches/[id]/events route and add unit tests
Export complete QuakeCraft manifest traces
Merge pull request #242 from mbarbine/jules-18068861616763892315-b9f40555 🛡️ Sentinel: Fix input validation and parameter injection in route-compliance
Merge pull request #242 from mbarbine/jules-18068861616763892315-b9f40555 🛡️ Sentinel: Fix input validation and parameter injection in route-compliance
Merge pull request #241 from mbarbine/jules-3335436200002257179-8ace9de4 🎨 Palette: Keyboard Submit & Blur Interactions in Settings
Merge pull request #241 from mbarbine/jules-3335436200002257179-8ace9de4 🎨 Palette: Keyboard Submit & Blur Interactions in Settings
Merge pull request #240 from mbarbine/bolt/hud-overlay-selectors-optimization-7998439198567922982 ⚡ Bolt: Optimize HUDOverlay selectors to prevent GC spikes
Merge pull request #240 from mbarbine/bolt/hud-overlay-selectors-optimization-7998439198567922982 ⚡ Bolt: Optimize HUDOverlay selectors to prevent GC spikes
Merge pull request #239 from mbarbine/sentinel/fix-practice-record-auth-bypass-1667790566655828869 🛡️ Sentinel: Fix authorization bypass in practice record REST endpoint
Merge pull request #239 from mbarbine/sentinel/fix-practice-record-auth-bypass-1667790566655828869 🛡️ Sentinel: Fix authorization bypass in practice record REST endpoint
Consolidate 1 open pull request Merged consolidation of open PRs: #234
Consolidate 1 open pull request Merged consolidation of open PRs: #234
Merge pull request #237 from mbarbine/jules-2362567773970598280-9a09b285 🎨 Palette: Improve server browser input accessibility
Merge pull request #237 from mbarbine/jules-2362567773970598280-9a09b285 🎨 Palette: Improve server browser input accessibility
Merge pull request #235 from mbarbine/sentinel/fix-clickjacking-headers-16361519834253197310 🛡️ Sentinel: Fix clickjacking vulnerability and add security headers