Migrate extension plugin materialization to extensions container (#2334)

* Migrate extension plugin materialization layout

Materialize extension plugins into a dedicated extensions/ container, validate the new manifest convention, and bump extension plugin versions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1

* Keep extension manifests source-compatible

Restore source extension manifests to "extensions": "." while preserving materialization-time rewrite to "extensions" in distribution output.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1

* Validate canvas extension layout for external submissions

Add intake and quality-gate checks for canvas-tagged external plugins so they must include extensions/extension.mjs and optional manifest extensions is validated when present.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1

* Fix plugin clean extension pass and typo guard text

Declare EXTENSIONS_DIR in clean-materialized-plugins and run extension cleanup once after plugin cleanup. Also normalize misspelled-key detection strings to satisfy spelling checks without changing validation behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1

* Proper codespell fix

* Separate canvas structure quality gate status

Track canvas structure as its own gate status and output, include it in aggregate summaries, and enforce Git object types so extensions/ is a tree and extensions/extension.mjs is a blob.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Aaron Powell
2026-07-17 18:04:03 +10:00
committed by GitHub
parent 38ab1360a4
commit 40665c23b7
32 changed files with 583 additions and 49 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "accessibility-kanban",
"description": "Kanban board to manage accessibility issues, allow you to plan, track, and complete remediation work.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "apng-studio",
"description": "Interactive GitHub Copilot app canvas extension for building Animated PNG (APNG) files from frames. Draw or upload frames, tune per-frame timing and compositing, preview live, send the result to your phone by QR, and export an animated .png.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Andrea Griffiths",
"url": "https://github.com/AndreaGriffiths11"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "arcade-canvas",
"description": "Play five retro Phaser mini-games in a Copilot canvas while agents work.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Dan Wahlin",
"url": "https://github.com/DanWahlin"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "backlog-swipe-triage",
"description": "Quickly swipe through backlog issues to triage decisions like assign, needs-info, defer, close, or ignore.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "James Montemagno",
"url": "https://github.com/jamesmontemagno"
@@ -1,7 +1,7 @@
{
"name": "chromium-control-canvas",
"description": "Opens a real Chromium window you can navigate and interact with from a Copilot canvas control panel and agent actions.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Andrea Griffiths",
"url": "https://github.com/AndreaGriffiths11"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "color-orb",
"description": "A visual orb that users can ask the agent to recolor while showing a live activity log in the canvas.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "connector-namespaces",
"description": "Browse, connect, and open MCP connectors from an Azure Connector Namespace.",
"version": "1.1.0",
"version": "1.1.1",
"author": {
"name": "Alex Yang",
"url": "https://github.com/alexyaang"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "diagram-viewer",
"description": "Render diagrams, click nodes to drill down, and view agent-generated explanations directly in the canvas.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "feedback-themes",
"description": "Explore grouped customer feedback signals by impact and drill into a theme to guide product next steps.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "gesture-review",
"description": "Review pull requests with a live camera feed and approve or reject using thumbs-up/thumbs-down gestures.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
@@ -1,7 +1,7 @@
{
"name": "java-modernization-studio",
"description": "Drive the GitHub Copilot App Modernization for Java workflow from an interactive canvas: environment readiness, repo assessment, prioritized plan and progress, validation gates, and one-click predefined-task runs grounded in the repo's real artifacts.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Ayan Gupta",
"url": "https://github.com/ayangupt"
@@ -1,7 +1,7 @@
{
"name": "release-notes-showcase",
"description": "Compose and refine launch-ready release notes with contributor callouts and export-friendly output.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Kayla Cinnamon",
"url": "https://github.com/cinnamon-msft"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "repo-actions-hub",
"description": "Browse repository GitHub Actions workflows, inspect recent runs, and trigger manual workflow_dispatch runs from a Copilot canvas.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "James Montemagno",
"url": "https://github.com/jamesmontemagno"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "site-studio",
"description": "Plan, draft, and track a personal website section by section — a shared canvas where you and your agent author content, watch progress, and review every change.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Ayan Gupta",
"url": "https://github.com/ayangupt"
@@ -1,7 +1,7 @@
{
"name": "tiny-tool-town-submitter",
"description": "Inspect a repository, improve Tiny Tool Town readiness, submit its listing issue, and launch remediation work.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "James Montemagno",
"url": "https://github.com/jamesmontemagno"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "token-pacman",
"description": "Visualizes live session AI-credit usage as a Pac-Man board with pellets, ghosts, fruit milestones, and game-over limits.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "James Montemagno",
"url": "https://github.com/jamesmontemagno"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "where-was-i",
"description": "Reconstruct your dev context (branch, commits, uncommitted work, PR clues) and trigger a resume prompt to continue quickly.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "work-hub",
"description": "Generic cross-repo command center canvas for GitHub Copilot with onboarding, focus planning, repo health, work signals, and session cleanup.",
"version": "1.0.0",
"version": "1.0.1",
"author": {
"name": "James Montemagno",
"url": "https://github.com/jamesmontemagno"