Skip to content

Update Agent Arcade canvas to six games 🤖🤖🤖 - #4482

Merged
aaronpowell merged 2 commits into
mainfrom
danwahlin-sync-agent-arcade-canvas
Oct 7, 2026
Merged

aaronpowell merged 2 commits into
mainfrom
danwahlin-sync-agent-arcade-canvas

Conversation

@DanWahlin

Copy link
Copy Markdown
Contributor

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds a new instruction, prompt, agent, skill, workflow, or canvas extension file in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, workflow, or canvas extension with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.
  • I am targeting the main branch 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.2 to 1.1.0, and its README fence is corrected.


Type of Contribution

  • New instruction file.
  • New prompt file.
  • New agent file.
  • New plugin.
  • New skill file.
  • New agentic workflow.
  • New canvas extension.
  • Update to existing instruction, prompt, agent, plugin, skill, workflow, or canvas extension.
  • Other (please specify):

Additional Notes

Validation completed:

  • npm ci --ignore-scripts — passed; npm reported an engine warning because the installed npm is 10.9.8 while @microsoft/vally requests 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.
  • JavaScript syntax checks for extension.mjs and all generated game files — passed.
  • Exact checksum comparison against the canonical extension directory — passed with no delta.
  • Direct extension size check — 6,213,632 bytes (5.926 MiB), below the 8 MiB project-extension trust limit.
  • Runtime assertions confirmed Surface Defense, the six-game registry, the shared canvas layout profile, strict HTTP/schema validation, 61 M4A assets with no WAV assets, and removal of legacy rewrite logic.
  • git diff --check — passed.

bash eng/fix-line-endings.sh was run, but its GNU-style sed -i invocation is not compatible with macOS BSD sed and 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.

@DanWahlin
DanWahlin requested review from a team as code owners October 4, 2026 18:44
Copilot AI balanced review requested due to automatic review settings October 4, 2026 18:44
@github-actions github-actions Bot added canvas-extension PR touches canvas extensions plugin PR touches plugins awaiting-automation merge-risk:high labels Oct 4, 2026
@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

🚦 Submission status: 💬 Review in progress

Risk tier: merge-risk:high — Privileged execution, automation, or review-policy change
Required to merge: passing submission-gate checks plus 2 approvals from reviewers with write access, including a maintainer with admin or maintain permission.

Why this tier
  • extensions/arcade-canvas/game/phaser.min.js has no diff available to scan for privileged capabilities

Automated checks

Check Status Details
Line endings ✅ Passed Passed · logs
Spelling ✅ Passed Passed · logs
Generated README consistency ✅ Passed Passed · logs
Plugin and extension validation ✅ Passed Passed · logs
Canvas extension validation ✅ Passed Passed · logs
Plugin structure ✅ Passed Passed · logs
Risk scan ✅ Passed Passed · logs
Contributor reputation ✅ Passed Passed · logs
Duplicate resource scan ⏳ Pending (advisory, non-blocking) Running · logs
PR quality signal ⏳ Pending (advisory, non-blocking) Queued · logs
Canvas/plugin smoke test ✅ Passed Passed · logs

Review

  • Approvals: 1/2 (aaronpowell)
  • Assigned reviewer: not assigned yet — comment /request-review to ask for one
  • Review target date: not set
  • Still needed: 1 more approval(s)
  • The core-maintainers pool is not staffed yet; an approver with admin or maintain permission is required instead.

Commands

Command Who What it does
/rerun-checks PR author, maintainers Re-runs failed or incomplete checks and re-evaluates this gate
/request-review PR author, maintainers Asks the review rotation to assign a reviewer (adds needs-reviewer)

Updated for 5f67f1f · gate run · This comment is maintained automatically — see submission gate docs.

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

🔒 PR Risk Scan Results

Scanned 17 changed file(s).

Severity Count
🔴 High 0
🟠 Medium 2
ℹ️ Info 0
Severity Rule File Line Match
🟠 package-exec-command .github/plugin/marketplace.json 994 "description": "Windows-only Excel automation plugin that runs the latest excelcli package through npx.",
🟠 package-exec-command .github/plugin/marketplace.json 1025 "description": "Windows-only Excel automation plugin that runs the latest ExcelMcp MCP server through npx.",
Skipped non-text or missing files
  • extensions/arcade-canvas/assets/defender/sounds/sound_baiterwarning.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_bonus.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_enemydead.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot2.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_explode.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_humanoiddead.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_laser.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_player1up.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_playerdead.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_start.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_thurst.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_warning.m4a
  • extensions/arcade-canvas/assets/galaxy-blaster/space_sheet-2.png (skipped: file too large)
  • extensions/arcade-canvas/assets/preview.png
  • extensions/arcade-canvas/assets/surface-defense/sounds/airburst.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/aircraft-alert.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/bonus-city.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/game-over.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/ground-impact.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/launch.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/no-ammo.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/wave-start.m4a
  • extensions/arcade-canvas/game/phaser.min.js (skipped: file too large)

