Skip to content

test: recompile workflows with strict security compiler#6223

Merged
lpcox merged 9 commits into
mainfrom
test/compiler-legacy-security-recompile
Jul 14, 2026
Merged

test: recompile workflows with strict security compiler#6223
lpcox merged 9 commits into
mainfrom
test/compiler-legacy-security-recompile

Conversation

@lpcox

@lpcox lpcox commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Purpose

Test branch to validate the gh-aw compiler strict security mode changes against CI workflows.

Compiler ref

c225286dc2d705a179b950fb3b3bfe9f1e70d9b9 — includes:

  • Default AWF command: sudo -E awfawf (strict mode)
  • --enable-host-access and --legacy-security only emitted for legacy mode
  • --allow-host-service-ports gated on legacy mode
  • Version guard: --legacy-security only for AWF ≥ v0.27.32

What to look for

  • Which workflows pass/fail with the new strict default
  • Whether any workflows need legacy-security: enable in their frontmatter
  • Net diff: -2,400 lines (sudo/host-access boilerplate removed)

Related PRs

Recompile all 57 workflows using gh-aw compiler at commit c225286dc2
which includes the strict security mode changes:
- Default AWF command changes from 'sudo -E awf' to 'awf'
- --enable-host-access and --legacy-security only emitted for legacy mode
- --allow-host-service-ports gated on legacy mode
- Version guard: --legacy-security only for AWF >= v0.27.32

This is a test branch to validate the compiler changes against CI.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8dcc99fc-3d0e-40c5-8b75-bc43d9bf5dee
Copilot AI review requested due to automatic review settings July 14, 2026 16:41

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

Recompiles CI workflows with the strict-security gh-aw compiler branch.

Changes:

  • Updates compiler, AWF, and agent versions.
  • Migrates setup actions to the gh-aw repository.
  • Regenerates sandbox configuration and installation steps.
Show a summary per file
File Description
.github/workflows/smoke-sink-visibility-blocked.lock.yml Updates blocked-sink smoke workflow.
.github/workflows/smoke-sink-visibility-allowed.lock.yml Updates allowed-sink smoke workflow.
.github/workflows/smoke-gemini.lock.yml Recompiles Gemini smoke workflow.
.github/workflows/smoke-docker-sbx.lock.yml Recompiles Docker-sbx workflow.
.github/workflows/smoke-docker-sbx-codex.lock.yml Updates Codex Docker-sbx workflow.
.github/workflows/smoke-docker-sbx-claude.lock.yml Updates Claude Docker-sbx workflow.
.github/workflows/network-isolation-test.lock.yml Updates network-isolation smoke test.
.github/workflows/build-test-network-isolation.lock.yml Updates isolated build-test workflow.
.github/workflows/agentics-maintenance.yml Migrates maintenance setup references.
.github/aw/actions-lock.json Removes the obsolete setup action lock.

Review details

Tip

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

  • Files reviewed: 31/59 changed files
  • Comments generated: 17
  • Review effort level: Medium

