Skip to content

update: bump microsoft/apm to 0.35.0 - #352

Merged
github-actions[bot] merged 1 commit into
masterfrom
renovate/microsoft-apm-0.x
Oct 27, 2026
Merged

github-actions[bot] merged 1 commit into
masterfrom
renovate/microsoft-apm-0.x

Conversation

@renovate

@renovate renovate Bot commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
microsoft/apm minor 0.33.0 → 0.35.0

Release Notes

microsoft/apm

v0.35.0

Compare Source

Added
  • Root replace rules can substitute a local checkout or explicit-ref fork throughout the dependency graph while preserving the original dependency's ownership. This opt-in capability requires the candidate schema selector; its manifest and lock-v3 contracts remain unratified, and older clients may ignore replacement intent. (#​3309)
  • The opt-in manifest-v0.1.48.schema.json candidate accepts supported Git/subpath, registry and MCP declarations rejected by older schemas. Earlier schema resources remain unchanged, and the correction remains a proposal rather than a ratified OpenAPM amendment. (#​3308)
Fixed
  • apm install accepts local .agent.md, .instructions.md and .prompt.md dependencies, with copied snapshots, frozen verification and audit replay matching remote single-file packages. (#​3310)
  • Kiro CLI prompt installs now use .kiro/prompts/<stem>.md at project scope and the corresponding user directory, preserving the command name and prompt body instead of copying unsupported frontmatter. -- by @​DBVamsi (#​3263)
  • Codex compatibility bundles retain their complete plugin tree, resources and MCP declarations through native user-scope install, restore, update, audit and removal. The native route is qualified for Codex CLI 0.163.0 at user scope; existing disabled settings and unrelated user state are preserved. (#​3294)
  • apm install preserves separately owned assets when dependencies share a skill directory and records only files it successfully deploys, preventing reinstall from deleting another package's resources. (#​3313)
  • apm install checks the complete selected skill plan for differing unmanaged files before deploying any dependency, avoiding partial native deployment on a collision. Audit now distinguishes ownership conflicts from managed drift and offers nondestructive recovery. (#​3314)
  • Ordinary apm install retires obsolete claims for already-absent skill files after complete reintegration, so audit no longer demands files the dependency stopped supplying. Present content, other owners, unprocessed targets and frozen protections remain unchanged. (#​3315)
  • Skill installs retain trustworthy local evidence of successfully rendered files, allowing updates after a lockfile checkout and cold frozen replay to replace untouched old content while preserving user edits and foreign ownership. (#​3344)
  • apm install --frozen verifies direct and transitive local dependency snapshots before deployment, refusing changed content or missing trustworthy hashes without modifying managed files or the lockfile. Run an ordinary install to accept a changed local snapshot and record its baseline. -- by @​dajiaohuang (#​3236)
  • Cold apm install --frozen restores pinned remote plugins without a preliminary ordinary install and verifies their actual MCP declarations before activation. (#​3305)
  • apm install --frozen preserves lockfile bytes through late MCP/LSP integration and MCP-only installs, while checking recorded native-service ownership and ignoring inactive orphan lock rows. (#​3307)
  • apm install --dry-run includes locally known required indirect dependencies instead of falsely previewing their files as orphan removals; unavailable subtrees produce an explicit incomplete-preview warning. (#​3302)
  • The first ordinary install after a branch switch records the version from the acquired package snapshot rather than stale metadata at the same installation path. (#​3311)
  • Repeating an unchanged positional apm install preserves apm.yml bytes, pinned refs and metadata instead of treating serialization as an update request; genuine dependency changes still apply. (#​3346)
  • apm install persists changed, cleared or removed root replacement rules even after the final dependency is removed, without fetching dormant sources or cleaning deployed files. (#​3328)
  • Unchanged marketplace reinstalls preserve the existing resolved_at timestamp, keeping otherwise identical lockfile replay byte-stable. (#​3325)
  • Windows install failures retain both the original error and any recovery failures while preserving recoverable prior package data and manifest snapshots. Active staging directories are protected from concurrent cleanup. (#​3318)
  • Lockfile conflict diagnostics name the affected file and explain how to resolve or restore it before retrying the original command, without modifying conflicted bytes. Automatic recovery remains deferred. -- by @​lachieh (#​3028)
  • Git marketplace installs accept versioned plugin directories while rejecting file, symlink and submodule responses during directory validation. -- by @​Pybsama (#​3156)
  • Object-form marketplace dependencies now use locked provenance and selected-version evidence consistently across install, frozen replay and audit, avoiding false ref-consistency failures without fetching today's catalog during audit. -- by @​Fire162 (#​3221)
  • Private GitHub single-file downloads can recover through authenticated Git after API throttling, without letting the earlier API error suppress an independent Git credential retry. (#​3278)
  • apm --version reports a Git revision only when it belongs to the loaded APM checkout, rather than borrowing an unrelated parent repository's SHA, and succeeds without Git installed. (#​3280)
  • apm audit correctly replays native Copilot Agent Plugins, including plugins without apm.yml, instead of reporting false configuration inconsistencies. -- by @​bodapatisaikrishna (#​3257)
  • apm audit preserves recorded Grok Cloud target identity despite unrelated GitHub workflows and verifies retained historical files after target changes instead of falsely reporting them missing. (#​3289)
  • apm audit recognizes Windows short-path spellings of a project checkout, avoiding a false refusal that asks for apm install --global. (#​3316)
  • apm audit accepts intentionally omitted dependency MCP from apm install --only apm or default refusal of transitive self-defined servers, while continuing to detect drift in root and admitted services. (#​3304)
  • Claude and Codex self-defined MCP installs preserve conflicting native user connections and report incomplete configuration instead of claiming success; verified APM-owned updates remain supported. (#​3317)
  • MCP cleanup removes only the exact connections whose ownership is verified, preserving similarly named personal connections and retaining managed ownership across partial installs, registry writes and later conflicts. (#​3329)
  • OpenCode MCP references use native {env:VAR} syntax without saving resolved values; authored literals and registry overlays are preserved. Export referenced variables when launching OpenCode. -- by @​leninworld (#​3303)
  • Codex MCP entries no longer emit the unsupported id setting; reinstalling repairs recorded APM-owned entries while preserving registry identity, user settings and ownership safeguards. -- by @​Pybsama (#​3157)
  • Legacy Claude plugin packing preserves hook scripts and sibling assets, rewrites commands to packed paths and declares hooks in the native manifest; unsafe or excluded resources fail before replacing an existing bundle. (#​3301)
  • Hook-only Git-path packages using hooks/*.json or .apm/hooks/*.json install without a placeholder manifest or skill, and invalid updates preserve the installed source, lockfile and deployment ownership. (#​3282)
  • apm install and apm update no longer fail with Object of type mappingproxy is not JSON serializable when hooks carry nested metadata such as env; Claude, Codex, Gemini and Antigravity keep that metadata as plain JSON. -- by @​abhishekacharya200, with regression coverage from @​MohammedAlkindi (#​3211)
  • apm install writes untyped flat command hooks as Claude "type": "command" handlers, including alongside Claude-shaped hook files. Explicit types and other targets are unchanged; reinstall to refresh existing entries. -- by @​Parth-Vasave (#​3153)
  • The README's starter manifest now declares targets: [copilot], so the documented install works in a fresh project without existing harness markers. -- by @​venkatayedidavs (#​3086)
Security
  • apm audit --ci --policy <path|url|owner/repo> exits 1 when the explicitly selected policy cannot be loaded, rather than passing without enforcement, and JSON/SARIF reports whether a policy was enforced. Correct the named source and retry; auto-discovery and --policy org retain their warn default, and proposed req-pl-021 remains unratified. (#​3230)

v0.34.0

Compare Source

Added
  • APM_EXTRA_CA_BUNDLE adds corporate PEM certificates to APM's package-management HTTPS while retaining default trust roots, so private registries and TLS-inspecting proxies work without replacing the machine trust store. (by @​TameTheGame, closes #​2034, #​2741)
  • Agent primitives (*.agent.md) accept an optional user-invocable: false frontmatter field (alias visibility: internal) to mark an agent as reachable only through handoffs or subagent calls on harnesses that support it. Verbatim-copy targets preserve the field; Codex and Kiro warn instead of silently dropping it. (by @​richard-fowles-epam, closes #​3132, #​3133)
  • apm pack can emit a GitHub Copilot CLI marketplace via marketplace.outputs: {copilot: {}}, preserving local paths, remote subdirectories, tag refs, and full commit pins; Claude and Codex defaults are unchanged. (by @​aryansk, #​2600)
  • New grok-bot install target deploys skill packages to agent-data/workflows/<skill-name>/ at project and user (--global) scope. An explicit --target grok-bot fails only when nothing in the install is compatible; other incompatible dependencies warn. (by @​sergio-sisternes-epam, closes #​3083, #​3106)
  • apm audit --external-args now accepts SkillSpector's --baseline, so reviewed suppression baselines inside the scan directory work through APM. (by @​MohammedAlkindi, closes #​2331, #​2936)
Changed
  • BREAKING: apm install --frozen no longer writes apm.lock.yaml; a frozen install whose lockfile does not record every deployed file now fails and names the missing paths instead of silently repairing the lockfile. If CI starts failing on --frozen after upgrading, run apm install locally and commit the updated apm.lock.yaml. (by @​salpers, closes #​2379, #​2384)
  • Cursor hooks are now written as native v1 events with flat handlers, and a dependency that would activate the same hooks through both native Cursor output and Claude imports fails explicitly. Choose one hook route per dependency; see the supported mappings. (#​3149)
Fixed
  • apm install fails instead of deleting a dependency's skills when its persisted skills: selection no longer matches any available skill, preserving prior files and ownership. (by @​dajiaohuang, closes #​3204, #​3235)
  • apm install now reconciles renamed or deleted project-local skills and removed targets under shared .agents/ roots using recorded ownership, preserving shared claims and user edits. (by @​tillig, #​3190)
  • apm install plugin@marketplace for an in-repository plugin of a github.com marketplace registered over SSH now pre-flights over SSH, so private marketplaces install with an SSH key and no GitHub token. (by @​MohammedAlkindi, closes #​3164, #​3200)
  • apm install -g (including --mcp) configures MCP servers for Cursor (~/.cursor/mcp.json) and OpenCode (~/.config/opencode/opencode.json), and apm uninstall -g removes them; configs APM cannot parse, such as OpenCode JSONC, are left untouched. (by @​alvedder, #​3100)
  • Claude user-scope MCP stale cleanup honors CLAUDE_CONFIG_DIR instead of always editing ~/.claude.json. (by @​bodapatisaikrishna, closes #​3127, #​3148)
  • apm.yml keys matching x-[a-z][a-z0-9-]* are preserved in the parsed manifest and lockfile dependency entry; other unknown keys warn without failing (proposed req-ext-003). (by @​sergio-sisternes-epam, #​3222)
  • Codex agent conversion preserves native model and model_reasoning_effort settings and warns about dropped metadata instead of silently losing it (proposed req-tg-015). (closes #​3126, #​3150)
  • apm compile --target copilot omits a global instruction from .github/copilot-instructions.md when its matching native rule is deployed under .github/instructions/, avoiding duplicate context; hand-authored root files are never removed. (by @​dajiaohuang, closes #​3099, #​3113)
  • apm pack records the commit an annotated or signed tag points to as source.sha instead of the tag object, so plugin installers that check out the tag accept the pin. (by @​nefayran, closes #​3048, #​3161)
  • apm pack --check-clean certifies GitHub-hosted manifestless skills whose SKILL.md has valid frontmatter at the resolved ref; invalid metadata and missing repositories, refs, or paths still fail closed. (by @​yfoel, #​3064)
  • apm audit no longer reports a root skills/ folder alongside .apm/ content as unintegrated after a clean install; replay now interprets project-local content the same way install does. (by @​adityaanikam, closes #​3151, #​3209)
  • apm audit --ci validates selected skill subsets against its prepared lock-pinned dependency tree, so a clean committed checkout passes without a prior apm install. (closes #​3136, #​3147)
  • apm audit drift checks ignore JSON key order and formatting in hook ownership sidecars while still reporting meaningful and invalid content changes. (by @​Pybsama, #​3155)
  • apm prune keeps an installed GitHub dependency when only its owner/repo casing changes in apm.yml; genuinely duplicate paths stop with a path-specific error. (closes #​3034, #​3241)
  • Azure DevOps Git operations retry repository-scoped git credential fill (Git Credential Manager) after ADO_APM_PAT and az bearer tokens are rejected, so Windows GCM-backed marketplace and package installs succeed without a PAT. (by @​mheeaxa, #​2610)
  • APM's Git subprocesses keep a repository's effective core.symlinks value instead of letting an inherited global or system setting override it, so per-checkout symlink detection (for example on non-admin Windows) is respected. (#​3145)
  • apm runtime setup llm succeeds when re-run over an existing LLM environment instead of failing in ensurepip, and now reports the underlying pip bootstrap error if setup fails. (#​3251, #​3253, #​3262)
  • Stale-file cleanup messages now read Cleaned N stale deployed files for DEPENDENCY instead of implying the dependency key is the deletion location. (by @​Dansatch, closes #​3026, #​3120)
  • Docs: the bundled apm-usage guide no longer claims package content must be ASCII-only, and corrects apm run stability and LSP discoverability guidance. (by @​MohammedAlkindi, closes #​2315, #​2647)
Performance
  • apm install fetches independent MCP registry server details concurrently (up to 4 at a time), shortening installs that declare several registry MCP servers. (by @​sergio-sisternes-epam, closes #​2981, #​2983)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@github-actions

Copy link
Copy Markdown

TL;DR for garyj

  • Breaking (v0.34.0): apm install --frozen no longer auto-repairs apm.lock.yaml; it now fails and lists missing paths if the lockfile doesn't record every deployed file. If CI breaks on --frozen after upgrading, run apm install locally and commit the updated lockfile.
  • v0.35.0 adds a security fix: apm audit --ci --policy <path> now exits 1 if the named policy can't be loaded, rather than silently passing unenforced. Worth adopting if you gate CI on audit policy.
  • APM_EXTRA_CA_BUNDLE (v0.34.0) lets you add corporate/proxy CA certs without replacing the system trust store, useful if you're behind a TLS-inspecting proxy.
  • apm install now fetches MCP registry server details concurrently (up to 4 at a time) in v0.34.0, speeding up installs with several registry MCP servers.
  • Several v0.35.0 fixes harden --frozen installs (snapshot/hash verification, cold restores, lockfile byte-stability), relevant if you rely on frozen installs for reproducible dotfiles setup.

v0.35.0

  • Security: audit policy enforcement now fails closed instead of silently warning when an explicit policy fails to load.
  • Frozen install path hardened significantly: verifies local/remote snapshots before deploying, refuses on missing trustworthy hashes, preserves lockfile bytes across reinstalls.
  • New opt-in replace manifest rules allow substituting local/fork checkouts across the dependency graph (candidate schema, not yet ratified).

v0.34.0

  • Action needed: --frozen install behavior change, see above, may break CI until lockfile is regenerated.
  • APM_EXTRA_CA_BUNDLE for custom CA trust and concurrent MCP registry fetches for faster installs.
  • Cursor hooks now require choosing one route (native v1 vs Claude import) instead of silently colliding.

Auto-summarized by claude-sonnet-5 from the release notes above. Add/remove the deps-summary label to control this.

@garyj

garyj commented Oct 27, 2026 via email

Copy link
Copy Markdown
Owner

@github-actions
github-actions Bot merged commit 5a0d3a4 into master Oct 27, 2026
4 of 5 checks passed
@renovate
renovate Bot deleted the renovate/microsoft-apm-0.x branch October 27, 2026 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant