Summary
Proposed knowledge-base changes
File: .github/workflows/shared/self-hosted-failure-modes.md
Update: B13 — add open sub-issue #6652 noting remaining Squid ACL gap
Current B13 row states that #6473 fully fixes the Squid ACL auto-add for topologyAttach peers. Issue #6652 (filed 2026-07-27) reports the symptom still occurs (CONNECT awmg-mcpg:8080 denied by Squid; block report incorrectly recommends adding awmgmcpg to network.allowed, which then fails schema validation). This indicates #6473's fix is incomplete or missing for the case where the hostname appears only under topologyAttach but not difcProxyHost.
Proposed change — in B13's "Fix / flag" column, append to the existing text:
Open sub-issue (#6652): topologyAttach MCP gateway hostname (awmg-mcpg) is still blocked by Squid in some configurations after #6473; the Firewall Issue Dispatcher block report incorrectly suggests adding awmgmcpg to network.allowed, which fails schema validation. Root cause under investigation.
Proposed change — in B13's "Citations" column, add github/gh-aw-firewall#6652.
New row: B15 — --network-isolation conflicts with auto-enabled --enable-host-access for localhost allowlist
| Field |
Content |
| ID |
B15 |
| Signal |
AWF startup fails with --network-isolation is not yet supported with --enable-host-access; happens when localhost is in the domain allowlist because the gh-aw compiler auto-enables --enable-host-access and also emits network.isolation: true + topologyAttach |
| Root cause |
In src/cli.ts, --network-isolation and --enable-host-access are mutually exclusive with no overlap support. The gh-aw compiler (v0.82.x+) does not detect the conflict: it emits isolation:true + topologyAttach unconditionally while also auto-enabling --enable-host-access when localhost is in the allowlist. The compiled workflow always fails at runtime. |
| Fix / flag |
Unresolved (#6651 open). Short-term workaround: remove localhost from the domain allowlist if topology/isolation is required; or set network.isolation: false in the AWF config if host-access is required. |
| Probe |
awf --network-isolation --enable-host-access ... — reproduces immediately with not yet supported error; check compiler output for both flags being emitted together when localhost is in allowlist |
| Citations |
#6651 |
New error-string lookup entry:
| Observable |
Likely mode |
--network-isolation is not yet supported with --enable-host-access |
B15 (compiler auto-emits both flags when localhost in allowlist + topology; root cause unresolved in #6651) |
New known-unresolved entry:
New row: B16 — ${VAR} in sandbox.agent.mounts not shell-expanded; host path rejected
| Field |
Content |
| ID |
B16 |
| Signal |
AWF rejects a --mount entry with a non-absolute host path error; the mount spec was defined as ${TERRAFORM_CLI_PATH}/terraform:... (or similar env-var pattern) but the literal string ${TERRAFORM_CLI_PATH} reaches AWF's volume validator |
| Root cause |
The gh-aw compiler wraps sandbox.agent.mounts specs containing ${} references in single quotes in the generated shell invocation. Bash single quotes prevent variable substitution, so the literal variable reference string (e.g. ${TERRAFORM_CLI_PATH}) reaches AWF's volume validation instead of the resolved absolute path. |
| Fix / flag |
Unresolved (#6649 open). Workaround: replace ${VAR} references with their literal values in sandbox.agent.mounts, or stage the path into a wrapper script that expands before calling AWF. |
| Probe |
Inspect the generated awf invocation in the compiled lock file — if mount specs appear in single quotes containing ${...}, the bug is present. Running awf ... --mount '${VAR}/path:/dest' reproduces the rejection. |
| Citations |
#6649 |
New error-string lookup entry:
| Observable |
Likely mode |
AWF rejects --mount with "host path must be absolute" (or similar) and the path visibly contains ${VAR_NAME} unexpanded |
B16 (single-quote wrapping by compiler prevents shell expansion of ${} in mount specs; root cause unresolved in #6649) |
New known-unresolved entry:
Proposed doctor changes
File: .github/workflows/self-hosted-runner-doctor.md
Same additions as the shared catalog:
Proposed portable agent changes
File: .github/agents/self-hosted-runner-doctor.md
Apply the identical changes as described above for both self-hosted-failure-modes.md and self-hosted-runner-doctor.md so the portable agent's embedded catalog stays in sync.
Source issues and PRs
Generated by Runner Doctor Updater · sonnet46 · 65.9 AIC · ⊞ 22.2K · ◷
Summary
Proposed knowledge-base changes
File:
.github/workflows/shared/self-hosted-failure-modes.mdUpdate: B13 — add open sub-issue #6652 noting remaining Squid ACL gap
Current B13 row states that #6473 fully fixes the Squid ACL auto-add for
topologyAttachpeers. Issue #6652 (filed 2026-07-27) reports the symptom still occurs (CONNECT awmg-mcpg:8080denied by Squid; block report incorrectly recommends addingawmgmcpgtonetwork.allowed, which then fails schema validation). This indicates #6473's fix is incomplete or missing for the case where the hostname appears only undertopologyAttachbut notdifcProxyHost.Proposed change — in B13's "Fix / flag" column, append to the existing text:
Proposed change — in B13's "Citations" column, add
github/gh-aw-firewall#6652.New row: B15 —
--network-isolationconflicts with auto-enabled--enable-host-accessforlocalhostallowlist--network-isolation is not yet supported with --enable-host-access; happens whenlocalhostis in the domain allowlist because the gh-aw compiler auto-enables--enable-host-accessand also emitsnetwork.isolation: true+topologyAttachsrc/cli.ts,--network-isolationand--enable-host-accessare mutually exclusive with no overlap support. The gh-aw compiler (v0.82.x+) does not detect the conflict: it emitsisolation:true+topologyAttachunconditionally while also auto-enabling--enable-host-accesswhenlocalhostis in the allowlist. The compiled workflow always fails at runtime.localhostfrom the domain allowlist if topology/isolation is required; or setnetwork.isolation: falsein the AWF config if host-access is required.awf --network-isolation --enable-host-access ...— reproduces immediately withnot yet supportederror; check compiler output for both flags being emitted together whenlocalhostis in allowlistNew error-string lookup entry:
--network-isolation is not yet supported with --enable-host-accesslocalhostin allowlist + topology; root cause unresolved in #6651)New known-unresolved entry:
--network-isolation+--enable-host-accessmutual-exclusion conflict whenlocalhostin domain allowlist triggers auto-enable; fix requires either compiler guard or AWF relaxationNew row: B16 —
${VAR}insandbox.agent.mountsnot shell-expanded; host path rejected--mountentry with a non-absolute host path error; the mount spec was defined as${TERRAFORM_CLI_PATH}/terraform:...(or similar env-var pattern) but the literal string${TERRAFORM_CLI_PATH}reaches AWF's volume validatorsandbox.agent.mountsspecs containing${}references in single quotes in the generated shell invocation. Bash single quotes prevent variable substitution, so the literal variable reference string (e.g.${TERRAFORM_CLI_PATH}) reaches AWF's volume validation instead of the resolved absolute path.${VAR}references with their literal values insandbox.agent.mounts, or stage the path into a wrapper script that expands before calling AWF.awfinvocation in the compiled lock file — if mount specs appear in single quotes containing${...}, the bug is present. Runningawf ... --mount '${VAR}/path:/dest'reproduces the rejection.New error-string lookup entry:
--mountwith "host path must be absolute" (or similar) and the path visibly contains${VAR_NAME}unexpanded${}in mount specs; root cause unresolved in #6649)New known-unresolved entry:
${VAR}insandbox.agent.mountspassed literally by single-quote wrapping in compiler; AWF rejects non-absolute host pathsProposed doctor changes
File:
.github/workflows/self-hosted-runner-doctor.mdSame additions as the shared catalog:
Proposed portable agent changes
File:
.github/agents/self-hosted-runner-doctor.mdApply the identical changes as described above for both
self-hosted-failure-modes.mdandself-hosted-runner-doctor.mdso the portable agent's embedded catalog stays in sync.Source issues and PRs
[awf] squid-config: topologyAttach MCP gateway hostname not added to Squid ACL allowlist(open, 2026-07-27)[awf] cli: --network-isolation conflicts with auto-enabled --enable-host-access for localhost allowlist(open, 2026-07-27)[awf] agent-volumes: environment variables in sandbox.agent.mounts not expanded at runtime(open, 2026-07-27)