Skip to content

fix(arc-dind): remove --docker-host-path-prefix CLI flag and add explicit workspace mount#44145

Merged
lpcox merged 3 commits into
mainfrom
fix/arc-dind-remove-path-prefix-flag
Jul 8, 2026
Merged

fix(arc-dind): remove --docker-host-path-prefix CLI flag and add explicit workspace mount#44145
lpcox merged 3 commits into
mainfrom
fix/arc-dind-remove-path-prefix-flag

Conversation

@lpcox

@lpcox lpcox commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Removes the --docker-host-path-prefix CLI flag from all AWF invocations on ARC/DinD runners and replaces it with an explicit --mount "${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE}:rw" bind-mount argument.

Root cause (gh-aw#34896): On sysroot-stage ARC/DinD runners, all bind-mount source paths live on a shared work volume that the Docker daemon can already access directly. Passing --docker-host-path-prefix ${RUNNER_TEMP}/gh-aw caused AWF to prepend that prefix to GITHUB_WORKSPACE, translating it to a non-existent path inside the container and producing an empty workspace during agent runs.

Fix: Drop --docker-host-path-prefix entirely. Add an unconditional --mount "${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE}:rw" to the ARC/DinD branch of BuildAWFCommand so the workspace is explicitly visible to AWF without path translation.

Changed files

File Change
pkg/workflow/awf_helpers.go Removed awfArcDindPrefixArgsVarName and awfArcDindHostPathPrefixFlag constants; removed arcDindPrefixArgsRef variable; removed GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS init/assignment from probe; added explicit workspace mount to ARC/DinD expandableArgs; simplified probe block to emit only when chroot patch is needed; updated all four AWF command format strings
pkg/workflow/awf_helpers_test.go Removed wantPrefixSet field and all --docker-host-path-prefix assertions from TestArcDindDockerHostDetection; removed unused os import
pkg/workflow/firewall_args_test.go Replaced positive GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS assertions with negative --docker-host-path-prefix absence checks; added positive assertion for explicit workspace mount in the ARC/DinD subtest
pkg/workflow/testdata/TestWasmGolden_AllEngines/*.golden Regenerated for all engines (claude, codex, copilot, gemini, pi)
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/*.golden Regenerated for basic-copilot, playwright-cli-mode, smoke-copilot, with-imports
.github/workflows/*.lock.yml Recompiled lock files for all agentic-run workflow variants

Behaviour change

Before: On (redacted) DOCKER_HOSTdetection, the generated shell emittedGH_AW_DOCKER_HOST_PATH_PREFIX_ARGSand passed${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS}toawf, causing GITHUB_WORKSPACE` to be translated to a non-existent path.

After: GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS is removed entirely. The if [[ ... =~ (redacted) ]] guard block is retained only when the chroot config patch body is non-empty. The awf invocation gains --mount "\$\{GITHUB_WORKSPACE}:\$\{GITHUB_WORKSPACE}:rw" in the ARC/DinD branch so the workspace is mounted directly.

No breaking changes

The --docker-host passthrough (GH_AW_DOCKER_HOST) is unchanged. All ARC/DinD runtime detection logic is preserved. The chroot config patch path is unaffected.

Generated by PR Description Updater for #44145 · 81.8 AIC · ⌖ 15.3 AIC · ⊞ 4.7K ·

The CLI flag --docker-host-path-prefix was still emitted at runtime via
the DOCKER_HOST probe, even though PR #43222 removed it from the JSON
config. AWF's translateBindMountHostPath() was translating GITHUB_WORKSPACE
to a non-existent path under the prefix, causing the agent to see an
empty workspace.

Changes:
- Remove --docker-host-path-prefix CLI flag from the DOCKER_HOST probe.
  With sysroot-stage active, all bind-mount paths are on the shared work
  volume and visible to the Docker daemon without translation.
- Add explicit --mount for ${GITHUB_WORKSPACE} in arc-dind mode so AWF
  can mount the real workspace path into the agent container.
- Preserve the chroot config patch inside the DOCKER_HOST probe (still
  needed for chroot identity configuration).
- Remove dead constants (awfArcDindHostPathPrefixFlag,
  awfArcDindPrefixArgsVarName) that are no longer used.

Fixes: gh-aw#34896

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 8, 2026 00: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

This PR fixes an ARC/DinD workspace visibility bug by stopping gh-aw from emitting the --docker-host-path-prefix CLI flag at runtime (which could override config and translate workspace paths incorrectly) and by adding an explicit bind mount of ${GITHUB_WORKSPACE} into the AWF container for the arc-dind topology.

Changes:

  • Removed emission of --docker-host-path-prefix from the DOCKER_HOST probe logic (while preserving the DOCKER_HOST-guarded chroot config patch behavior).
  • Added an explicit --mount "${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE}:rw" workspace mount for arc-dind.
  • Updated unit tests to stop asserting the removed prefix behavior and to assert presence/absence of the new/removed args.
Show a summary per file
File Description
pkg/workflow/firewall_args_test.go Updates assertions to ensure --docker-host-path-prefix is not emitted and the workspace mount is present for arc-dind.
pkg/workflow/awf_helpers.go Removes runtime prefix-flag emission from the DOCKER_HOST probe and adds explicit workspace mounting for arc-dind.
pkg/workflow/awf_helpers_test.go Simplifies DOCKER_HOST probe tests to only validate --docker-host passthrough behavior.

Review details

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 3/3 changed files
  • Comments generated: 2
  • Review effort level: Low

Comment on lines +47 to +50
// docker-host-path-prefix is no longer emitted (removed for sysroot, gh-aw#34896)
if strings.Contains(stepContent, `GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS="--docker-host-path-prefix`) {
t.Error("Expected command NOT to emit --docker-host-path-prefix (sysroot handles path visibility)")
}
Comment on lines +265 to +269
// NOTE: --docker-host-path-prefix is intentionally NOT passed. With sysroot-stage
// active, all bind-mount source paths are on the shared work volume and visible to
// the Docker daemon without translation. The prefix caused AWF to translate
// GITHUB_WORKSPACE to a non-existent path, resulting in an empty workspace (gh-aw#34896).
// The probe block is preserved for the chroot config patch which still requires the
@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot please run the pr-finisher skill, make this PR merge-ready, address unresolved review feedback, and rerun checks once the branch is up to date.

Generated by 👨‍🍳 PR Sous Chef · 9.99 AIC · ⌖ 9.17 AIC · ⊞ 4.7K ·
Comment /souschef to run again

Copilot AI and others added 2 commits July 8, 2026 02:14
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
…ath-prefix-flag

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@copilot please run the pr-finisher skill, make this PR merge-ready, address unresolved review feedback, and rerun checks once the branch is up to date.

...

Addressed in 447cd88. I fixed the unresolved review feedback, updated the wasm goldens and regenerated lock files, merged the latest main, and re-ran local validation (make fmt, make lint, make test-unit, make test-wasm-golden, make test, make agent-report-progress). CI on this head still needs a maintainer to re-trigger, since agent pushes do not start workflows.

Copilot AI requested a review from gh-aw-bot July 8, 2026 02:21
@lpcox

lpcox commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

@copilot run pr-finisher skill

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Antigravity MISSION COMPLETE! Antigravity has spoken. ✨

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Pi MISSION COMPLETE! Pi delivered. 🥧

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

✅ All tools validated successfully! Agent Container Smoke Test confirms agent container is ready.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Gemini MISSION COMPLETE! Gemini has spoken. ✨

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot - AOAI (apikey) is now investigating this pull request. Sources say the story is developing...

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing...

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot - AOAI (Entra) is now investigating this pull request. Sources say the story is developing...

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.54.0
jq 1.7
yq v4.53.3
curl 8.5.0
gh 2.95.0
node v22.23.1
python3 3.11.15 (PyPy 7.3.23)
go 1.24.13
java 21.0.11 (Temurin)
dotnet 10.0.301

Result: 12/12 tools available ✅

Overall Status: PASS

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • awmgmcpg

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

network:
  allowed:
    - defaults
    - "awmgmcpg"

See Network Configuration for more information.

🔧 Tool validation by Agent Container Smoke Test · 14.1 AIC · ⌖ 8.14 AIC · ⊞ 4.6K ·
Comment /smoke-test-tools to run again

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Smoke Test Results

  • GitHub MCP Testing: ✅
  • Web Fetch Testing: ✅
  • File Writing Testing: ✅
  • Bash Tool Testing: ✅
  • Build gh-aw: ❌

Overall Status: FAIL

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • localhost

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

network:
  allowed:
    - defaults
    - "localhost"

See Network Configuration for more information.

Smoke Gemini — Powered by Gemini ·
Comment /smoke-gemini to run again

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Comment Memory

Moonlit build logs hum
Cache footprints across cold stone
Smoke test keeps its word

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.

🔮 The oracle has spoken through Smoke Codex · 4.95 AIC · ⌖ 4.12 AIC · ⊞ 12.5K ·
Comment /smoke-codex to run again

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Comment Memory

Circuits hum at dawn
Bots test the rails and report back
Green lights bloom in logs

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 · 86.7 AIC · ⌖ 8.03 AIC · ⊞ 19K ·
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.

💥 Automated smoke test review - all systems nominal!

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.

💥 [THE END] — Illustrated by Smoke Claude · 90.4 AIC · ⌖ 31.1 AIC · ⊞ 8.4K
Comment /smoke-claude to run again

@@ -831,9 +831,7 @@ jobs:
if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then

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.

Nice cleanup removing unused GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS; the DOCKER_HOST guard reads clearly. (smoke test #14a)

@@ -776,9 +776,7 @@ jobs:
if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then

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.

Consistent change across lock files — consider a shared template to reduce duplication. (smoke test #14b)

@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 review tools exercised successfully.

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 · 86.7 AIC · ⌖ 8.03 AIC · ⊞ 19K
Comment /smoke-copilot to run again
Add label smoke to run again

Copilot AI commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@copilot run pr-finisher skill

Ran a pr-finisher pass on 447cd88: local validation (make fmt, make lint, make test-unit, make test, make agent-report-progress) is green, the branch already contains the current main base, and I did not find any new actionable @copilot feedback requiring code changes. PR checks on this head are currently in progress.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Smoke test results: 1✅ 2❌ 3❌ 4❌ 5❌ 6✅ 7❌ 8✅. Overall ❌. @lpcox

📰 BREAKING: Report filed by Smoke Copilot - AOAI (Entra) · 25.7 AIC · ⌖ 2.99 AIC · ⊞ 17.6K ·
Comment /smoke-copilot-aoai-entra to run again
Add label smoke to run again

@lpcox lpcox merged commit f505946 into main Jul 8, 2026
227 of 229 checks passed
@lpcox lpcox deleted the fix/arc-dind-remove-path-prefix-flag branch July 8, 2026 03:02
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.82.4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants