Allow shared workflow partials to define and merge sandbox.agent.mounts#44500
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
sandbox.agent.mounts
There was a problem hiding this comment.
Pull request overview
This PR enables shared (imported) workflow partials to declare sandbox.agent.mounts and have those mounts merged into the consuming main workflow’s sandbox configuration with union + deduplication semantics, while preserving sandbox.agent: false behavior.
Changes:
- Allowed
sandboxin shared workflow frontmatter by removing it fromSharedWorkflowForbiddenFields. - Extended import processing to extract and aggregate
sandbox.agent.mountsacross imports intoMergedSandboxAgentMounts. - Added a compiler merge step that unions imported mounts with main-workflow mounts (deduped) and skips injection when the agent sandbox is explicitly disabled.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/sandbox.go | Adds merge helper to union imported mounts into the effective sandbox config. |
| pkg/workflow/sandbox_test.go | Adds unit coverage for mount merge behavior (nil config, dedupe, disabled agent). |
| pkg/workflow/imports_test.go | Adds integration-style compile test asserting mounts appear once in the lock output. |
| pkg/workflow/compiler_orchestrator_engine.go | Wires imported mount merge into engine/import setup flow. |
| pkg/parser/import_processor.go | Extends ImportsResult to carry merged sandbox agent mounts from imports. |
| pkg/parser/import_field_extractor.go | Extracts/dedupes sandbox.agent.mounts from imported frontmatter into the accumulator/result. |
| pkg/constants/constants.go | Removes sandbox from shared-workflow forbidden fields list (schema surface change). |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 7/7 changed files
- Comments generated: 0
- Review effort level: Low
|
❌ Test Quality Sentinel failed during test quality analysis. |
|
🧠 Matt Pocock Skills Reviewer is reviewing this pull request using Matt Pocock's engineering skills... |
|
❌ Design Decision Gate 🏗️ failed during design decision gate check. |
|
|
|
@copilot run pr-finisher skill |
PR finisher complete. All three merge-ready conditions satisfied:
Hand-off: A maintainer needs to re-trigger CI (close/reopen, |
🤖 PR Triage — Run §29020837798
Score breakdown: Impact 33 + Urgency 20 + Quality 15 Rationale: Clean ergonomic improvement — partials can now carry
|
|
@copilot please run the
|
|
@copilot please run the
|
…sandbox-field Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
PR finisher complete. All three merge-ready conditions satisfied:
Actions taken: Merged latest main (commits |
|
Run: https://github.com/github/gh-aw/actions/runs/29065468296
|
PR finisher complete. All three merge-ready conditions satisfied:
Actions taken: No code changes needed — branch was already up to date and all local validations pass. |
|
@lpcox ang concern? |
|
@copilot please run the
|
…sandbox-field Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
PR finisher complete. All three merge-ready conditions satisfied:
Actions taken: Merged latest main (5 commits including GHE SSH URL fix, dispatch-repository test fixture fix, docs updates) into branch. |
|
Run: https://github.com/github/gh-aw/actions/runs/29072075004
|
…sandbox-field Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
PR finisher complete. All three merge-ready conditions satisfied:
Actions taken: Merged latest main (10 commits including permissions consolidation, security architecture tests, yamllint fixes, model inventory updates) into branch; all local validations pass. |
|
🎉 This pull request is included in a new release. Release: |
Shared workflow partials could not declare
sandbox, forcing every consuming main workflow to duplicate mount declarations. This change allows partials to carrysandbox.agent.mountsand merges mounts from imports + main workflow with deduped union semantics.Shared-workflow schema/validation surface
sandboxfrom shared-workflow forbidden frontmatter fields so partials can declare sandbox config directly.Import aggregation
sandbox.agent.mountsfrom imported partials.MergedSandboxAgentMountsto import-processing output.Compiler merge semantics
sandbox.agent: falsebehavior (no mount injection when agent sandbox is disabled)Resulting behavior
Compiled AWF invocation now includes the deduped union of both mount lists.