chore(release): cut 0.9.4#978
Conversation
CHANGELOG entry for 0.9.4 covers all 7 PRs merged since v0.9.3: - #974 SKILL_BUNDLE day-0 install parity (Added) - #954 automate apm-triage-panel workflow (Added) - #970 python-architect mermaid classDiagram trap (Changed) - #911 REQUESTS_CA_BUNDLE TLS validation (Fixed) - #971 triage-panel project-sync dispatch (Fixed) - #910 CLI consistency cleanup (Fixed) - #958 issue templates label taxonomy (Fixed) - #953 docs auto-deploy after bot-cut releases (Fixed) Open milestone 0.9.4 issues (41) reassigned to 0.9.5. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Cuts the 0.9.4 release by updating the project version and finalizing the changelog entries for the 0.9.4 shipped PRs.
Changes:
- Bump
apm-cliversion from0.9.3to0.9.4inpyproject.toml. - Promote
[Unreleased]entries into a new## [0.9.4] - 2026-04-27section inCHANGELOG.md, keeping[Unreleased]empty for the next cycle.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Updates package version to 0.9.4 for the release cut. |
| CHANGELOG.md | Adds the 0.9.4 release section and assigns the shipped PR entries to it. |
Copilot's findings
- Files reviewed: 2/2 changed files
- Comments generated: 2
| [project] | ||
| name = "apm-cli" | ||
| version = "0.9.3" | ||
| version = "0.9.4" |
There was a problem hiding this comment.
pyproject.toml bumps the project version to 0.9.4, but uv.lock still contains an editable apm-cli entry at version 0.9.3. Please regenerate/update uv.lock so the lockfile metadata stays consistent with the project version (this repo appears to track the project itself inside uv.lock).
| ### Added | ||
|
|
||
| - **Day-0 install parity with `npx skills add`**: every public repo that installs cleanly with `npx skills add owner/repo` now installs cleanly with `apm install owner/repo`. APM recognises the `skills/<name>/SKILL.md` convention used by `vercel-labs/agent-skills`, `xixu-me/skills`, `larksuite/cli`, and the rest of the agentskills.io ecosystem as a first-class package shape (`SKILL_BUNDLE`). `apm.yml` is OPTIONAL for these packages -- adding it is strictly additive (lockfile + pinning) and never regresses installability. Multi-skill bundles install all skills by default; `--skill <NAME>` (repeatable) selects a subset. The selection is **persisted** in `apm.yml` (`skills:` field) and `apm.lock.yaml` (`skill_subset`), so bare `apm install` is deterministic. Use `--skill '*'` to reset to all skills. `apm audit --ci` detects drift between manifest and lockfile skill subsets. | ||
| - **Day-0 install parity with `npx skills add`**: every public repo that installs cleanly with `npx skills add owner/repo` now installs cleanly with `apm install owner/repo`. APM recognises the `skills/<name>/SKILL.md` convention used by `vercel-labs/agent-skills`, `xixu-me/skills`, `larksuite/cli`, and the rest of the agentskills.io ecosystem as a first-class package shape (`SKILL_BUNDLE`). `apm.yml` is OPTIONAL for these packages -- adding it is strictly additive (lockfile + pinning) and never regresses installability. Multi-skill bundles install all skills by default; `--skill <NAME>` (repeatable) selects a subset. The selection is **persisted** in `apm.yml` (`skills:` field) and `apm.lock.yaml` (`skill_subset`), so bare `apm install` is deterministic. Use `--skill '*'` to reset to all skills. `apm audit --ci` detects drift between manifest and lockfile skill subsets. (#974) |
There was a problem hiding this comment.
The 0.9.4 changelog bullet for #974 is extremely long and reads more like release notes than a Keep-a-Changelog entry. Consider trimming it down to the key user-visible points so the changelog stays scannable and consistent with the "concise, one line per PR" convention used elsewhere in this file.
| - **Day-0 install parity with `npx skills add`**: every public repo that installs cleanly with `npx skills add owner/repo` now installs cleanly with `apm install owner/repo`. APM recognises the `skills/<name>/SKILL.md` convention used by `vercel-labs/agent-skills`, `xixu-me/skills`, `larksuite/cli`, and the rest of the agentskills.io ecosystem as a first-class package shape (`SKILL_BUNDLE`). `apm.yml` is OPTIONAL for these packages -- adding it is strictly additive (lockfile + pinning) and never regresses installability. Multi-skill bundles install all skills by default; `--skill <NAME>` (repeatable) selects a subset. The selection is **persisted** in `apm.yml` (`skills:` field) and `apm.lock.yaml` (`skill_subset`), so bare `apm install` is deterministic. Use `--skill '*'` to reset to all skills. `apm audit --ci` detects drift between manifest and lockfile skill subsets. (#974) | |
| - `apm install` now supports the same public skill repos as `npx skills add`, including `SKILL.md` bundles and persistent `--skill` subset selection for deterministic installs. (#974) |
Refactor per Keep-a-Changelog spirit: lead with developer impact, trim agent-internals prose, group maintainer-only changes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
TL;DR
Cuts release 0.9.4 — bumps
pyproject.toml, finalises theCHANGELOG.mdUnreleased section, and reassigns open0.9.4milestone issues to0.9.5.What ships in 0.9.4
8 PRs merged since
v0.9.3(audited againstgit log v0.9.3..HEAD):Added
npx skills add#974 SKILL_BUNDLE — day-0 install parity withnpx skills add, with--skill <NAME>subset selection persisted inapm.yml+apm.lock. Bareapm installis deterministic across re-runs;apm audit --cidetects manifest↔lockfile drift.apm-triage-panelworkflow — daily oldest-first sweep (max 10 issues) plus on-demandstatus/needs-triagefast path. Recompiles all gh-aw workflows on v0.68.3.Changed
python-architectagent now documents the GitHub-render trap whereclassDiagramrejects inline:::cssClassshorthand on relationship lines.Fixed
install/validation.pyhonoursREQUESTS_CA_BUNDLE.safe-outputs.dispatch-workflow.apm experimental <subcommand> --helpshows subcommand help; flag/help alignment.docs.ymlis nowworkflow_call).Milestone hygiene
0.9.5(Added ghe support #7).0.9.4to0.9.5. The0.9.4milestone now contains only the 4 closed issues that actually shipped, ready to be auto-closed by the release workflow.Validation
git log v0.9.3..HEAD --pretty=format:"%h %s"cross-checked against CHANGELOG entries — every PR mentioned, no orphan commits except the 3 in-flightfix(triage-panel): ...follow-up commits to PR feat(ci): automate apm-triage-panel on new and reopened issues #954, which roll up under feat(ci): automate apm-triage-panel on new and reopened issues #954's entry per Keep-a-Changelog convention.pyproject.tomlversion bumped:0.9.3→0.9.4.[Unreleased]section preserved (empty) for the next release cycle.How to test
git diff main..release/0.9.4 -- CHANGELOG.md pyproject.toml.gh api repos/microsoft/apm/milestones/6 --jq '.open_issues'returns0;gh api repos/microsoft/apm/milestones/7 --jq '.open_issues'returns41.v0.9.4, publishes to PyPI, builds binaries, and (now via fix(ci): deploy docs after bot-cut releases via workflow_call #953) auto-deploys docs.Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com