Commit Graph

2088 Commits

Author SHA1 Message Date
Augustin Popa 38cf671439 Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-17 01:19:54 -07:00
Augustin Popa ca6de3fc48 Addressed more PR review feedback 2026-07-17 01:07:54 -07:00
Aaron Powell 40665c23b7 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>
2026-07-17 18:04:03 +10:00
Xiaoyun Ding 801793581e Update marketplace.json 2026-07-17 15:54:29 +08:00
Tim Mulholland 38ab1360a4 Update modernize-dotnet plugin to 1.0.1161-preview1 (#2317) 2026-07-17 17:39:55 +10:00
Fenqin Zhou d4cb6dd9a8 Update github-copilot-modernization to v1.22.0 2026-07-17 15:27:28 +08:00
Augustin Popa a5f0c6cff1 Completed another review pass, making more improvements 2026-07-16 23:51:46 -07:00
Augustin Popa bd3e6493e9 Addressed PR review feedback 2026-07-16 23:37:35 -07:00
qinezh cf04ddde79 Update foundry-agent-canvas version to 1.0.1 (#2335) 2026-07-17 14:22:35 +10:00
Xiaoyun Ding 0d83340afa Update modernize-java plugin version to 1.22.0 2026-07-17 10:10:42 +08:00
Muhammad Ubaid Raza 5668f70312 chore: Update gem-team plugin version to 1.84.0 and refine concurrency language in agent execution steps (#2322)
* chore: standardize agent documentation markdown, fix formatting, add MANDATORY clauses, and update output formats across agents

* chore: Update gem-team plugin version to 1.84.0 and refine concurrency language in agent execution steps
2026-07-17 10:30:53 +10:00
tomshafir-sonarsource eb8ce3075d Update SonarQube plugin version to 2.3.0 (#2324)
Co-authored-by: tomshafir-sonarsource <tom.shafir@sonarsource.com>
2026-07-17 00:20:05 +00:00
Christopher Harrison 65ef449bda Add Copilot Workshops sync workflow + Learning Hub i18n (#2325)
Adds an agentic (gh-aw) workflow that mirrors the multi-harness workshop
from github-samples/copilot-workshops into the Learning Hub, plus the
Starlight infrastructure it needs: GitHub-admonition rendering, i18n
locales with English at the site root, and a language picker that only
appears when a page has a non-English translation.


Copilot-Session: 9e1d1a4c-a422-4cae-8ea7-b3d5171f58e3

Co-authored-by: GeekTrainer <GeekTrainer@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-17 10:06:29 +10:00
github-actions[bot] 7c2009f436 Add external plugin foundry-agent-canvas (#2321)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-17 10:04:01 +10:00
Aaron Powell f0da81e14a Adding logic to render external plugins with canvases in the canvas gallery (#2323)
* Adding logic to render external plugins with canvases in the canvas gallery

* Fix external canvas plugin URL encoding and keyword detection

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

Copilot-Session: db85480e-d839-4f69-8271-08f8cc845596

* Fail fast on external plugin errors and fix external install links

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

Copilot-Session: db85480e-d839-4f69-8271-08f8cc845596
2026-07-17 09:29:01 +10:00
Anton Standrik 87300ab476 fix: require approval for graph mutations 2026-07-16 23:21:39 +03:00
Anton Standrik c85e3911f8 feat: add codebase-memory-mcp skill 2026-07-16 22:51:03 +03:00
Aaron Powell fb80ec4f21 Add canvas-specific intake validation for external plugins (#2319)
* Add canvas-aware checks to external plugin intake

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

Copilot-Session: 0f03fd92-3bfa-4c67-a709-177fbd46c40e

* 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>
2026-07-16 16:58:02 +10:00
Aaron Powell 1a77b83008 Remove website modal and use cookbook detail routes (#2312)
- replace cookbook recipe/example modal views with dedicated detail pages
- add legacy #file cookbook hash redirects to canonical routes
- remove modal component/runtime and associated CSS and stale page references

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

Copilot-Session: ca1a64ec-678f-45ac-ba68-33a37717398a
2026-07-16 15:17:05 +10:00
Copilot 5ff8276add [WIP] Fix failing GitHub Actions job build (#2313)
* Initial plan

* Fix invalid </img> closing tag in contributors.astro

Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
2026-07-16 15:12:37 +10:00
Aaron Powell 9cdc660675 Removing hooks, workflows, and tools from website (#2292)
* Removing some features from the home page of the website

hooks, agentic workflows, and tools are removed - these are minimally used parts of the website

* Removing the pages and their references

* removing from the readme

* Adding the awesome copilot MCP server to our plugin and showing that in the rendered page

* Fix broken docs links and MCP plugin docs

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

Copilot-Session: 4215785a-7e6e-49c5-abaa-c39b0793a11e
2026-07-16 14:10:07 +10:00
Ari LiVigni ContinuousG33k 26a89aad89 Update gh-skills-builder plugin to v1.0.4 and regenerate marketplace.json (#2308)
* chore: update gh-skills-builder to v1.0.2

Co-authored-by: arilivigni <4140343+arilivigni@users.noreply.github.com>

* Update gh-skills-builder to v1.0.3 with new commit sha

Co-authored-by: arilivigni <4140343+arilivigni@users.noreply.github.com>

* Update gh-skills-builder external plugin to v1.0.4

Co-authored-by: arilivigni <4140343+arilivigni@users.noreply.github.com>

* Regenerate marketplace.json with gh-skills-builder v1.0.4

Co-authored-by: arilivigni <4140343+arilivigni@users.noreply.github.com>

* Remove connector-namespaces plugin entry

Removed connector-namespaces plugin entry from marketplace.json.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: arilivigni <4140343+arilivigni@users.noreply.github.com>
Co-authored-by: Aaron Powell <me@aaron-powell.com>
2026-07-16 12:58:43 +10:00
Aaron Powell 61dda50523 Add version parity checks to external plugin quality gates (#2307)
* Add external plugin version-match gate

Enforce external.json version matching against remote plugin.json for source ref and/or sha in shared quality gates, and surface the new gate status/output in intake and PR workflows.

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

Copilot-Session: 8aa3e98d-1873-4cab-8866-1b2efd0f24ad

* 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>
2026-07-16 12:39:32 +10:00
Aaron Powell 49c6c0f561 Fixing marketplace that was missing update (#2309) 2026-07-16 12:36:25 +10:00
Alex Yang [MSFT] 191309165e Add Azure Connector Namespaces canvas extension 🤖🤖🤖 (#2250)
* Add MCP Connectors (connector-namespaces) canvas extension

A Copilot CLI canvas extension for browsing and adding MCP connectors
from an Azure Connector Namespace into a Copilot session. Sign-in is
dependency-free (OAuth 2.0 auth-code + PKCE via the Azure CLI public
client, loopback redirect); network access is restricted to the public
Azure Resource Manager endpoint. MIT licensed.

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

* Update Connector Namespaces canvas extension

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

* Harden Connector Namespaces canvas extension

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

* Sanitize connector icon brand colors

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

* Add Connector Namespace playground actions

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

Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Replace sandbox skill with native tool

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

Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Clarify connector disconnect action

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

Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Color disconnect action red

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

Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Add connector extension plugin manifest

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

Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Address connector canvas review feedback

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

Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Remove legacy connector canvas manifest

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

Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Address remaining connector review feedback

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

Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Harden connector review fixes

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

Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Harden connector convergence

Address the latest connector review batch across config persistence, executable trust, reauthentication, JSON-RPC transport, smoke safety, and accessibility.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Use native HTTP connector configs

Persist Connector Namespace MCP servers as direct HTTPS entries with API-key headers, remove the stdio unwrap proxy, and exercise the native Streamable HTTP path in smoke coverage.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

* Secure persisted connector state

Create the Connector Namespace artifacts directory and saved gateway config with private permissions, and align the reduced-motion regression notes with the static fallback behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a986299f-86be-46c3-9562-cbf7d25174cf

---------

Co-authored-by: Alex Yang <yangalex@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-16 10:29:48 +10:00
Willie Yao e4a1f57fd9 feat: add convert-excel-to-md, convert-pdf-to-md, and convert-word-to-md skills (#2294)
* feat: add convert-excel-to-md, convert-pdf-to-md, and convert-word-to-md skills

Add three new agent skills that convert common document formats to Markdown
using bundled Python scripts powered by MarkItDown:

- convert-excel-to-md: Converts .xlsx workbooks to Markdown with per-sheet
  tables and embedded image extraction via a bundled Python script.
- convert-pdf-to-md: Converts .pdf documents to Markdown with text/table
  extraction and embedded image extraction via PyMuPDF.
- convert-word-to-md: Converts .docx documents to Markdown with proper
  image extraction replacing MarkItDown's base64 placeholders.

Each skill includes:
- SKILL.md with detailed usage instructions, output structure docs, and
  a troubleshooting table
- scripts/ with the conversion Python script and requirements.txt
- references/setup.md with environment setup instructions

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

* fix: remove Markdown image syntax from convert-word-to-md SKILL.md

The CI valid-refs linter flagged the literal Markdown image syntax
containing a data URI as an invalid file reference. Replaced it with
a plain text description of the placeholder format.

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

* fix: update pip install command to use scripts/requirements.txt for setup

* fix: clarify installation instructions for requirements-file in setup documentation

* fix: correct indentation in image extraction function

* Potential fix for pull request finding

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

* feat: add comprehensive documentation and setup instructions for convert-to-md skills

* fix: add trailing slashes to skill paths in plugin.json

* fix: reorder skills in plugin.json for consistency

* fix: update plugin.json and README.md for clarity and consistency

* feat: add convert-to-md plugin and update related documentation

* Potential fix for pull request finding

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

* fix: enhance conversion skills to handle mixed file types and improve error handling

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-16 09:06:49 +10:00
Aaron Powell 733c8cd009 Fixing some stuff with learning hub and app automations (#2291) 2026-07-16 09:03:29 +10:00
Suren K 822a551eaf feat(skills): add java-helidon skill for Helidon 4 best practices
Add a skill covering Helidon SE and MP patterns, Helidon 3 to 4 API migration guidance, and examples for HTTP, service, data, testing, security and observability in Java 21+ projects.
2026-07-15 16:28:53 -05:00
allcontributors[bot] 322fe74b64 update website/src/pages/contributors.astro 2026-07-15 18:26:04 +00:00
allcontributors[bot] 95263d3a2a update .all-contributorsrc 2026-07-15 18:25:53 +00:00
allcontributors[bot] 760d36ca1c update README.md 2026-07-15 18:25:50 +00:00
Suren K 9f5fa0e14e feat(cookbook): add Copilot SDK Java Examples to community samples.
Add a web-based Java community sample to cookbook.yml under the Community Samples section, linking to thesurenk/github-copilot-java-examples.
2026-07-15 13:18:45 -05:00
Augustin Popa 8fc9543006 vcpkg skill automated README update 2026-07-15 09:20:10 -07:00
Augustin Popa e3fa3211f6 Added vcpkg skill 2026-07-15 09:16:23 -07:00
allcontributors[bot] 2c2461a7fa add AkashAi7 as a contributor for content (#2293)
* update README.md

* update .all-contributorsrc

* update website/src/pages/contributors.astro

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2026-07-15 09:22:09 +10:00
prasadgd9022 36b30eb113 Add tm7-threat-model skill for valid TM7 file generation (#2280)
* Add tm7-threat-model skill for valid TM7 file generation

Adds a skill that generates valid Microsoft Threat Modeling Tool (.tm7)
files using the correct WCF DataContractSerializer format, with a minimal
reference file. Includes STRIDE threat generation workflow and a checklist
of common serialization mistakes that corrupt .tm7 files.

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

* Address PR review: sanitize reference model, fix dangling refs, move to assets

- Move example-minimal.tm7 into assets/ per repo convention (aaronpowell).
- Remove personal/corporate metadata from the reference model (Owner,
  Contributors, ChangedBy domain account, project names).
- Make the reference model self-contained: add a second stencil so the data
  flow and threat SourceGuid/TargetGuid/FlowGuid all resolve to real elements.
- Fix SKILL.md threat contract (KeyValueOfstringThreatpc_P0_PhOB with
  b:-prefixed KnowledgeBase fields) to match the bundled reference.
- Reconcile guidance: MetaInformation/Notes/KnowledgeBase are valid schema
  elements and must be preserved; only SecurityGaps/Mitigations are invalid.
- Regenerate docs/README.skills.md and normalize line endings to LF.

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

* Address 2nd review: correct KnowledgeBase placement, valid TypeIds, z:Id uniqueness

- Document KnowledgeBase as a top-level sibling after ThreatMetaData (not embedded)
- Update skeleton to show <ThreatMetaData/>, sibling <KnowledgeBase>, and <Profile>
- Replace TypeIds absent from the bundled KB: AzureCosmosDB -> AzureSQLDB,
  HumanUser -> Mobile, GenericDataFlow -> Request
- Require z:Id uniqueness across the file in the common-mistakes checklist

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

* ci: exclude *.tm7 exports from codespell

MTM DataContract .tm7 exports embed base64 icon blobs whose substrings
(oT, bu, wth, mKe, ...) trigger codespell false positives. Skip *.tm7,
matching the existing convention for binary/asset files.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: prasad <prasaddharaskar@gmail.com>
Co-authored-by: Aaron Powell <me@aaron-powell.com>
2026-07-15 09:12:29 +10:00
github-actions[bot] e353a8cfb8 [bot] sync: CLI for Beginners — ch04 @-style imports + ch06 /mcp list (2026-07-10) (#2264)
* sync: update cli-for-beginners ch04 and ch06 from upstream

- Chapter 04: Add @-style imports section under Custom Instruction Files
  (released in v1.0.66, 2026-06-30). Users can now reference other files
  inside AGENTS.md or instruction files with @filepath syntax.

- Chapter 06: Add /mcp list to the Additional MCP Commands reference table.
  Released in v1.0.69-1 (2026-07-04), /mcp list shows currently attached MCP
  servers and can be run while Copilot is working. Also add /mcp auth command
  and update enable/disable descriptions to note session persistence.

- Bump lastUpdated to 2026-07-10 in both files.

Upstream commits: c559ab4953a0 (2026-07-09)

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

* fix: revert ch04 content changes, keep only date update

Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>

* Apply suggestion from @aaronpowell

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
Co-authored-by: Aaron Powell <me@aaron-powell.com>
2026-07-14 01:16:56 +00:00
Akash Dwivedi fe4442e4cb feat: add steno-mode skill for shorthand response compression and token saving (#2252)
* feat: add steno-mode skill for shorthand response compression

* fix: apply review suggestions and regenerate README against latest main
2026-07-14 11:15:22 +10:00
github-actions[bot] 67ab0108a9 [bot] Update Learning Hub for Copilot CLI v1.0.69–v1.0.71 features (#2287)
* docs: update Learning Hub for Copilot CLI v1.0.69–v1.0.71 features

- automating-with-hooks: document preToolUse exit code 2 for silent deny (v1.0.69)
- creating-effective-skills: mention Forge automatic draft skill creation (v1.0.70)
- installing-and-using-plugins: add /plugins dashboard documentation (v1.0.69)
- copilot-configuration-basics: add /delegate --base flag (v1.0.69), --repo/--local
  flags for /settings and /model (v1.0.70), /settings Repo scope tabs (v1.0.71)
- understanding-mcp-servers: add paginated session.mcp.resources RPCs (v1.0.70)

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

* Update website/src/content/docs/learning-hub/installing-and-using-plugins.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Aaron Powell <me@aaron-powell.com>
2026-07-14 11:07:42 +10:00
Paul Delannoy 0b950f9824 Enhance Oracle-to-PostgreSQL migration skills and documentation (#2284)
- Update migration agent guidelines to prioritize extension tool usage for code migration.
- Refine migration phases with detailed steps for pre-migration review and schema migration.
- Add new reviewing skill references for PostgreSQL materialized view refresh and UNION ALL planner risks.
- Ensure consistency in collation handling and testing strategies across skills.

Co-authored-by: TCPrimedPaul <paul.delannoy@tc.gc.ca>
2026-07-14 11:06:58 +10:00
Artur Spychaj 0aaced5332 Fix line-height calc in image-annotations annotate.py (#2266)
font.getbbox() returns (left, top, right, bottom), so text line height must
be bottom - top (bbox[3] - bbox[1]). The label placement code used
bbox[3] - bbox[0] (bottom - left), mixing an x-coordinate into a height and
producing a slightly wrong label-box height (empirically off by 0-4px
depending on font). The debug heatmap labeling in the same module already
uses the correct bbox[3] - bbox[1], so this brings placement in line.
2026-07-13 10:07:01 +10:00
James Montemagno dab055f03d Fix Work Hub session inventory (#2268)
Port the app workspace and runtime session inventory fixes from the personal James Hub canvas into the generic Work Hub extension. This lets the cleanup and recent-session surfaces read current app workspaces before falling back to the legacy session store.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-13 10:05:43 +10:00
allcontributors[bot] 52d4c4a8fa add kimtth as a contributor for bug (#2267)
* update README.md

* update .all-contributorsrc

* update website/src/pages/contributors.astro

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2026-07-13 10:04:42 +10:00
github-actions[bot] d4bb1498ae Add external plugin ui-theme-designer (#2282)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-13 10:01:56 +10:00
Gijs Reijn b6a84a833b Refine Pester migration skill by removing release candidate (#2278)
* Refine Pester migration skill descriptions and remove release candidate notes

* Take Copilot remark
2026-07-13 09:56:54 +10:00
Andrea Liliana Griffiths 0916fe444d Add APNG Studio canvas extension (#2272)
* Add APNG Studio canvas extension

APNG Studio is an interactive GitHub Copilot 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 a phone by QR, and
export an animated .png.

Adds extensions/apng-studio/ with the required .github/plugin/plugin.json and
assets/preview.png, and regenerates .github/plugin/marketplace.json.

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

* Address review feedback for APNG Studio

Security and robustness (extension.mjs):
- Reject "." and ".." project ids so canvas/action input cannot resolve
  outside artifacts/.
- Bound request bodies (1 MiB JSON, 40 MiB frame upload); return 413 when
  exceeded.
- Reject malformed JSON with 400 instead of coercing to {}, so a truncated
  body cannot trigger destructive routes such as /frames/clear.
- Scope shares per project so one canvas cannot rotate or stop another's
  share; the LAN server is shared and torn down once no shares remain.
- get_state treats hiddenFirst as active only with >=2 frames, matching the
  encoder, so a single-frame project reports the correct duration.

Accessibility (web/):
- Expose Pen/Eraser state with aria-pressed and keep it in sync in setTool.
- Mark the toast as an aria-live status region.

Packaging:
- Add extensions/apng-studio/.gitignore with artifacts/ so the documented
  runtime-data exclusion holds for this extension.
- Update the README install section to reference the committed awesome-copilot
  extension path.

Regenerated .github/plugin/marketplace.json.

* Use "GitHub Copilot app" wording

Update the plugin description (and regenerated marketplace entry) to refer to
the host as the GitHub Copilot app.

* Address deeper review for APNG Studio

Security:
- Require a per-server access token on every loopback data/mutation request
  (minted per canvas server, carried in the iframe URL, attached to every
  renderer request). Static assets stay public. Blocks a local process or
  cross-origin page from reading state or driving mutations.

Concurrency and durability:
- Serialize the load-mutate-save cycle per project; dedupe concurrent first
  loads; write project.json via temp file + rename.

Lifecycle:
- Track SSE clients per instance and end them before server.close().
- Stop a project's LAN share only when no other panel references it.

Correctness:
- Report exact numerator/denominator total duration; handle pointercancel.

QR and accessibility:
- Place QR version bits least-significant-bit first (versions 7-10).
- Associate delay/fps/dispose/blend labels with their inputs via for=.

* Address deeper concurrency and validation review for APNG Studio

- Run assemble() under the project lock; add_color_frame renders and appends
  within one lock.
- Validate uploaded frames (PNG chunk scan, size + dimension checks) before
  writing; first frame stores real dimensions; CanvasError maps to 400.
- Validate move delta; clear frames in memory before deleting files.
- Route the open-handler rename through applySettings.
- Deduplicate LAN share startup; clean up if the canvas closes mid-start.
- End SSE streams before server.close(); skip dead streams in broadcast.
- Exact fractional duration; drawing surface stays >= 1px; refresh state before
  re-seeding "start from last frame".

* Address review: PNG format validation, share bind, limits, a11y

- Validate uploaded frames are 8-bit RGBA non-interlaced PNGs (standard
  compression/filter); reject formats the codec can't encode.
- Cap projects at 600 frames (add + duplicate).
- Bind the LAN share server to the private address, not 0.0.0.0; require a
  private address and rebind when it changes while idle; build the URL from the
  bound address.
- Align width/height inputs and clampSize to the 2048 maximum.
- Size the drawing surface by width + aspect ratio for narrow panels.
- set_frame with an unknown frameId returns a validation error.

* Address review: encoded-byte budget, timing modes, id keys, load errors

- 256 MiB aggregate encoded-byte budget (add + duplicate); per-frame size
  tracked and backfilled on load, so a frame count alone no longer bounds
  assembly memory.
- Frame timing is one exclusive mode (delayMs | fps | delayNum/delayDen);
  combinations are rejected instead of producing hybrid delays.
- Collision-resistant project storage keys: safe ids are used verbatim (existing
  projects still load) and only unsafe ids get a hash suffix, so "foo/bar" and
  "foo?bar" can't share a directory.
- Load only treats a missing file as a new project; other read/parse errors
  surface instead of silently overwriting real data.
- Share server binds to a real LAN interface (skips virtual/VPN/container,
  prefers physical NICs and common ranges).
- Generated export names get millisecond + random suffix to avoid same-second
  overwrite.
- PNG validator accepts the encoder's Uint8Array so agent solid-color frames
  aren't rejected.

* Address review: crash-safe frame writes, server startup, APNG first frame

- Write the PNG before mutating project metadata on add/duplicate, and delete
  after persisting, so an interrupted disk op can't dangle a reference or
  advance unsaved state.
- Evict a project from the in-memory cache if its save fails, so a transient
  write error can't desync the live session from disk.
- Reject on the loopback server's listen error and drop a half-initialized
  instance so startup failures clean up and can retry.
- Normalize APNG dispose_op PREVIOUS to BACKGROUND on the first animated frame
  (spec requirement).
- Release decoded ImageBitmaps after use so a large upload batch doesn't retain
  native image memory.
- Surface otherwise-silent async UI failures via a toast; check the state
  response is ok before parsing it.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-13 09:53:55 +10:00
github-actions[bot] f8d98b41d1 [bot] Add GPT-5.6, /refine command, plugin dashboard, and v1.0.70 features to Learning Hub (#2258)
* docs: update Learning Hub with v1.0.69-v1.0.70 Copilot features

- Add GPT-5.6 model to building-custom-agents.md model table (v1.0.70+)
- Add /refine command documentation to copilot-configuration-basics.md (v1.0.70+)
- Add --sandbox/--no-sandbox startup flags to copilot-configuration-basics.md (v1.0.70+)
- Add .github/copilot/settings.json trusted repo model pinning (v1.0.70+)
- Add SHA pinning for marketplace registrations to installing-and-using-plugins.md (v1.0.70+)
- Add /plugins interactive dashboard to installing-and-using-plugins.md (v1.0.69+)

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

* Update website/src/content/docs/learning-hub/installing-and-using-plugins.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Aaron Powell <me@aaron-powell.com>
2026-07-13 09:51:47 +10:00
Aaron Powell 30472ecf0f Harden external plugin gate comment output safety (#2265)
* Harden external plugin gate comment rendering

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

* Fix gate output truncation after HTML escaping

Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
2026-07-10 16:20:01 +10:00
Aaron Powell 1af733e9df Removing the / from the plugin as it's not required (#2260) 2026-07-10 14:37:07 +10:00
Aaron Powell bb4766e226 Fix external plugin gate manifest paths and diagnostics (#2261)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-10 14:31:25 +10:00