Skip to content

Commit 24d108d

Browse files
chore: release v0.19.0
Bump pyproject.toml + uv.lock to 0.19.0 and move the [Unreleased] CHANGELOG block to [0.19.0] - 2026-06-09 with one 'so what' entry per merged PR. Lint mirror green locally (ruff check + format, pylint R0801, auth-signals). Post-merge: tag v0.19.0 to trigger the release workflow. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent d1ad46b commit 24d108d

3 files changed

Lines changed: 44 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,64 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.19.0] - 2026-06-09
11+
1012
### Added
1113

12-
- `apm publish` auto-pack now produces a `.zip` archive (ZIP\_DEFLATED) instead of `.tar.gz`, aligning with the de facto standard used by Anthropic Claude, OpenAI, and Google Gemini agent platforms. The `--tarball` option is renamed to `--zip`. Output filename: `{name}-{version}.zip`.
13-
- `apm publish` auto-pack now includes `README.md`, `CHANGELOG.md`, and `LICENSE` / `LICENCE` (case-insensitive, symlinks excluded) in the flat registry archive, matching npm's behaviour of bundling standard root-level documentation files alongside the package source.
14+
- `apm install <package> --target openclaw` adds OpenClaw as a new experimental
15+
skills consumer target (opt in via `apm experimental enable openclaw`). Skills
16+
deploy to `.agents/skills/<name>/SKILL.md` (project) or
17+
`~/.openclaw/skills/<name>/SKILL.md` (global). (by @sergio-sisternes-epam, #1677)
18+
- `apm publish` auto-pack now includes `README.md`, `CHANGELOG.md`, and `LICENSE` / `LICENCE` (case-insensitive, symlinks excluded) in the flat registry archive, matching npm's behaviour of bundling standard root-level documentation files alongside the package source. (by @nadav-y, #1695)
1419
- `apm install` now surfaces per-event hook action summaries as it integrates
1520
hook primitives, with the fully rewritten hook JSON shown under `--verbose`,
1621
so you can audit exactly what each hook runs at install time. The summary is
1722
built from the post-rewrite data actually written to disk and executed -- it
1823
faithfully reflects on-disk content across Copilot, Claude, and Gemini
1924
targets (including OS-specific `windows`/`linux`/`osx` hook keys). (by
20-
@harshitlarl, closes #316)
25+
@harshitlarl, closes #316, #1700)
26+
27+
### Changed
28+
29+
- **BREAKING:** `apm publish` auto-pack now produces a `.zip` archive (ZIP\_DEFLATED) instead of `.tar.gz`, aligning with the de facto standard used by Anthropic Claude, OpenAI, and Google Gemini agent platforms. The `--tarball` option is renamed to `--zip`. Output filename: `{name}-{version}.zip`. (by @nadav-y, #1695)
30+
- `MCPDependency.from_dict()` now emits a `[!]` warning naming every unknown
31+
key dropped during parsing (e.g. harness-specific fields like `oauth`) instead
32+
of discarding them silently, making forward-compat config mismatches
33+
diagnosable. (#1674)
34+
- Auth credential cascade now emits debug-level logs for every fallback step,
35+
making token misconfiguration diagnosable without adding noise to normal output.
36+
Enable with ``apm --verbose`` or ``APM_LOG_LEVEL=DEBUG``.
37+
(by @danielmeppiel, closes #935, #1664)
2138

2239
### Fixed
2340

2441
- `apm install` now falls back to an AAD bearer token (via `az login`) when no
2542
`ADO_APM_PAT` is configured for Azure DevOps file downloads, and fail-closes
2643
when ADO returns an interactive HTML sign-in page with HTTP 200 instead of
27-
writing corrupt HTML to disk. (by @danielmeppiel, closes #1671)
44+
writing corrupt HTML to disk. (by @danielmeppiel, closes #1671, #1675)
2845
- `apm install` now splits FQDN monorepo subpath shorthand on GitHub
2946
Enterprise Server hosts. With `GITHUB_HOST` set, a dependency string like
3047
`ghe.example.com/org/repo/packages/skill` resolves to `git: org/repo` plus
3148
`path: packages/skill` instead of embedding the whole subpath into the clone
32-
URL. (by @sergio-sisternes-epam, closes #1673)
49+
URL. (by @sergio-sisternes-epam, closes #1673, #1684)
50+
- `apm compile` now keeps instruction content in `AGENTS.md` for non-Copilot
51+
targets (Codex, OpenCode, Windsurf) instead of suppressing it whenever
52+
`.github/instructions/` contains `.md` files, so those targets no longer lose
53+
their instructions. (by @sergio-sisternes-epam, closes #1678, #1685)
54+
- `apm install` now unwraps the `{ "lspServers": { ... } }` envelope in plugin
55+
`.lsp.json` files instead of silently skipping them with a misleading
56+
validation error. (by @sergio-sisternes-epam, closes #1683, #1686)
3357
- `apm install` now preserves transitive dependencies declared in `apm.yml`
3458
when installing dual-format packages (those colocating `plugin.json` with
3559
`apm.yml`) from the marketplace or a remote subdirectory, instead of silently
3660
dropping them when the synthesized manifest overwrote the file. A malformed
3761
existing `apm.yml` now also surfaces a warning instead of failing silently.
38-
(by @sergio-sisternes-epam, closes #1666)
62+
(by @sergio-sisternes-epam, closes #1666, #1687)
63+
- `apm audit` external skill-scanner UX is clearer, with improved messaging and
64+
error handling around external scanners. (by @sergio-sisternes-epam, #1692)
65+
- `install.sh` now validates `APM_LIB_DIR` before running `rm -rf`, preventing
66+
data loss when the override points at a directory holding unrelated
67+
application data. (by @dohwi, closes #1690, #1694)
3968
- `apm install` now preserves scoped MCP package config keys such as
4069
`@playwright/mcp` across Claude, Codex, and Copilot harness configs instead
4170
of truncating them to `mcp`. (#1699)
@@ -46,28 +75,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4675
`.cursor/rules`, `.windsurf/rules`) tracked in `managed_files` and rewrites
4776
them when the source instruction changes, instead of mis-classifying them as
4877
user-authored collisions and skipping them; also fixes a mislabeled
49-
`windsurf_rules` entry in install output. (by @srid, closes #1662)
78+
`windsurf_rules` entry in install output. (by @srid, closes #1662, #1665)
5079
- `apm install <local-path>` now dereferences in-package symlinks into regular
5180
files so that local and remote installs produce consistent output. Symlinks
5281
whose resolved target escapes the package root hard-fail with a
5382
`PathTraversalError`; circular directory-symlink chains and unreadable
5483
package directories are detected deterministically. Previously, in-package
5584
symlinks were silently dropped by the downstream deploy filter. (by
56-
@danielmeppiel, closes #1668)
85+
@danielmeppiel, closes #1668, #1676)
86+
- `apm install --skill <name>` is now honored for non-package skill-collection
87+
installs (plugin-manifest collections), promoting only the selected skills
88+
instead of the entire set; both leaf names and nested manifest paths are
89+
accepted. (by @danielmeppiel, closes #1707, #1709)
5790
- `apm install` no longer rewrites `apm.lock.yaml` when a project combines a
5891
remote APM dependency with unchanged local `.apm/instructions` content.
59-
(by @danielmeppiel, closes #1702)
60-
61-
### Changed
62-
63-
- `MCPDependency.from_dict()` now emits a `[!]` warning naming every unknown
64-
key dropped during parsing (e.g. harness-specific fields like `oauth`) instead
65-
of discarding them silently, making forward-compat config mismatches
66-
diagnosable. (addresses #1670)
67-
- Auth credential cascade now emits debug-level logs for every fallback step,
68-
making token misconfiguration diagnosable without adding noise to normal output.
69-
Enable with ``apm --verbose`` or ``APM_LOG_LEVEL=DEBUG``.
70-
(by @danielmeppiel, closes #935, #1664)
92+
(by @danielmeppiel, closes #1702, #1710)
7193

7294
## [0.18.0] - 2026-06-04
7395

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "apm-cli"
7-
version = "0.18.0"
7+
version = "0.19.0"
88
description = "MCP configuration tool"
99
readme = "README.md"
1010
requires-python = ">=3.10"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)