Comment on lines +199 to +201
uses: github/gh-aw-actions/setup-cli@c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
with:
version: v0.82.8
version: c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
Comment on lines +339 to +341
uses: github/gh-aw-actions/setup-cli@c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
with:
version: v0.82.8
version: c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
Comment on lines +385 to +387
uses: github/gh-aw-actions/setup-cli@c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
with:
version: v0.82.8
version: c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
Comment on lines +490 to +492
uses: github/gh-aw-actions/setup-cli@c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
with:
version: v0.82.8
version: c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
Comment on lines +619 to +621
uses: github/gh-aw-actions/setup-cli@c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
with:
version: v0.82.8
version: c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"b2417d2342d04b758a9789ec726cf2b46eed2d9a8257797c56d44be987b982d4","body_hash":"831b52f3f9d8ef07ec152f72dd2e49d5c8e208a8742a3f940de10c8f5653898d","compiler_version":"v0.82.8-29-ga1dd8bbd65","agent_id":"copilot","engine_versions":{"copilot":"1.0.68"}}
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","DOCKER_PAT","DOCKER_USERNAME","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw/actions/setup","sha":"a1dd8bbd6543f6dc7e76c3169cb6c2b122ccfc65","version":"a1dd8bbd6543f6dc7e76c3169cb6c2b122ccfc65"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.30","digest":"sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.30@sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30","digest":"sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30@sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.30","digest":"sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.30@sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.32","digest":"sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.32@sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"b2417d2342d04b758a9789ec726cf2b46eed2d9a8257797c56d44be987b982d4","body_hash":"831b52f3f9d8ef07ec152f72dd2e49d5c8e208a8742a3f940de10c8f5653898d","compiler_version":"v0.82.9-18-gc225286dc2","agent_id":"copilot","engine_versions":{"copilot":"1.0.70"}}
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","DOCKER_PAT","DOCKER_USERNAME","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw/actions/setup","sha":"c225286dc2d705a179b950fb3b3bfe9f1e70d9b9","version":"c225286dc2d705a179b950fb3b3bfe9f1e70d9b9"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.32"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.32"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.32"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.32","digest":"sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.32@sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"dfd5fe831b683692ee1e902ff243acb2ec33a29457aafa8de8ddf70a0cb1cd7a","body_hash":"1018c109863e472a09e7443f722cf83304e8c0561285d4fbf8ede1930ddc505b","compiler_version":"v0.82.8-29-ga1dd8bbd65","agent_id":"codex","agent_model":"gpt-5.4","engine_versions":{"codex":"0.142.5"}}
# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","COPILOT_GITHUB_TOKEN","DOCKER_PAT","DOCKER_USERNAME","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw/actions/setup","sha":"a1dd8bbd6543f6dc7e76c3169cb6c2b122ccfc65","version":"a1dd8bbd6543f6dc7e76c3169cb6c2b122ccfc65"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.30","digest":"sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.30@sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30","digest":"sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30@sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.30","digest":"sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.30@sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a"},{"image":"ghcr.io/github/gh-aw-mcpg:latest","digest":"sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477","pinned_image":"ghcr.io/github/gh-aw-mcpg:latest@sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"dfd5fe831b683692ee1e902ff243acb2ec33a29457aafa8de8ddf70a0cb1cd7a","body_hash":"1018c109863e472a09e7443f722cf83304e8c0561285d4fbf8ede1930ddc505b","compiler_version":"v0.82.9-18-gc225286dc2","agent_id":"codex","agent_model":"gpt-5.4","engine_versions":{"codex":"0.144.3"}}
# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","COPILOT_GITHUB_TOKEN","DOCKER_PAT","DOCKER_USERNAME","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw/actions/setup","sha":"c225286dc2d705a179b950fb3b3bfe9f1e70d9b9","version":"c225286dc2d705a179b950fb3b3bfe9f1e70d9b9"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.32"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.32"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.32"},{"image":"ghcr.io/github/gh-aw-mcpg:latest","digest":"sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477","pinned_image":"ghcr.io/github/gh-aw-mcpg:latest@sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"f8a17420e87b50dc819fa3db024dd5d485c0728a53ac74cbaa94689ccfe0ff25","body_hash":"c3cd4e80799ab7a941ec178f1c283a1fd76d1862bafd2058ce3009b4654d1c8b","compiler_version":"v0.82.8-29-ga1dd8bbd65","agent_id":"claude","agent_model":"claude-haiku-4-5","engine_versions":{"claude":"2.1.201"}}
# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","DOCKER_PAT","DOCKER_USERNAME","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw/actions/setup","sha":"a1dd8bbd6543f6dc7e76c3169cb6c2b122ccfc65","version":"a1dd8bbd6543f6dc7e76c3169cb6c2b122ccfc65"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.30","digest":"sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.30@sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30","digest":"sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30@sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.30","digest":"sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.30@sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.32","digest":"sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.32@sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"f8a17420e87b50dc819fa3db024dd5d485c0728a53ac74cbaa94689ccfe0ff25","body_hash":"c3cd4e80799ab7a941ec178f1c283a1fd76d1862bafd2058ce3009b4654d1c8b","compiler_version":"v0.82.9-18-gc225286dc2","agent_id":"claude","agent_model":"claude-haiku-4-5","engine_versions":{"claude":"2.1.207"}}
# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","DOCKER_PAT","DOCKER_USERNAME","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw/actions/setup","sha":"c225286dc2d705a179b950fb3b3bfe9f1e70d9b9","version":"c225286dc2d705a179b950fb3b3bfe9f1e70d9b9"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.32"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.32"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.32"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.32","digest":"sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.32@sha256:63e46b56dfd70895a701b6fc6dd0189e11e2d875f327f1781e81b31848735477"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
Comment on lines +565 to +567
uses: github/gh-aw-actions/setup-cli@c225286dc2d705a179b950fb3b3bfe9f1e70d9b9 # c225286dc2d705a179b950fb3b3bfe9f1e70d9b9
with:
version: 'v0.82.8'
version: 'c225286dc2d705a179b950fb3b3bfe9f1e70d9b9'
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_inline_skills.sh"
- name: Download container images
run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" alpine:latest@sha256:5b10f432ef3da1b8d4c7eb6c487f2f5a8f096bc91145e68878dd4a5019afde11 ghcr.io/github/gh-aw-firewall/agent:0.27.29@sha256:debc0b18ef8ea3a64585c4d1eea1099f0d9fa76b53d34a1f3c53b3225fe158fe ghcr.io/github/gh-aw-firewall/api-proxy:0.27.29@sha256:c7754df3f06f346c817db0525ba523cbdaf5349239fd7f37897c4250a8fc7bde ghcr.io/github/gh-aw-firewall/squid:0.27.29@sha256:7bfa0742f9a5bd6309507caaa80a8b6cf3e05bd95a1429affbf64cc94cfbd34f ghcr.io/github/gh-aw-mcpg:v0.4.1@sha256:ad2a979c2cd8b50098e84938ca9c9c1580eb8e91526f101a90adfba7859b2c32 ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4
run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" alpine:latest@sha256:5b10f432ef3da1b8d4c7eb6c487f2f5a8f096bc91145e68878dd4a5019afde11 ghcr.io/github/gh-aw-firewall/agent:0.27.32 ghcr.io/github/gh-aw-firewall/api-proxy:0.27.32 ghcr.io/github/gh-aw-firewall/squid:0.27.32 ghcr.io/github/gh-aw-mcpg:v0.4.1@sha256:ad2a979c2cd8b50098e84938ca9c9c1580eb8e91526f101a90adfba7859b2c32 ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4
@github-actions

