Releases: microsoft/apm
Releases · microsoft/apm
v0.20.0
What's Changed
🔧 Other Changes
- Add experimental Hermes agent target by @altaranenco in #1726
- fix(deps): allow same-repo remote path deps by @danielmeppiel in #1732
- feat(distribution): add enterprise bootstrap mirrors by @danielmeppiel in #1733
- feat(marketplace): add source parity for marketplace add by @danielmeppiel in #1739
- fix(deps): support multi-host dependency identity by @danielmeppiel in #1735
- feat(bootstrap): fold panel follow-ups for enterprise mirror mode (post-#1733) by @danielmeppiel in #1745
- fix(mcp): honor optional registry inputs by @danielmeppiel in #1734
- feat(marketplace): add sourceBase for package sources by @danielmeppiel in #1736
- feat(deps): update revision pins by @danielmeppiel in #1738
- feat(deps): fetch path-scoped files over git transport instead of host API by @danielmeppiel in #1740
- feat(targets): add Kiro IDE support by @danielmeppiel in #1741
- fix(tests): fix Windows path comparison in TestHermesConfigPath by @sergio-sisternes-epam in #1737
- test: fix Windows-only CI failures across 8 unit tests by @danielmeppiel in #1752
- fix(docs): restore reachability of alternative installation methods page (closes #1748) by @danielmeppiel in #1751
- fix(compile): suppress empty AGENTS.md shells for copilot when instructions already in .github/instructions/ by @tillig in #1742
- fix(install): keep copilot in multi-target --target lists by @Addono in #1749
- fix(compile): remove stale APM-generated CLAUDE.md on --clean when .claude/rules/ is populated by @tillig in #1747
- feat(pack): switch --archive to .zip and add --archive-format zip|tar.gz by @nadav-y in #1720
- fix(marketplace): inherit description/version from local-path apm.yml by @danielmeppiel in #1755
- chore: release v0.20.0 by @danielmeppiel in #1756
- test(integration): refresh stale integration tests after v0.20.0 changes by @danielmeppiel in #1757
- test(release): refresh release-validation harness for v0.20.0 behavior changes by @danielmeppiel in #1758
New Contributors
- @altaranenco made their first contribution in #1726
- @Addono made their first contribution in #1749
Full Changelog: v0.19.0...v0.20.0
v0.19.0
What's Changed
🔧 Other Changes
- refactor(auth): debug-log all exception handlers in credential cascade (closes #935) by @danielmeppiel in #1664
- fix(install): keep format-transformed rules tracked + in sync (closes #1662) by @srid in #1665
- fix(deps): scope shorthand-alias guard to exclude @ in #ref fragment (closes #1696) by @danielmeppiel in #1698
- fix(install): unwrap lspServers envelope in plugin .lsp.json (closes #1683) by @sergio-sisternes-epam in #1686
- fix(compile): target-aware instruction dedup for Codex AGENTS.md (closes #1678) by @sergio-sisternes-epam in #1685
- fix(mcp): preserve scoped server names when materializing harness configs (closes #1693) by @danielmeppiel in #1699
- feat: add openclaw as experimental skills target by @sergio-sisternes-epam in #1677
- fix: external scanner UX improvements by @sergio-sisternes-epam in #1692
- fix(deps): preserve transitive dependencies in marketplace and remote subdir installs (closes #1666) by @sergio-sisternes-epam in #1687
- fix(install): support FQDN monorepo subpath on GHES hosts (closes #1673) by @sergio-sisternes-epam in #1684
- fix(deps): add AAD bearer fallback and HTML sign-in detection in download_ado_file (closes #1671) by @danielmeppiel in #1675
- feat: warn on unknown keys dropped in MCPDependency.from_dict() by @danielmeppiel in #1674
- Add Nadav Yogev (JFrog) to maintainers by @danielmeppiel in #1704
- feat(publish): switch publish command archive format from tar.gz to zip by @nadav-y in #1695
- fix(install): honor --skill subset on non-package skill-collection install (closes #1707) by @danielmeppiel in #1709
- fix(install): skip lockfile rewrite when local instructions content is unchanged (closes #1702) by @danielmeppiel in #1710
- fix(install): validate APM_LIB_DIR before rm -rf to prevent data loss (closes #1690) by @dohwi in #1694
- fix(install): dereference in-package symlinks on local install (#1668) by @danielmeppiel in #1676
- feat: surface installed hook actions during apm install (closes #316) by @danielmeppiel in #1700
- Fix Windows CRLF handling in install safety tests by @danielmeppiel in #1717
- fix(tests): skip install.sh safety tests when POSIX bash is unavailable by @danielmeppiel in #1719
- fix(install): cover skill bundles with per-file content-integrity + target-scoped union manifest (closes #1716) by @danielmeppiel in #1718
- fix(apm-review-panel): guarantee non-empty turn exit via synchronous fan-out by @danielmeppiel in #1714
- chore: release v0.19.0 by @danielmeppiel in #1715
New Contributors
Full Changelog: v0.18.0...v0.19.0
v0.18.0
What's Changed
🔧 Other Changes
- feat(marketplace): add audit command to flag deps that bypass marketplace pinning by @edenfunf in #881
- fix(deps): reject shorthand alias syntax (supersedes #1301) by @danielmeppiel in #1655
- feat(outdated): support monorepo tag nameing convention by @kevinbeier-enbw in #1504
- fix(compile): match applyTo globs without following symlinks into node_modules by @srid in #1576
- feat(deps): support marketplace dependencies in plugin.json by @stbenjam in #1422
- feat(lsp): add first-class LSP server support to install pipeline by @stbenjam in #1424
- fix(intellij): preserve env-var placeholders in mcp.json (closes #1656) by @danielmeppiel in #1659
- fix(deps): resolve semver ranges against per-package subpath tags (closes #1633) by @danielmeppiel in #1658
- fix(install): rewrite outbound relative links from skill bundles (closes #1625) by @danielmeppiel in #1657
- chore: release v0.18.0 by @danielmeppiel in #1661
New Contributors
- @kevinbeier-enbw made their first contribution in #1504
Full Changelog: v0.17.0...v0.18.0
v0.17.0
What's Changed
🔧 Other Changes
- fix(publish): clarify --package is required and update docs by @nadav-y in #1562
- refactor(pack)!: remove deprecated --marketplace-output flag (#1318) by @danielmeppiel in #1585
- feat(compile): make source-attribution comments opt-in to cut token overhead by @danielmeppiel in #1584
- Extract shepherd-driver engine, rewire skill packages, and harden local-dep drift replay by @danielmeppiel in #1578
- feat(autopilot): author PR bodies via pr-description-skill + post panel outcome per shepherd run by @danielmeppiel in #1598
- fix: dedup parity for Copilot AGENTS.md vs .github/instructions/ by @danielmeppiel in #1590
- feat: managed-section mode for AGENTS.md updates by @danielmeppiel in #1589
- fix: send auth header for GitHub release lookup in installer and self-update by @danielmeppiel in #1588
- fix: skip .gitignore update for global scope installs by @danielmeppiel in #1587
- feat: apm install -g deploys copilot instructions to ~/.copilot/copilot-instructions.md by @danielmeppiel in #1619
- feat: make apm self-update and version-checker respect air-gapped env vars (GITHUB_URL, APM_REPO, VERSION) by @danielmeppiel in #1615
- refactor(models): separate package-format detection into composition model by @danielmeppiel in #1618
- refactor: files_adopted follow-ups from PR #1313 review panel by @danielmeppiel in #1617
- refactor: extract skip_download and locked_ref helpers into _skip_logic.py (#552) by @danielmeppiel in #1614
- fix: polish managed-section error messages by @danielmeppiel in #1609
- fix(auth): expand port hint with git credential fill command and docs URL by @danielmeppiel in #1608
- chore: enable RUF002/RUF003 (ambiguous unicode) and fix 249 violations by @danielmeppiel in #1607
- test(integration): add wiring-invariants guard to close #1166 by @danielmeppiel in #1613
- test: add edge-case coverage for empty and identical managed-section markers by @danielmeppiel in #1602
- docs: add compilation.agents_md sub-object to manifest-schema reference by @danielmeppiel in #1601
- fix: correct broken epilog help reference in apm mcp install by @danielmeppiel in #1604
- docs: clarify install-time discovery rules for marketplace plugins (.apm// vs root convention dirs) by @danielmeppiel in #1603
- docs: remove flake8/black from hello-world python template by @danielmeppiel in #1600
- fix(pack): emit amend+force-with-lease recovery recipe on --check-clean drift by @danielmeppiel in #1610
- feat(compile): add --no-dedup / --force-instructions flag for claude target by @danielmeppiel in #1616
- feat(init): suggest agentrc in Next Steps when no instructions exist by @danielmeppiel in #1611
- perf: skip re-download when callback SHA matches remote in --update mode (#551) by @danielmeppiel in #1612
- feat: deploy bin/ executables for marketplace_plugin packages to ~/.claude/skills//bin/ by @danielmeppiel in #1591
- feat(audit): vendor-agnostic external SARIF scanner ingestion (experimental) by @sergio-sisternes-epam in #1579
- feat(pack): generate plugin.json for Claude and Copilot ecosystems by @sergio-sisternes-epam in #1623
- feat(install, compile):
--root DIRto redirect writes while sources resolve from $PWD by @danielmeppiel in #1628 - harden(plugin-bin): restrict deployed bin/ executables to user-only execute (Item 3 from #1620) by @danielmeppiel in #1626
- feat(apm.yml): support homepage, repository, keywords, and structured author fields by @danielmeppiel in #1624
- fix: surface file-missing error before marker search in managed_section mode by @danielmeppiel in #1606
- feat: make apm update a superset of apm deps update by @Aaryan-Dadu in #1574
- test(integration): add hermetic e2e for Artifactory VCS proxy install (closes #1228) by @danielmeppiel in #1630
- chore: audit F401 noqa suppressions -- remove dead imports, document re-exports by @danielmeppiel in #1643
- feat(config): add
apm config set/get/unset mcp-registry-urlby @danielmeppiel in #1637 - feat: target-aware hook event diagnostics by @danielmeppiel in #1635
- feat: apm find -- trace a deployed file back to its contributing package(s) by @danielmeppiel in #1631
- Add integration tests for install-time audit policy floor (#1642) by @sergio-sisternes-epam in #1646
- fix(parser): normalize list-valued applyTo and parse handoffs in agent frontmatter by @danielmeppiel in #1629
- test(integration): repair stale integration-test drift from recent refactors by @danielmeppiel in #1648
- feat(mcp): add IntelliJ/JetBrains as an MCP install target by @danielmeppiel in #1636
- test(integration): fix guardrailing hero E2E against distributed-compile model by @danielmeppiel in #1651
- refactor: Strangler Stage 1 -- tame worst complexity outliers by @sergio-sisternes-epam in #1464
- add(lock): resolve deps and write apm.lock.yaml without deploying files by @danielmeppiel in #1639
- fix(lock): always write apm.lock.yaml and repair local-dep e2e syntax by @danielmeppiel in #1652
- test: add integration tests for external scanner edge cases by @sergio-sisternes-epam in #1638
- fix: pass --no-llm to SkillSpector and handle non-JSON stdout by @sergio-sisternes-epam in #1645
- fix: strip ANSI escape codes from external SARIF message text by @sergio-sisternes-epam in #1644
- feat(security): external scanner configuration surface (SkillSpector LLM) by @sergio-sisternes-epam in #1647
- chore: release v0.17.0 by @danielmeppiel in #1653
Full Changelog: v0.16.1...v0.17.0
v0.16.1
What's Changed
🔧 Other Changes
- docs: corpus-wide factual regrounding + reference sidebar IA fix by @danielmeppiel in #1531
- feat(cli): promote 'marketplace doctor' to top-level 'apm doctor' (+ workflow discoverability) by @danielmeppiel in #1539
- perf(install): memoize discovery, drop per-file resolve, expand skip dirs (#1533) by @danielmeppiel in #1538
- fix(panels): unbreak panel workflows -- gh-aw v0.76+ harvests expression tokens from bash comments by @danielmeppiel in #1545
- fix(install): honor targets: (plural) without singular target: present (closes #1503) by @danielmeppiel in #1560
- fix: honor explicit global install refs (closes #1555) by @danielmeppiel in #1559
- perf(integrate): narrow project-scope local discovery to .apm/ to avoid full-tree walks (closes #1507) by @danielmeppiel in #1554
- fix(git-env): strip LD_LIBRARY_PATH from git subprocess env to prevent shared lib conflicts by @pngdeity in #1536
- docs: surface compilation.strategy=distributed default in concepts and compile reference (closes #1447) by @danielmeppiel in #1551
- fix(uninstall): scan devDependencies.apm so --dev installs can be removed (closes #1549) by @danielmeppiel in #1552
- fix(install): skip cache for unpinned virtual deps when on-disk hash matches lockfile (closes #1548) by @danielmeppiel in #1553
- fix: preserve executable permission bits on install (closes #1563) by @danielmeppiel in #1566
- fix: dedup deployed_files and scope --update to named packages (closes #1558) by @danielmeppiel in #1567
- fix: deterministic lockfile for unchanged MCP deps (closes #1532) by @danielmeppiel in #1568
- fix: install summary reflects actual changes on no-op runs (closes #1557) by @danielmeppiel in #1569
- fix: deploy prompts for user-scope copilot installs (closes #1482) by @danielmeppiel in #1570
- feat(skills): add cut-release skill by @danielmeppiel in #1527
- chore: release v0.16.1 by @danielmeppiel in #1572
- ci: fix macOS release integration-test 20min timeout by @danielmeppiel in #1575
New Contributors
Full Changelog: v0.16.0...v0.16.1
v0.16.0
What's Changed
🔧 Other Changes
- feat(policy): require_pinned_constraint to ban unbounded dep ranges by @danielmeppiel in #1494
- test(policy): e2e integration tests for require_pinned_constraint (follow-up to #1494) by @danielmeppiel in #1505
- feat(deps): add 'apm deps why ' to explain transitive dependencies by @danielmeppiel in #1495
- fix(policy): classify '=1.2.3' explicit-equality as pinned constraint by @danielmeppiel in #1506
- feat(deps): resolve semver ranges on git-source dependencies by @danielmeppiel in #1496
- chore: remove stale plan.md from repo root by @danielmeppiel in #1510
- fix(artifactory): deterministic boundary probe for nested GitLab paths by @chkp-roniz in #1472
- fix(install): repair -g hook integration across claude/cursor/copilot (closes #1499) by @danielmeppiel in #1516
- fix(install): honor SSH scheme for GitLab refs in validation (closes #1501) by @danielmeppiel in #1515
- fix(compile): honor compilation.strategy=single-file for CLAUDE.md (closes #1445) by @danielmeppiel in #1514
- fix(opencode): validate-and-warn on incompatible agent frontmatter at install (Phase 1 of #581) by @danielmeppiel in #1513
- fix(install): use %LOCALAPPDATA% literal in Windows shim (closes #1509) by @danielmeppiel in #1512
- docs: backfill apm-usage and consolidate registry guides (v0.14->v0.15 drift sweep) by @danielmeppiel in #1511
- Fix/windsurf uninstall skills cleanup by @yoelabril in #1486
- docs(skills): correct outdated windsurf-convergence status, link #1520 by @danielmeppiel in #1521
- feat(batch-bug-shepherd): recommendation-fold loop + Copilot+CI gates + mergeability table by @danielmeppiel in #1518
- fix(install): write apm.cmd shim as ASCII (cmd.exe cannot parse UTF-16LE) by @danielmeppiel in #1522
- fix(install): strip non-ASCII bytes from install.ps1 (unblocks self-update on cp1252 consoles) by @danielmeppiel in #1523
- spec: introduce OpenAPM v0.1 (closes #1502) by @danielmeppiel in #1517
- chore: release v0.16.0 by @danielmeppiel in #1526
Full Changelog: v0.15.0...v0.16.0
v0.15.0
What's Changed
🔧 Other Changes
- fix: handle MCP v0.1 runtimeArguments.variables in copilot and codex adapters by @sergio-sisternes-epam in #1461
- perf(scaling-guards): add variant-key and cache-lookup guards, wire to CI integration gate by @sergio-sisternes-epam in #1439
- fix(triage-panel): add DIFC read-integrity exemption for external issues by @sergio-sisternes-epam in #1462
- fix: resolve 3 flaky integration tests blocking merge queue by @sergio-sisternes-epam in #1477
- fix(install): honour spec drift in BFS resolve callback by @sergio-sisternes-epam in #1473
- fix(mcp): rewrite skill-shipped MCP command paths for the Claude target by @srid in #1465
- feat(marketplace): support local paths, file:// URIs, and generic git hosts by @sergio-sisternes-epam in #1476
- fix: add support for custom github endpoints (host.tld/owner/repo) as apm.yml entrypoint for command apm pack (marketplace) by @abi-jey in #1288
- feat(registry): [FEATURE] Add package registry support for dependency… by @nadav-y in #1471
- fix(marketplace): handle Windows file:// URI shapes in _local_path_from_source by @danielmeppiel in #1484
- fix(install): block bare cross-repo on enterprise marketplaces (#1326) by @edenfunf in #1459
- fix(compile): live-reload apm.yml and warn on --clean --watch by @edenfunf in #1403
- feat: persist transport flags via apm config by @Aaryan-Dadu in #1308
- fix(compile): deduplicate Claude Code instructions (#1138) by @tillig in #1146
- refactor(cli): clean up compilation config and registry cursor by @altf4-games in #1367
- fix(triage-panel): replace invalid difc: block with tools.github.min-integrity by @danielmeppiel in #1487
- test(codeql): fix 30 py/incomplete-url-substring-sanitization alerts by @danielmeppiel in #1492
- chore: cut 0.15.0 by @danielmeppiel in #1493
New Contributors
- @nadav-y made their first contribution in #1471
- @Aaryan-Dadu made their first contribution in #1308
- @altf4-games made their first contribution in #1367
Full Changelog: v0.14.2...v0.15.0
v0.14.2
What's Changed
🔧 Other Changes
- test(coverage): enforce 75% unit gate and push integration to 60% by @sergio-sisternes-epam in #1414
- add(coverage): Phase 3 -- unit 88% / integration 71% by @sergio-sisternes-epam in #1417
- add(coverage): raise unit and integration gates to 90% with phase-3 + phase-4 tests by @sergio-sisternes-epam in #1425
- test: replace logic-replay tests for #763 with real-flow coverage by @mvanhorn in #1340
- fix: preflight via ssh on ssh based connections (closes #1293) by @Alpha200 in #1303
- fix: support Streamable HTTP MCP servers for Codex CLI (closes #1260) by @masaishi in #1262
- fix: resolve env-var placeholders in Codex/Gemini self-defined stdio MCP (closes #1266) by @edenfunf in #1277
- fix(hooks): stabilize root .apm hook source-ids across renames/worktrees (supersedes #1330, closes #1329) by @danielmeppiel in #1392
- fix(tests): make Windows unit-test job green by @danielmeppiel in #1427
- fix(ado): resolve az binary via shutil.which for Windows az.cmd (closes #1430) by @danielmeppiel in #1432
- feat(copilot-app): hybrid WS-IPC + SQLite project scoping for workflows by @danielmeppiel in #1431
- ci: shard PR tests + move binary build off critical path by @danielmeppiel in #1437
- perf(#1433): sparse-cone consumer materialization for subdir deps by @danielmeppiel in #1436
- fix(copilot-app): warn-not-fail on newer App schema + feat: batch-bug-shepherd primitive by @danielmeppiel in #1434
- fix(compile): discover local-bundle instructions in apm_modules/ by @danielmeppiel in #1388
- fix(cache): handle ValueError from parsed.port on Windows file:// URLs by @danielmeppiel in #1446
- fix(integration): respect comma-separated applyTo globs in Claude/Cursor/Windsurf by @danielmeppiel in #1387
- fix(build): restore optimize=2 + enforce explicit Click help= to clear Defender ML false positive (#1407) by @danielmeppiel in #1450
- fix(hooks): keep project-scope hook commands repo-relative (closes #1394) by @srid in #1396
- fix(detect): expand copilot harness markers to file-based signals (#1435) by @sergio-sisternes-epam in #1440
- fix(audit): pre-create target dirs in drift replay scratch (#1411) by @sergio-sisternes-epam in #1441
- fix(install): persist --skill filter to apm.yml (#1395) by @sergio-sisternes-epam in #1442
- fix(vscode): handle v0.1 runtimeArguments with variables for Docker MCP (#1391) by @sergio-sisternes-epam in #1444
- fix(plugin): prevent _map_plugin_artifacts from destroying pre-positioned .apm/ content by @abi-jey in #1416
- fix(applyTo): fold #1387 panel follow-ups (docs + DRY + YAML escape) by @danielmeppiel in #1449
- feat(batch-bug-shepherd): operator visibility + fold-in invariant by @danielmeppiel in #1451
- fix(mcp): honour per-dep registry URL during install (#1393) by @sergio-sisternes-epam in #1443
- chore: release v0.14.2 by @danielmeppiel in #1454
- fix(ci): repair Windows-only unit test failures after v0.14.2 by @danielmeppiel in #1455
- fix(cache): apply core.longpaths to post-clone git ops on Windows by @danielmeppiel in #1456
- test(integration): unstick 23 stale tests that drift from production code by @danielmeppiel in #1457
New Contributors
Full Changelog: v0.14.1...v0.14.2
v0.14.1
What's Changed
🔧 Other Changes
- docs(producer): add zava-agent-config as live golden-path reference by @danielmeppiel in #1384
- fix(deps): honor SSH user from dependency URL (closes #1383) by @danielmeppiel in #1385
- docs(changelog): add #1383 SSH user fix entry by @danielmeppiel in #1386
- fix(install): survive AppLocker/WDAC by staging release before binary test (#1389) by @danielmeppiel in #1390
- fix(ci): wire coverage observability into CI pipelines (Phase 1) by @sergio-sisternes-epam in #1404
- fix(install): detect Windows Defender AV block and emit specific guidance by @danielmeppiel in #1408
- feat(experimental):
copilot-apptarget deploys scheduled prompts to App DB by @danielmeppiel in #1405 - chore(release): v0.14.1 by @danielmeppiel in #1410
- fix(uninstall): accept Windows absolute paths as local packages (re-tag v0.14.1) by @danielmeppiel in #1413
Full Changelog: v0.14.0...v0.14.1
v0.14.0
What's Changed
🔧 Other Changes
- docs: full rewrite -- persona-led ramps + 3-promise narrative by @danielmeppiel in #1252
- docs: fix all redirect destinations to include /apm base path by @danielmeppiel in #1284
- fix: marketplace install auth host on *.ghe.com (closes #1285) by @edenfunf in #1292
- fix(ci): use audit-only pattern to prevent install overwriting tamper (closes #1202) by @sergio-sisternes-epam in #1291
- fix(policy): layer dependencies.require through extends: org (closes #1201) by @sergio-sisternes-epam in #1290
- fix: warn when apm.yml is missing but APM artifacts exist (closes #1056) by @sergio-sisternes-epam in #1255
- fix(build): keep Click command docstrings in release binaries by @edenfunf in #1307
- fix(audit): drift check skip-with-info on cache miss (closes #1200) by @sergio-sisternes-epam in #1289
- feat(install): air-gapped / GHE env vars for install.ps1 by @abhinavgautam01 in #1246
- test(integration): regression trap for *.ghe.com marketplace auth routing (closes #1304) by @edenfunf in #1312
- feat(marketplace): support multi-profile marketplace outputs by @henrydennis in #1281
- fix: apm install no longer permanently blocked by policy after lockfile wipe (required-packages-deployed catch-22) by @danielmeppiel in #1313
- fix: preserve Claude stdio MCP env by @imk1t in #1224
- feat(marketplace): filter-driven CLI, map-based manifest, JSON output by @danielmeppiel in #1324
- fix(policy): inherit parent unmanaged_files when child omits block by @abhinavgautam01 in #1248
- refactor(integration): extract MCPIntegrator.install by @abhinavgautam01 in #1245
- fix: hint to host-qualify cross-repo on *.ghe.com (closes #1305) by @edenfunf in #1319
- fix(adapters): route Gemini config through project_root and user_scope by @edenfunf in #1306
- chore: add pylint R0801 duplicate code guardrail (Phase 0) by @sergio-sisternes-epam in #1320
- fix(registry): migrate SimpleRegistryClient to MCP Registry v0.1 spec (#1210) by @danielmeppiel in #1337
- fix: respect targets: whitelist for all runtimes during MCP install by @danielmeppiel in #1336
- feat(pack,doctor,init): vendor-neutral producer first-run UX by @danielmeppiel in #1362
- fix: stop writing _apm_source into Claude settings.json by @sergio-sisternes-epam in #1359
- fix: skip direct GitHub API validation when PROXY_REGISTRY_ONLY is set by @sergio-sisternes-epam in #1357
- fix: propagate target to intermediate CompilationConfig in single-file path by @sergio-sisternes-epam in #1355
- fix: resolve hook paths to absolute in settings.json for --target claude by @sergio-sisternes-epam in #1354
- refactor: eliminate duplicate code blocks (phases 1-3) by @sergio-sisternes-epam in #1360
- feat(pack): add --check-versions and --check-clean release gates by @danielmeppiel in #1365
- fix: add --target flag to apm update command by @sergio-sisternes-epam in #1358
- fix(compile): forward target to watch-mode recompile (closes #1345) by @danielmeppiel in #1349
- feat: support marketplace notation in
apm uninstallby @sergio-sisternes-epam in #1325 - fix: prefer APM-managed runtimes over system PATH and warn on codex/GitHub Models incompatibility by @sergio-sisternes-epam in #1356
- feat(cli): introduce
apm plugin initnoun-verb surface by @danielmeppiel in #1370 - Fix shared/apm.md matrix secret-stripping; add empirical verify workflow by @danielmeppiel in #1373
- perf(resolver): tiered git ref resolver collapses redundant clones (#1369) by @danielmeppiel in #1376
- fix: allow tilde in repository path components for Bitbucket DC personal repos (#1375) by @danielmeppiel in #1377
- test(windows): make path assertions and chmod tests OS-aware by @danielmeppiel in #1378
- chore: cut 0.14.0 by @danielmeppiel in #1372
New Contributors
- @abhinavgautam01 made their first contribution in #1246
- @henrydennis made their first contribution in #1281
- @imk1t made their first contribution in #1224
Full Changelog: v0.13.0...v0.14.0