-
Notifications
You must be signed in to change notification settings - Fork 218
[BUG] apm.lock.yaml still non-deterministic when MCP dependencies are present #1532
Copy link
Copy link
Open
Labels
area/lockfileLockfile schema, per-file provenance, integrity hashes, drift detection.Lockfile schema, per-file provenance, integrity hashes, drift detection.priority/highShips in current or next milestoneShips in current or next milestonestatus/acceptedDirection approved, safe to start work.Direction approved, safe to start work.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/governanceGoverned by policy. apm-policy, audit, enforcement, enterprise rollout.Governed by policy. apm-policy, audit, enforcement, enterprise rollout.type/bugSomething does not work as documented.Something does not work as documented.
Milestone
Metadata
Metadata
Assignees
Labels
area/lockfileLockfile schema, per-file provenance, integrity hashes, drift detection.Lockfile schema, per-file provenance, integrity hashes, drift detection.priority/highShips in current or next milestoneShips in current or next milestonestatus/acceptedDirection approved, safe to start work.Direction approved, safe to start work.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/governanceGoverned by policy. apm-policy, audit, enforcement, enterprise rollout.Governed by policy. apm-policy, audit, enforcement, enterprise rollout.type/bugSomething does not work as documented.Something does not work as documented.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Projects
Status
Todo
Describe the bug
Follow-up to #450 — the
generated_attimestamp rewrite was fixed for regular APM dependencies, but the lockfile still changes on everyapm installwhen MCP dependencies are declared inapm.yml. The only diff is thegenerated_atfield, meaning the actual resolved state hasn't changed.To Reproduce
apm.yml:apm installand commitapm.lock.yamlapm installagain without changingapm.ymlgit diff apm.lock.yamlOnly the timestamp changes — no dependency content is different.
Expected behavior
apm installshould be fully idempotent: if neitherapm.ymlnor any resolved dependency has changed,apm.lock.yamlmust not be modified. This should hold regardless of dependency type (APM packages, MCP servers, etc.).Environment
Additional context
The original fix for #450 likely only addressed the APM dependency resolution path. The MCP dependency resolution appears to follow a separate code path that still unconditionally rewrites
generated_at. The fix should apply the same determinism logic to MCP nodes.See my comments on #450: