Skip to content

Grant agentic engines read/write access to /tmp/gh-aw in AWF sandbox - #51608

Merged
pelikhan merged 2 commits into
mainfrom
copilot/configure-agentic-engines-access
Aug 9, 2026
Merged

Grant agentic engines read/write access to /tmp/gh-aw in AWF sandbox#51608
pelikhan merged 2 commits into
mainfrom
copilot/configure-agentic-engines-access

Conversation

Copilot AI commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Agentic engines (Claude, Copilot, Codex, Gemini, Pi) need read/write access to /tmp/gh-aw/ inside the AWF sandbox for logs, cache, and other runtime artifacts.

Root cause

gh-aw's sandbox architecture defines two trees:

  • ${RUNNER_TEMP}/gh-aw — read-only "setup tree" (binaries, staged actions, prompts, MCP configs)
  • /tmp/gh-aw — read-write "runtime tree" (logs, cache, agent-generated artifacts)

This split is already documented in actions/setup/setup.sh and assumed by engine code (pkg/workflow/codex_engine.go comments), and containerized MCP servers already mount /tmp/gh-aw:/tmp/gh-aw:rw via constants.DefaultTmpGhAwMount. However, the main AWF agent command — shared by all engines — never explicitly mounted /tmp/gh-aw. This relied on incidental chroot filesystem visibility and was not guaranteed under isolated container/VM sandbox runtimes (gVisor, docker-sbx), where only explicitly bind-mounted paths are visible.

Changes

  • pkg/workflow/awf_command_builder.go: add --mount /tmp/gh-aw:/tmp/gh-aw:rw to BuildAWFArgs, reusing the existing constants.DefaultTmpGhAwMount constant, so the mount is explicit and consistent across chroot, gVisor, and docker-sbx runtimes.
  • Recompiled all workflow .lock.yml files and regenerated affected Go/wasm golden test fixtures to reflect the new mount argument.
awfArgs = append(awfArgs, "--mount", constants.DefaultTmpGhAwMount)

Generated by 👨‍🍳 PR Sous Chef · gpt54 · 10.5 AIC · ⌖ 6.4 AIC · ⊞ 8.5K ·
Comment /souschef to run again

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@pelikhan

pelikhan commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

@lpcox

@pelikhan
pelikhan requested a balanced review from Copilot August 9, 2026 15:56
@pelikhan
pelikhan marked this pull request as ready for review August 9, 2026 15:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an explicit read-write /tmp/gh-aw mount to every AWF sandbox, ensuring runtime artifacts remain accessible across supported sandbox runtimes.

Changes:

  • Adds constants.DefaultTmpGhAwMount to BuildAWFArgs.
  • Regenerates workflow lock files and Go/WASM golden fixtures.
  • Covers all supported agentic engines.
Show a summary per file
File Description
pkg/workflow/awf_command_builder.go Adds the shared runtime mount.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden Updates compiled fixture.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/smoke-copilot.golden Updates compiled fixture.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/playwright-cli-mode.golden Updates compiled fixture.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden Updates compiled fixture.
pkg/workflow/testdata/TestWasmGolden_AllEngines/pi.golden Updates Pi golden output.
pkg/workflow/testdata/TestWasmGolden_AllEngines/gemini.golden Updates Gemini golden output.
pkg/workflow/testdata/TestWasmGolden_AllEngines/copilot.golden Updates Copilot golden output.
pkg/workflow/testdata/TestWasmGolden_AllEngines/codex.golden Updates Codex golden output.
pkg/workflow/testdata/TestWasmGolden_AllEngines/claude.golden Updates Claude golden output.
.github/workflows/workflow-normalizer.lock.yml Regenerates AWF runtime mounts.
.github/workflows/video-analyzer.lock.yml Regenerates AWF runtime mounts.
.github/workflows/update-astro.lock.yml Regenerates AWF runtime mounts.
.github/workflows/super-linter.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-update-cross-repo-pr.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-test-tools.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-pydantic.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-pi.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-opencode.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-kiro.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-goose.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-cursor.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-crush.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-create-cross-repo-pr.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-copilot-small.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-copilot-sdk.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-copilot-arm.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-ci.lock.yml Regenerates AWF runtime mounts.
.github/workflows/smoke-call-workflow.lock.yml Regenerates AWF runtime mounts.
.github/workflows/sighthound-security-scan.lock.yml Regenerates AWF runtime mounts.
.github/workflows/schema-feature-coverage.lock.yml Regenerates AWF runtime mounts.
.github/workflows/schema-consistency-checker.lock.yml Regenerates AWF runtime mounts.
.github/workflows/repo-tree-map.lock.yml Regenerates AWF runtime mounts.
.github/workflows/python-data-charts.lock.yml Regenerates AWF runtime mounts.
.github/workflows/pr-nitpick-reviewer.lock.yml Regenerates AWF runtime mounts.
.github/workflows/ponytail-reviewer.lock.yml Regenerates AWF runtime mounts.
.github/workflows/pdf-summary.lock.yml Regenerates AWF runtime mounts.
.github/workflows/notion-issue-summary.lock.yml Regenerates AWF runtime mounts.
.github/workflows/mcp-inspector.lock.yml Regenerates AWF runtime mounts.
.github/workflows/mattpocock-skills-reviewer.lock.yml Regenerates AWF runtime mounts.
.github/workflows/lint-monster.lock.yml Regenerates AWF runtime mounts.
.github/workflows/impeccable-skills-reviewer.lock.yml Regenerates AWF runtime mounts.
.github/workflows/hippo-embed.lock.yml Regenerates AWF runtime mounts.
.github/workflows/grumpy-reviewer.lock.yml Regenerates AWF runtime mounts.
.github/workflows/github-remote-mcp-auth-test.lock.yml Regenerates AWF runtime mounts.
.github/workflows/firewall.lock.yml Regenerates AWF runtime mounts.
.github/workflows/example-permissions-warning.lock.yml Regenerates AWF runtime mounts.
.github/workflows/example-failure-category-filter.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-testify-uber-super-expert.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-team-evolution-insights.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-spec-coverage-kiro.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-schema-audit-cursor.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-regression-audit-kiro.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-pr-review-cursor.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-model-resolution.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-max-ai-credits-test.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-malicious-code-scan.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-formal-spec-verifier.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-credit-limit-test.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-byok-ollama-test.lock.yml Regenerates AWF runtime mounts.
.github/workflows/daily-arxiv-researcher.lock.yml Regenerates AWF runtime mounts.
.github/workflows/codex-github-remote-mcp-test.lock.yml Regenerates AWF runtime mounts.
.github/workflows/chaos-pr-bundle-fuzzer.lock.yml Regenerates AWF runtime mounts.
.github/workflows/bot-detection.lock.yml Regenerates AWF runtime mounts.
.github/workflows/ace-editor.lock.yml Regenerates AWF runtime mounts.

