Full deployment history for this project.
chore: merge open PRs into main
chore: merge open PRs into main
Merge PR #82: ⚡ Bolt: optimize homing paper distance check and iterator allocations
⚡ Bolt: optimize Canvas brick rendering loop and magnetism distance checks
🎨 Palette: Add dialog semantics and ARIA modal attributes to game overlays This change adds `role="dialog"`, `aria-modal="true"`, and contextual `aria-label` attributes to the game overlay component across all game states (title screen, pause menu, route complete summary, bike upgrade shop, game over screen, and victory screen). This provides assistive technology users with clear semantic dialog context when navigating game state transitions.
⚡ Bolt: optimize paper magnetism distance check and hot-path array iterations
🎨 Palette: Add dialog accessibility roles and clean up button attributes in game overlays
⚡ Bolt: optimize ground batch rect references, distance checks, and constant allocations
🎨 Palette: Improve game overlay screen reader accessibility with dialog semantics
⚡ Bolt: Optimize paper magnetism distance calculations - Replace Math.hypot with squared distance comparison in updateGame - Replace for...of mailbox iteration with index-based loop
🎨 Palette: Make game overlay screens accessible modal dialogs with ARIA labels Add role="dialog", aria-modal="true", and contextual aria-label attributes to game overlay screens in paperboy-game.tsx so screen readers properly announce game state transitions (Title, Pause, Route Complete, Upgrade Shop, Game Over, and Victory). Clean up duplicate title attributes across overlay buttons.
⚡ Bolt: optimize paper magnetism distance check and array iteration Optimize paper magnetism calculation in updateGame by replacing Math.hypot with a squared distance comparison and using an index-based for loop.
🎨 Palette: Enhance game overlay dialog accessibility Add role="dialog", aria-modal="true", and title props to Overlay component. Clean up duplicate title attributes on overlay buttons.
⚡ Bolt: optimize paperboy update loop and array iterations - Replace Math.hypot with squared distance check in paper magnetism update - Replace for...of array iterations in hot game update loop with index-based loops to eliminate per-frame iterator allocations
🎨 Palette: Add ARIA modal dialog attributes and labels to game overlay screens - Added role="dialog", aria-modal="true", and ariaLabel props to Overlay container in PaperboyGame - Added contextual ariaLabel props to Title, Paused, Route Complete, Upgrade Shop, Game Over, and Victory overlays - Cleaned up duplicate title attributes on overlay buttons
⚡ Bolt: Optimize magnetism distance checks and ground rendering batching - Replace Math.hypot square root calculations with squared distance comparisons (dx * dx + dy * dy < 14400) in magnetism upgrade search - Replace for...of mailbox iterator with index-based loop to eliminate per-frame iterator allocations - Fix ground batch array references in drawGround loop
🎨 Palette: Improve game overlay dialog accessibility - Add role="dialog", aria-modal="true", and contextual aria-label to Overlay component - Pass descriptive labels for each game screen overlay state - Clean up duplicate title attributes on overlay buttons - Fix gb reference error in drawGround rendering batch
⚡ Bolt: Optimize homing paper distance calculation and eliminate iterator allocations - Replaced Math.hypot calculation with squared-distance comparison (`dx * dx + dy * dy < minDistSq`) in the magnetism update loop to eliminate per-frame square root math. - Replaced `for...of` array iteration with an indexed `for` loop over `state.mailboxes` to prevent iterator object allocations.
🎨 Palette: Clean up duplicate button title attributes for improved UX and accessibility
⚡ Bolt: optimize paper magnetism distance calculations - Replaced Math.hypot with squared-distance comparison to avoid Math.sqrt overhead. - Replaced for...of array loop with index-based for loop to prevent iterator allocations inside 60fps update loop.
🎨 Palette: Fix duplicate title attributes on overlay buttons
⚡ Bolt: optimize homing paper distance check and iterator allocations
chore: consolidate all open PRs into one merge (#74) * 🎨 Palette: [UX improvement] Add descriptive conditional tooltips to all buttons in the Bike Upgrade Shop. Users are now informed why a button is disabled (e.g. maximum level reached or insufficient tips) or exactly what action it performs when active, greatly enhancing visual and screen-reader accessibility. * ⚡ Bolt: optimize ground batching arrays to eliminate GC churn * ⚡ Bolt: Optimize drawGround rendering batch coordinates allocation * ⚡ Bolt: Optimize ground batch rendering memory allocation in canvas draw loop * 🎨 Palette: Add discoverable hover tooltips to overlay buttons and upgrade shop items * ⚡ Bolt: optimize canvas ground batching and house siding texture paths * 🎨 Palette: Add descriptive title tooltips to Upgrade Shop buttons Add native hover tooltips (`title` attributes) to all Upgrade Shop buttons in `components/paperboy/paperboy-game.tsx` explaining exact disabled reasons (e.g. maximum level reached or insufficient tips requi
chore: consolidate and merge all open pull requests (#73) * 🎨 Palette: [UX improvement] Add descriptive conditional tooltips to all buttons in the Bike Upgrade Shop. Users are now informed why a button is disabled (e.g. maximum level reached or insufficient tips) or exactly what action it performs when active, greatly enhancing visual and screen-reader accessibility. * ⚡ Bolt: optimize ground batching arrays to eliminate GC churn * ⚡ Bolt: Optimize drawGround rendering batch coordinates allocation * ⚡ Bolt: Optimize ground batch rendering memory allocation in canvas draw loop * 🎨 Palette: Add discoverable hover tooltips to overlay buttons and upgrade shop items * ⚡ Bolt: optimize canvas ground batching and house siding texture paths * 🎨 Palette: Add descriptive title tooltips to Upgrade Shop buttons Add native hover tooltips (`title` attributes) to all Upgrade Shop buttons in `components/paperboy/paperboy-game.tsx` explaining exact disabled reasons (e.g. maximum level reached or insufficient tips
chore: auto-close PR #71 via merge path
chore: auto-close PR #69 via merge path
chore: auto-close PR #63 via merge path
chore: auto-close PR #61 via merge path
chore: auto-close PR #58 via merge path
chore: auto-close PR #57 via merge path
chore: stack PR #69
chore: stack PR #61
chore: stack PR #58
Merge pull request #56 from mbarbine/consolidate/platphorm-paperboy-20260811-cont3 consolidate 37 PRs into one commit
Merge pull request #18 from mbarbine/bolt-opt-ephemera-gc-8373983622345918790 ⚡ Bolt: Optimize particle and floating text array filtering in updateEphemera
Merge pull request #17 from mbarbine/palette/keyboard-accessible-upgrades-5807030708102226996 🎨 Palette: Fully Keyboard-Accessible Upgrade Shop & Retro Key Guides
Merge pull request #16 from mbarbine/jules-12219632670473385734-e6b0bb55 ⚡ Bolt: Precalculate Ground Scale and Perspective in drawGround
Merge pull request #15 from mbarbine/palette-keyboard-navigation-remodelled-16244840199459700734 🎨 Palette: Keyboard Menu Navigation & Overlay Visual Hints
Resolve and consolidate 3 platphorm pull requests Merged resolved consolidation of PRs: #13, #8, #7
Merge pull request #11 from mbarbine/bolt/optimize-sky-rendering-1718185383594130011 ⚡ Bolt: Batched Sky and Cloud Canvas Rendering
Merge pull request #12 from mbarbine/palette-canvas-accessibility-441064396093868466 🎨 Palette: Improve HTML5 canvas focus and accessibility
fix: support Vercel alias compliance status
feat: standardize MCP and route compliance
chore: ignore local Vercel metadata
chore: reconcile and restore pnpm build
Merge pull request #10 from mbarbine/jules-1583629300949570429-16609d2e ⚡ Bolt: Optimized isometric render loop and starry sky
Merge pull request #9 from mbarbine/enhance-isometric-graphics-11950022440401883488 Enhance Isometric Game Graphics and Add New Visual Assets
Merge pull request #6 from mbarbine/palette/global-audio-controls-shortcuts-7690517469735622019 🎨 Palette: Global Audio Toggles & Keyboard Shortcuts