github-actions Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

✅ Copilot review passed with no inline comments.

@lpcox Add the ready-for-aw label to this PR to trigger agentic CI smoke tests.

@github-actions

Copy link
Copy Markdown
Contributor

🚀 Security Guard has started processing this pull request

@github-actions

github-actions Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🦎 Smoke gVisor reports failed. gVisor compatibility issue detected.

lpcox and others added 4 commits July 14, 2026 10:36
Strict mode uses the chroot path which requires capsh (from libcap2-bin)
on the host runner. The gVisor runner image doesn't have it pre-installed.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8dcc99fc-3d0e-40c5-8b75-bc43d9bf5dee
The AWF entrypoint checks for capsh via 'chroot /host /bin/sh -c command -v capsh'
but /bin/sh's default PATH doesn't include /usr/sbin where capsh is installed.
Symlink to /usr/bin so the chroot prereq check finds it.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8dcc99fc-3d0e-40c5-8b75-bc43d9bf5dee
gVisor doesn't allow writes to device nodes on read-only bind mounts,
causing 'cannot create /dev/null: Read-only file system' inside chroot.

Fixes:
- system-mounts.ts: add /dev/null:/host/dev/null:rw mount override
- entrypoint.sh: capsh check uses [ -x ] instead of command -v >/dev/null
- smoke-gvisor.lock.yml: build AWF from source to test fixes in CI

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8dcc99fc-3d0e-40c5-8b75-bc43d9bf5dee
Same /dev/null rw mount fix as smoke-gvisor — build AWF binary and
containers from source so strict chroot mode works on gVisor runners.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8dcc99fc-3d0e-40c5-8b75-bc43d9bf5dee
AWF's sbx-manager only mounted /usr/local/bin into the microVM, but npm
global packages install symlinks there pointing to ../lib/node_modules/.
Without /usr/local/lib mounted, binaries like 'codex' and 'claude' fail
with ENOENT inside the sandbox.

Add /usr/local/lib to the default sbx mount list and add --mount flags
to the sbx-claude and sbx-codex workflow lockfiles as a workaround for
the standalone binary (which doesn't include this fix yet).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8dcc99fc-3d0e-40c5-8b75-bc43d9bf5dee
@lpcox
lpcox force-pushed the test/compiler-legacy-security-recompile branch from ecf9ba1 to 8f63fe7 Compare July 14, 2026 19:31
lpcox and others added 2 commits July 14, 2026 12:43
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8dcc99fc-3d0e-40c5-8b75-bc43d9bf5dee
The sbx microVM does NOT mount host /usr/local/ — it has its own
filesystem. CLI tools installed via 'npm install -g' on the runner
host are invisible inside the sbx container.

Fix: also install codex/claude into ${RUNNER_TEMP}/gh-aw/mcp-cli/
which IS mounted in the sbx and already on PATH inside agent commands.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8dcc99fc-3d0e-40c5-8b75-bc43d9bf5dee
The sbx exec --tty flag causes an internal ~30s deadline on the
pseudo-terminal, killing Claude mid-execution. Codex succeeded because
it completed in 27s (under the deadline) without --tty.

Changes:
- Remove --tty from AWF invocation (eliminates pty deadline)
- Add agentTimeout: 60 (minutes) to config JSON as safety net

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8dcc99fc-3d0e-40c5-8b75-bc43d9bf5dee
@lpcox
lpcox merged commit 7429feb into main Jul 14, 2026
28 of 29 checks passed
@lpcox
lpcox deleted the test/compiler-legacy-security-recompile branch July 14, 2026 21:30
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.

2 participants