microsoft / microsoft/apm

[BUG] APM 0.30.0 audit reports freshly installed skills as unintegrated on Windows

Open
#2,927 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/audit-policy status/accepted triage/recommended type/bug
Dominant language
Python
Stars
3.8k
Forks
362
Avg merge
1d 17h
Merged PRs (30d)
132

Description

Describe the bug

On Windows, APM 0.30.0 reports every skill file from a freshly installed local bundle as unintegrated when apm audit --ci runs immediately afterward. The equivalent isolated installation and audit succeeds on Linux.

This is a regression for this package: the same Windows GitHub Actions workflow passed with APM 0.28.0.

To Reproduce

  1. Use a local APM package whose apm.yml includes multiple skills and pinned dependencies.apm skill references.

  2. From an empty temporary consumer directory with isolated HOME, USERPROFILE, LOCALAPPDATA, APPDATA, TEMP, TMP, APM_CACHE_DIR, and XDG directories, run:

    apm install C:\path\to\local-package --target opencode --no-policy --no-audit --parallel-downloads 0
    apm audit --ci --no-policy --no-fail-fast
    
  3. The install succeeds and reports the local and dependency skills integrated into .agents/skills/.

  4. The immediately following audit exits 1 and reports all 228 deployed files as unintegrated.

Expected behavior

apm audit --ci should recognize files deployed by the immediately preceding successful install and report no drift, matching the Linux result.

Environment (please complete the following information):

  • OS: GitHub Actions windows-latest
  • Python Version: 3.12.10
  • APM Version: 0.30.0 (8c2e0d9)
  • VSCode Version: not relevant; target is opencode

Logs

[*] Installed 5 APM dependencies and 2 MCP servers in 16.4s.
+ apm audit --ci --no-policy --no-fail-fast
[>] Replaying install (cache-only)...
[+] Replayed 5 package(s)
[>] Diffing scratch vs working tree...
[!] Drift detected: 228 file(s)
  unintegrated (228):
    - .agents/skills/<skill>/SKILL.md
    - .agents/skills/<skill>/agents/openai.yaml
    ...
[x] 1 of 10 check(s) failed

All reported paths were created by the preceding install. The same commands and package pass on Linux. No concurrent command shares the consumer directory or its redirected environment.

Additional context

Issue #1923 has a similar unintegrated symptom but depends on per-dependency target narrowing and was reproduced on Linux. This reproduction does not narrow dependencies by target and occurs only on Windows. A path-normalization or deployment-ledger comparison regression may be involved, but that is not yet confirmed.

A temporary downstream workaround replaces the Windows audit step with apm install --frozen followed by apm compile --validate; Linux continues to run the full audit.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the isolated Windows workflow with apm install followed by apm audit --ci, then compare it with the Linux result. Start at the apm audit --ci replay and scratch-tree diff, checking the deployed paths and deployment-ledger comparison; done means the freshly installed 228 files are not reported as unintegrated on Windows and the audit exits successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
56/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.