Review details

Tip

Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 140/294 changed files
  • Comments generated: 0
  • Review effort level: Balanced

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot Quick triage nudge for this PR.

Please refresh the branch if GitHub can update it cleanly, review the current reviewer state on the latest head, run the pr-finisher skill, and push any remaining follow-up needed before handing this back to maintainers.

Current context:

  • no failed checks were listed in the compact candidate report
  • the latest visible activity is a review summary from copilot-pull-request-reviewer
  • please confirm whether anything actionable remains beyond normal maintainer review

Branch refresh was requested.

Run: https://github.com/github/gh-aw/actions/runs/31322753641

Generated by 👨‍🍳 PR Sous Chef · gpt54 · 10.5 AIC · ⌖ 6.4 AIC · ⊞ 8.5K ·
Comment /souschef to run again

Copilot AI commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Quick triage nudge for this PR.

Please refresh the branch if GitHub can update it cleanly, review the current reviewer state on the latest head, run the pr-finisher skill, and push any rem...

Checked the latest head 3382d11: the branch is already refreshed against current main, there are no unresolved review threads or actionable reviewer comments on the latest head, and local make fmt, make lint, make test-unit, make test, and make recompile all passed without producing further changes. Nothing actionable remains from the agent side beyond normal maintainer review; CI on this head is still unverified until a maintainer re-triggers it.

Copilot AI requested a review from gh-aw-bot August 9, 2026 16:23
@pelikhan

pelikhan commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

/smoke-copilot

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot is now investigating this issue comment. Sources say the story is developing...

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Smoke Test Results

PR: Grant agentic engines read/write access to /tmp/gh-aw in AWF sandbox

1-5 core tools: ✅
6 file/bash: ✅
7 discussion: ✅
8 build: ✅
9-15 safe-outputs (artifact, discussion, dispatch, review, memory, sub-agent, check-run): ✅
3 Serena find_symbol: ❌ (timeout)

Overall: PARTIAL PASS

cc @pelikhan (author: app/copilot-swe-agent, assignees: pelikhan, Copilot)

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

📰 BREAKING: Report filed by Smoke Copilot · auto · 42 AIC · ⌖ 2.72 AIC · ⊞ 8.6K ·
Comment /smoke-copilot to run again
Add label smoke to run again

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Comment Memory

Copilot runs test
Serena timeout, build pass
Smoke fire, code stand strong

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

📰 BREAKING: Report filed by Smoke Copilot · auto · 42 AIC · ⌖ 2.72 AIC · ⊞ 8.6K ·
Comment /smoke-copilot to run again
Add label smoke to run again

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Smoke test review: automated check pass. Me happy caveman.

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

📰 BREAKING: Report filed by Smoke Copilot · auto · 42 AIC · ⌖ 2.72 AIC · ⊞ 8.6K
Comment /smoke-copilot to run again
Add label smoke to run again

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Thanks for this infrastructure improvement! The fix looks solid and well-documented. However, there are a couple of things that would strengthen this PR:

  • Add direct unit test coverage — While the golden fixtures were regenerated, there is no explicit unit test for the new mount logic in BuildAWFArgs. A focused test case for the /tmp/gh-aw mount would document the expected behavior and catch regressions.
  • Large mechanical regeneration — The PR mixes a focused code change (11 lines in awf_command_builder.go) with ~210 lock.yml regenerations and 10 golden fixture updates. While mechanically correct, these bulk changes can obscure the core intent. Consider documenting in the PR description why the full regeneration was necessary.

If you would like to add test coverage, assign this prompt to your agent:

Add a unit test in pkg/workflow/awf_command_builder_test.go that verifies the /tmp/gh-aw mount is correctly appended to AWF args. Test should:
1. Call BuildAWFArgs with a minimal valid config
2. Assert that --mount /tmp/gh-aw:/tmp/gh-aw:rw appears in the returned args
3. Verify the mount is added after setup tree mounts but before custom agent mounts

Generated by ✅ Contribution Check · auto · 70.8 AIC · ⌖ 3.14 AIC · ⊞ 8.8K ·

@pelikhan
pelikhan merged commit c9dca3e into main Aug 9, 2026
41 checks passed
@pelikhan
pelikhan deleted the copilot/configure-agentic-engines-access branch August 9, 2026 17:32
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.

4 participants