feat: Move APM dependency resolution to activation job via pack/unpack#20385
feat: Move APM dependency resolution to activation job via pack/unpack#20385
Conversation
- Add Isolated field to APMDependenciesInfo struct
- Support object format {packages, isolated} in extractAPMDependenciesFromFrontmatter
- Replace GenerateAPMDependenciesStep with GenerateAPMPackStep + GenerateAPMRestoreStep
- Add EngineToAPMTarget helper (copilot→copilot, claude→claude, other→all)
- Emit pack step in activation job with separate 'apm' artifact upload
- Emit download + restore steps in agent job
- Update tests and documentation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Add GetAPMTarget() to WorkflowExecutor interface with BaseEngine default "all" - CopilotEngine.GetAPMTarget() returns "copilot" - ClaudeEngine.GetAPMTarget() returns "claude" - Remove free function EngineToAPMTarget - compiler_activation_job uses engine.GetAPMTarget() directly Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot add microsoft/compliance-rules package to smoke-claude agentic workflow. |
…orkflow Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in dfb7260. Added |
|
✅ All tools validated successfully! Agent Container Smoke Test confirms agent container is ready. |
|
🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation... |
|
💥 WHOOSH! Smoke Claude springs into action on this pull request! [Panel 1 begins...] |
|
📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing... |
This comment has been minimized.
This comment has been minimized.
|
Smoke Test Results for run §22918207837 —
Overall: ❌ FAIL — Serena MCP tools unavailable
|
There was a problem hiding this comment.
APM dependency resolution moved to the activation job — solid architectural improvement. Two inline notes left: one on the smoke-claude dependency addition, one on the isolated flag docs. Overall this is a well-structured change.
📰 BREAKING: Report filed by Smoke Copilot
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
Commit pushed:
|
|
✅ All tools validated successfully! Agent Container Smoke Test confirms agent container is ready. |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
💥 WHOOSH! Smoke Claude springs into action on this pull request! [Panel 1 begins...] |
|
📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing... |
|
Commit pushed:
|
Smoke Test ResultsPRs: #20412 [docs] Self-healing documentation fixes from issue analysis - 2026-03-10
|
Agent Container Tool Check
Result: 12/12 tools available ✅ Overall Status: PASS
|
|
Smoke test §22928940337 results for
Overall:
|
There was a problem hiding this comment.
Looks good overall! The move from runtime APM resolution to pack/unpack via activation artifact is a solid improvement for determinism. Version pins in actions-lock.json are also welcome. Minor note: changeset description could mention retry determinism explicitly.
📰 BREAKING: Report filed by Smoke Copilot
| "gh-aw": patch | ||
| --- | ||
|
|
||
| Pack APM dependencies during activation and restore them via the apm artifact in agent jobs to improve determinism. |
There was a problem hiding this comment.
Good description! Consider mentioning that this improves determinism across retries as well — that's a key benefit of moving resolution to the activation job.
| "sha": "bf559f85448f9380bcfa2899dbdc01eb5b37be3a" | ||
| }, | ||
| "actions/download-artifact@v8": { | ||
| "actions/download-artifact@v8.0.0": { |
There was a problem hiding this comment.
Version references are now pinned to explicit semver (e.g., v8.0.0 instead of v8) — nice improvement for reproducibility and security.
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
@copilot merge main recompile |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in d837197. Merged origin/main, resolved conflicts in action pin JSON files and lock files, then recompiled all 166 workflows. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
APM dependencies were resolved at agent-job runtime — slow, network-dependent, and non-deterministic across retries. This moves resolution to the activation job (pack) and unpacking to the agent job (restore) via a separate
apmartifact.New compilation output
Activation job — pack step + artifact upload:
Agent job — download + restore:
Changes
APMDependenciesInfo— addsIsolated boolfieldextractAPMDependenciesFromFrontmatter— adds object format support alongside existing array format:apm_dependencies.go— replacesGenerateAPMDependenciesStepwithGenerateAPMPackStepandGenerateAPMRestoreStepWorkflowExecutorinterface — addsGetAPMTarget() stringmethod;BaseEnginedefaults to"all",CopilotEnginereturns"copilot",ClaudeEnginereturns"claude"; the APM target is inferred from the engine at compile time rather than via a standalone mapping functioncompiler_activation_job.go— emits pack step (usingengine.GetAPMTarget()) and separateapmartifact upload after prompt generationcompiler_yaml_main_job.go— replaces old install step with artifact download + restorefrontmatter.md— documents new object format and pack/unpack behaviorsmoke-claude.md— addsmicrosoft/apm-sample-packageas an APM dependency to exercise the pack/restore path in the smoke test workflow🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.
Changeset
Warning
The following domains were blocked by the firewall during workflow execution:
ab.chatgpt.comgithub.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.
Changeset
apmartifact so agent jobs use a deterministic dependency bundle.Warning
The following domains were blocked by the firewall during workflow execution:
ab.chatgpt.comcodeload.github.comgithub.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.
Changeset
apmartifact for deterministic agent jobs.Warning
The following domains were blocked by the firewall during workflow execution:
ab.chatgpt.comgithub.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.