diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index d8741b31..68e47b91 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -13,7 +13,7 @@ "name": "agentops-accelerator", "source": "../../plugins/agentops", "description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Toolkit and Microsoft Foundry agents.", - "version": "0.16.0", + "version": "0.16.1", "keywords": [ "agentops", "evaluation", diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json index d8741b31..68e47b91 100644 --- a/.github/plugin/marketplace.json +++ b/.github/plugin/marketplace.json @@ -13,7 +13,7 @@ "name": "agentops-accelerator", "source": "../../plugins/agentops", "description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Toolkit and Microsoft Foundry agents.", - "version": "0.16.0", + "version": "0.16.1", "keywords": [ "agentops", "evaluation", diff --git a/CHANGELOG.md b/CHANGELOG.md index 91e08f85..a54c8a7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres ## [Unreleased] +## [0.16.1] - 2026-11-06 + ### Changed - **Refresh locked Python dependencies.** Update `aiohttp`, `certifi`, `filelock`, `mcp`, `multidict`, `nltk`, `oauthlib`, and the OpenTelemetry @@ -16,6 +18,12 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres Trusted Publishing, and the stable Marketplace approval gate. - **Refresh documentation tooling.** Update `mkdocs-material` to 9.8.0. +### Fixed +- **Register every bundled VS Code skill.** Align the extension's `chatSkills` + manifest with the seven canonical skills already packaged, registering + `agentops-agent` and `agentops-governance` and removing references to three + absent legacy skills. Add a contract check to prevent manifest drift. + ### Removed - **Automatic issue type classification.** Remove the repository's optional issue-classification workflow and its generated files. New issues are no diff --git a/docs/whats-new.md b/docs/whats-new.md index 514b6266..c52d16f4 100644 --- a/docs/whats-new.md +++ b/docs/whats-new.md @@ -1,3 +1,8 @@ +--- +hide: + - navigation +--- + # AgentOps What's new Explore major updates by month, or read the [full GitHub release notes](https://github.com/Azure/agentops/releases) for all changes and fixes. @@ -13,7 +18,6 @@ Explore major updates by month, or read the [full GitHub release notes](https:// | Release | Highlights | | --- | --- | | [v0.15.0](https://github.com/Azure/agentops/releases/tag/v0.15.0) | Added recipe-based [azd evaluation integration](evaluation.md#delegating-to-azd) for `azd ai eval`, preserving AgentOps results and threshold gates without changing existing `azd ai agent eval` recipes. The new path requires the preview `azure.ai.evaluations` extension, which was not yet publicly available at release. | -| [v0.14.0](https://github.com/Azure/agentops/releases/tag/v0.14.0) | Removed hosted Cockpit, `agentops cockpit deploy`, the Observe UI and its APIs. Use the [local, read-only Cockpit](operate.md#cockpit) for readiness and evaluation history, and [Foundry or Azure Monitor](foundry-ops-workbook.md) for runtime observability. | ## August 2026 diff --git a/mkdocs.yml b/mkdocs.yml index bbd94ac8..c3567580 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -71,7 +71,6 @@ markdown_extensions: emoji_generator: !!python/name:material.extensions.emoji.to_svg nav: - Overview: index.md - - What's new: whats-new.md - Concepts: concepts.md - Tutorials: - Overview: tutorials.md @@ -93,6 +92,7 @@ nav: - Retrieval Optimization: retrieval-optimization.md - Doctor Checks: doctor-checks.md - Doctor Explained: doctor-explained.md + - What's new: whats-new.md - Contributing: - How It Works: how-it-works.md - Release Process: release-process.md diff --git a/plugins/agentops/package.json b/plugins/agentops/package.json index 671c4a3f..3b95e392 100644 --- a/plugins/agentops/package.json +++ b/plugins/agentops/package.json @@ -2,7 +2,7 @@ "name": "agentops-accelerator", "displayName": "AgentOps Accelerator — Skills for GitHub Copilot", "description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Accelerator and Microsoft Foundry agents.", - "version": "0.16.0", + "version": "0.16.1", "publisher": "AgentOpsAccelerator", "icon": "icon.png", "license": "MIT", @@ -43,13 +43,10 @@ "path": "./skills/agentops-report/SKILL.md" }, { - "path": "./skills/agentops-regression/SKILL.md" + "path": "./skills/agentops-agent/SKILL.md" }, { - "path": "./skills/agentops-trace/SKILL.md" - }, - { - "path": "./skills/agentops-monitor/SKILL.md" + "path": "./skills/agentops-governance/SKILL.md" }, { "path": "./skills/agentops-workflow/SKILL.md" diff --git a/plugins/agentops/plugin.json b/plugins/agentops/plugin.json index 972c0f29..89753fa7 100644 --- a/plugins/agentops/plugin.json +++ b/plugins/agentops/plugin.json @@ -1,7 +1,7 @@ { "name": "agentops-accelerator", "description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Accelerator and Microsoft Foundry agents.", - "version": "0.16.0", + "version": "0.16.1", "author": { "name": "AgentOps Accelerator", "url": "https://github.com/Azure/agentops" diff --git a/tests/unit/test_skills_sync.py b/tests/unit/test_skills_sync.py index 3b4d341c..01609e22 100644 --- a/tests/unit/test_skills_sync.py +++ b/tests/unit/test_skills_sync.py @@ -8,6 +8,7 @@ scripts/sync-skills.ps1 (Windows) """ +import json from pathlib import Path # Repository root is four levels up from this test file (tests/unit/test_skills_sync.py). @@ -43,6 +44,20 @@ def test_all_skills_present_in_plugin() -> None: ) +def test_vsix_manifest_registers_all_bundled_skills() -> None: + package = json.loads( + (_PLUGIN_SKILLS.parent / "package.json").read_text(encoding="utf-8") + ) + declared_paths = [skill["path"] for skill in package["contributes"]["chatSkills"]] + expected_paths = {f"./skills/{name}/SKILL.md" for name in _skill_dirs()} + + assert expected_paths, "No canonical skills found" + assert len(declared_paths) == len(set(declared_paths)), "Duplicate skill registrations" + assert set(declared_paths) == expected_paths + for path in declared_paths: + assert (_PLUGIN_SKILLS.parent / path).is_file(), f"Registered skill missing: {path}" + + def test_skill_contents_match() -> None: """Content of each SKILL.md must be identical between src/ and plugins/.""" src_skills = _skill_dirs()