This is an automated soft-gate report. Findings indicate review targets and do not block merge by themselves.

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

🟡 Contributor Reputation Check: MEDIUM risk

Check Risk
Profile MEDIUM
Credential audit NONE

Maintainers: please review this contributor before merging.
See the workflow run for full details.
Automated check powered by AGT.

@github-actions github-actions Bot added the needs-review:MEDIUM Contributor reputation check flagged MEDIUM risk label Oct 4, 2026
@DanWahlin

Copy link
Copy Markdown
Contributor Author

/request-review

@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

🙋 Added needs-reviewer. Reviewer routing is assigning a reviewer now.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 High severity

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.

Comment on lines +306 to 307
for await (const chunk of req) {
body += chunk;
Comment on lines +14 to +16
// 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.
@github-actions github-actions Bot added ready-for-review Submission passed intake validation and is ready for maintainer review and removed awaiting-automation labels Oct 4, 2026
Copilot AI balanced review requested due to automatic review settings October 7, 2026 06:21
@github-actions github-actions Bot added awaiting-automation and removed ready-for-review Submission passed intake validation and is ready for maintainer review labels Oct 7, 2026
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

🧩 Canvas smoke test

✅ Passed · 0 error(s), 0 warning(s)

Check Result
Syntax, imports, file safety ✅
Preview image (≥ 400×160 PNG) ✅
Plugin manifests ✅
Materialize ✅
Install (Copilot CLI) ✅

Plugin arcade-canvas v1.1.0

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.md
  • plugins/arcade-canvas/plugin.json

Extension arcade-canvas

arcade-canvas preview

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.md
  • extensions/arcade-canvas/assets/asset-.md
  • extensions/arcade-canvas/assets/defender/planet-guard-sprites.png
  • extensions/arcade-canvas/assets/defender/sounds/sound_baiterwarning.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_baiterwarning.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_bonus.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_bonus.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_enemydead.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_enemydead.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot2.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_enemyshoot2.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_explode.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_explode.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_humanoiddead.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_humanoiddead.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_laser.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_laser.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_player1up.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_player1up.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_playerdead.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_playerdead.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_start.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_start.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_thurst.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_thurst.ogg
  • extensions/arcade-canvas/assets/defender/sounds/sound_warning.m4a
  • extensions/arcade-canvas/assets/defender/sounds/sound_warning.ogg
  • extensions/arcade-canvas/assets/galaxy-blaster/sounds/sfx_laser2.ogg
  • extensions/arcade-canvas/assets/galaxy-blaster/sounds/sfx_zap.ogg
  • extensions/arcade-canvas/assets/galaxy-blaster/space_sheet-2-black.png
  • extensions/arcade-canvas/assets/galaxy-blaster/space_sheet-2.png
  • extensions/arcade-canvas/assets/galaxy-blaster/space_sheet.png
  • extensions/arcade-canvas/assets/galaxy-blaster/space_sheet.xml
  • extensions/arcade-canvas/assets/preview.png
  • extensions/arcade-canvas/assets/sounds/agent-arcade-voice.mp3
  • extensions/arcade-canvas/assets/surface-defense/sounds/airburst.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/aircraft-alert.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/bonus-city.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/game-over.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/ground-impact.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/launch.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/no-ammo.m4a
  • extensions/arcade-canvas/assets/surface-defense/sounds/wave-start.m4a
  • extensions/arcade-canvas/extension.mjs
  • extensions/arcade-canvas/game/game.js
  • extensions/arcade-canvas/game/hud.js
  • extensions/arcade-canvas/game/index.html
  • extensions/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

@aaronpowell
aaronpowell merged commit 3a68501 into main Oct 7, 2026
31 of 32 checks passed
@aaronpowell
aaronpowell deleted the danwahlin-sync-agent-arcade-canvas branch October 7, 2026 06:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Request-size validation and traced commercial-art provenance remain unresolved.

Review effort: Balanced
Findings: 3 High severity

Open (3)
Files not reviewed (1)
  • extensions/arcade-canvas/package-lock.json: Generated file

Comment on lines +32 to +33
// Bomber jet traced from the original arcade flier sprite: swept tail fin,
// long fuselage with the nose pointing right, delta wing sweeping down-left.

This branch was successfully deployed

1 active deployment
github-pages — 5f67f1fa Deployed Oct 7, 2026 by aaronpowell via deploy #700
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

canvas-extension PR touches canvas extensions merge-risk:high needs-review:MEDIUM Contributor reputation check flagged MEDIUM risk needs-reviewer plugin PR touches plugins review-in-progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants