Repository navigation
Update Agent Arcade canvas to six games 🤖🤖🤖 - #4482
Conversation
🚦 Submission status: 💬 Review in progressRisk tier: Why this tier
Automated checks
Review
Commands
Updated for |
🔒 PR Risk Scan ResultsScanned 17 changed file(s).
Skipped non-text or missing files
|
|
🟡 Contributor Reputation Check: MEDIUM risk
Maintainers: please review this contributor before merging. |
|
/request-review |
|
🙋 Added |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The traced commercial artwork lacks compatible provenance, and the request endpoint permits unbounded body accumulation.
Review effort: Balanced
Findings: 2
Open (2)
What changed in this PR
Updates Agent Arcade to six games, adding Surface Defense while optimizing shared runtime behavior and reducing bundled assets.
Changes:
- Adds Surface Defense and six-game metadata.
- Introduces shared canvas layouts, M4A audio, and stricter selection handling.
- Optimizes rendering, cleanup, HUD, and platform behavior.
| File | Description |
|---|---|
plugins/arcade-canvas/README.md |
Updates game count and fixes the code fence. |
plugins/arcade-canvas/plugin.json |
Bumps version and description. |
extensions/arcade-canvas/README.md |
Documents the sixth game and compact bundle. |
extensions/arcade-canvas/package.json |
Removes obsolete local package metadata. |
extensions/arcade-canvas/package-lock.json |
Removes obsolete dependency lock data. |
extensions/arcade-canvas/game/scenes/SurfaceDefense.js |
Adds the Surface Defense game. |
extensions/arcade-canvas/game/scenes/PlanetGuardian.js |
Optimizes rendering, audio, and gameplay behavior. |
extensions/arcade-canvas/game/scenes/NinjaRunner.js |
Adds world trimming and resource cleanup. |
extensions/arcade-canvas/game/scenes/GalaxyBlaster.js |
Optimizes layout, paths, and cleanup. |
extensions/arcade-canvas/game/scenes/CosmicRocks.js |
Optimizes ship rendering and UFO handling. |
extensions/arcade-canvas/game/scenes/BaseScene.js |
Improves shared HUD, overlays, timers, and stars. |
extensions/arcade-canvas/game/scenes/AlienOnslaught.js |
Applies shared layout and rendering optimizations. |
extensions/arcade-canvas/game/layout.js |
Defines canvas and desktop layout profiles. |
extensions/arcade-canvas/game/index.html |
Updates controls, platform styling, and game options. |
extensions/arcade-canvas/game/hud.js |
Improves pause, overlay, Linux, and cursor handling. |
extensions/arcade-canvas/game/game.js |
Registers the sixth game and shared runtime behavior. |
extensions/arcade-canvas/extension.mjs |
Updates serving, validation, synchronization, and actions. |
extensions/arcade-canvas/assets/galaxy-blaster/space_sheet.xml |
Removes an unused atlas. |
extensions/arcade-canvas/assets/asset-.md |
Adds the gameplay reference source. |
docs/README.plugins.md |
Updates generated plugin catalog text. |
.github/plugin/marketplace.json |
Updates generated marketplace metadata. |
Files not reviewed (1)
- extensions/arcade-canvas/package-lock.json: Generated file
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| for await (const chunk of req) { | ||
| body += chunk; |
| // Killer satellite pixel art traced from the original Missile Command (1980) | ||
| // arcade flier sprite: rounded red body, twin blue panels, four antenna legs | ||
| // with orange tips. '.' pixels are transparent. |
🧩 Canvas smoke test✅ Passed · 0 error(s), 0 warning(s)
Plugin
|
| Field | Value |
|---|---|
| Description | Play six retro Phaser mini-games in a Copilot canvas while agents work. |
| Author | Dan Wahlin — https://github.com/DanWahlin |
| License | — |
| Keywords | arcade-games, copilot-canvas, interactive-canvas, phaser, retro-games, session-breaks |
| Extensions | arcade-canvas |
| Materialize | ✅ |
| Install | ✅ |
Changed plugin files
plugins/arcade-canvas/README.mdplugins/arcade-canvas/plugin.json
Extension arcade-canvas
| Field | Value |
|---|---|
| Registered by | arcade-canvas |
| Package | — |
| Preview | 1536×1024, 979.6 KB |
| Modules | 12 (1 reachable from extension.mjs) |
| Files | 125 |
Permissions and capabilities (static analysis of modules reachable from extension.mjs)
- File system access (node:fs)
- Network sockets / local server (node:http, node:net, ...)
- Outbound HTTP requests (fetch)
Changed extension files
extensions/arcade-canvas/README.mdextensions/arcade-canvas/assets/asset-.mdextensions/arcade-canvas/assets/defender/planet-guard-sprites.pngextensions/arcade-canvas/assets/defender/sounds/sound_baiterwarning.m4aextensions/arcade-canvas/assets/defender/sounds/sound_baiterwarning.oggextensions/arcade-canvas/assets/defender/sounds/sound_bonus.m4aextensions/arcade-canvas/assets/defender/sounds/sound_bonus.oggextensions/arcade-canvas/assets/defender/sounds/sound_enemydead.m4aextensions/arcade-canvas/assets/defender/sounds/sound_enemydead.oggextensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot.m4aextensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot.oggextensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot2.m4aextensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot2.oggextensions/arcade-canvas/assets/defender/sounds/sound_explode.m4aextensions/arcade-canvas/assets/defender/sounds/sound_explode.oggextensions/arcade-canvas/assets/defender/sounds/sound_humanoiddead.m4aextensions/arcade-canvas/assets/defender/sounds/sound_humanoiddead.oggextensions/arcade-canvas/assets/defender/sounds/sound_laser.m4aextensions/arcade-canvas/assets/defender/sounds/sound_laser.oggextensions/arcade-canvas/assets/defender/sounds/sound_player1up.m4aextensions/arcade-canvas/assets/defender/sounds/sound_player1up.oggextensions/arcade-canvas/assets/defender/sounds/sound_playerdead.m4aextensions/arcade-canvas/assets/defender/sounds/sound_playerdead.oggextensions/arcade-canvas/assets/defender/sounds/sound_start.m4aextensions/arcade-canvas/assets/defender/sounds/sound_start.oggextensions/arcade-canvas/assets/defender/sounds/sound_thurst.m4aextensions/arcade-canvas/assets/defender/sounds/sound_thurst.oggextensions/arcade-canvas/assets/defender/sounds/sound_warning.m4aextensions/arcade-canvas/assets/defender/sounds/sound_warning.oggextensions/arcade-canvas/assets/galaxy-blaster/sounds/sfx_laser2.oggextensions/arcade-canvas/assets/galaxy-blaster/sounds/sfx_zap.oggextensions/arcade-canvas/assets/galaxy-blaster/space_sheet-2-black.pngextensions/arcade-canvas/assets/galaxy-blaster/space_sheet-2.pngextensions/arcade-canvas/assets/galaxy-blaster/space_sheet.pngextensions/arcade-canvas/assets/galaxy-blaster/space_sheet.xmlextensions/arcade-canvas/assets/preview.pngextensions/arcade-canvas/assets/sounds/agent-arcade-voice.mp3extensions/arcade-canvas/assets/surface-defense/sounds/airburst.m4aextensions/arcade-canvas/assets/surface-defense/sounds/aircraft-alert.m4aextensions/arcade-canvas/assets/surface-defense/sounds/bonus-city.m4aextensions/arcade-canvas/assets/surface-defense/sounds/game-over.m4aextensions/arcade-canvas/assets/surface-defense/sounds/ground-impact.m4aextensions/arcade-canvas/assets/surface-defense/sounds/launch.m4aextensions/arcade-canvas/assets/surface-defense/sounds/no-ammo.m4aextensions/arcade-canvas/assets/surface-defense/sounds/wave-start.m4aextensions/arcade-canvas/extension.mjsextensions/arcade-canvas/game/game.jsextensions/arcade-canvas/game/hud.jsextensions/arcade-canvas/game/index.htmlextensions/arcade-canvas/game/layout.js- …and 11 more
Static checks compile modules without executing them. Minimum preview size is configurable with CANVAS_PREVIEW_MIN_WIDTH/CANVAS_PREVIEW_MIN_HEIGHT. Workflow run
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Request-size validation and traced commercial-art provenance remain unresolved.
Review effort: Balanced
Findings: 3
Open (3)
Files not reviewed (1)
- extensions/arcade-canvas/package-lock.json: Generated file
| // Bomber jet traced from the original arcade flier sprite: swept tail fin, | ||
| // long fuselage with the nose pointing right, delta wing sweeping down-left. |


Pull Request Checklist
npm startand verified thatREADME.mdis up to date.mainbranch for this pull request.Description
Syncs the public Agent Arcade canvas from its canonical, user-tested source. The update adds Surface Defense as the sixth mini-game, uses the shared canvas layout profile, applies strict request validation, and removes the legacy compiled-JavaScript rewrite path.
The sync also replaces larger or unused assets with the current compact canvas set, including M4A audio, and removes stale package files, compressed Phaser output, old audio copies, and unused sprites. The plugin is updated from
1.0.2to1.1.0, and its README fence is corrected.Type of Contribution
Additional Notes
Validation completed:
npm ci --ignore-scripts— passed; npm reported an engine warning because the installed npm is10.9.8while@microsoft/vallyrequests npm>=11.11.1, plus one existing moderate audit item.npm run plugin:validate— passed for all 100 plugins and the external catalog; existing external catalog warnings remain.npm run build— passed and regenerated the plugin catalog outputs.npm run website:data— passed.npm start— passed and confirmed generated files are current.extension.mjsand all generated game files — passed.6,213,632bytes (5.926 MiB), below the8 MiBproject-extension trust limit.git diff --check— passed.bash eng/fix-line-endings.shwas run, but its GNU-stylesed -iinvocation is not compatible with macOS BSDsedand emitted errors. It made no changes. A direct CRLF check of all changed Markdown files found no CRLF line endings.By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.