-
Notifications
You must be signed in to change notification settings - Fork 36
Add AWF support for Codex engine #6906
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@copilot merge main |
|
@copilot merge main |
I've resolved the merge conflict in git fetch origin main
git merge origin/main
# Resolve conflict in pkg/workflow/strict_mode_validation.go (keep codex support)
git commit |
Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com>
Regenerated lock files to ensure they're consistent with the codebase after rebasing copilot/add-codex-default-domains onto main. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
fe82458 to
d46d59e
Compare
|
🎉 Yo ho ho! Smoke Copilot Safe Inputs found the treasure and completed successfully! ⚓💰 |
|
❌ Firewall validation failed... Smoke Codex Firewall failed. Network sandboxing may not be working correctly. |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
🤖 DIAGNOSTIC COMPLETE: Smoke Copilot No Firewall STATUS: ALL_UNITS_OPERATIONAL. MISSION_SUCCESS. |
|
💀 Blimey! Changeset Generator failed and walked the plank! No treasure today, matey! ☠️ |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
- Mount /opt/hostedtoolcache/node (read-only) instead of individual utility mounts - Remove non-existent utility paths (/usr/bin/date, /usr/bin/gh, etc.) - Set PATH dynamically to find codex in hostedtoolcache bin directory - Ensures Codex and all dependencies are accessible inside AWF container 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
🎉 Yo ho ho! Smoke Copilot Safe Inputs found the treasure and completed successfully! ⚓💰 |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
🤖 DIAGNOSTIC COMPLETE: Smoke Copilot No Firewall STATUS: ALL_UNITS_OPERATIONAL. MISSION_SUCCESS. |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
✅ Firewall validation complete... Smoke Codex Firewall confirmed network sandboxing is operational. 🛡️ |
Smoke Test ResultsLast 2 Merged PRs:
Test Results:
Overall Status: PASS
|
Smoke Test ResultsLast 2 Merged PRs:
Tests:
Status: FAIL - Some required tools not configured in workflow
|
Smoke Test Results (Run 20363162130)Last 2 Merged PRs:
Tests:
Overall: PASS ✅ cc: @Mossaka
|
Smoke Test ResultsLast 2 merged PRs:
Test Results:
Status: PASS (5/6 tests passed)
|
|
OpenAI domain access: ❌ (DNS blocked)
|
|
Last merged PRs: feat: Enable custom footer messages for update-discussion; Add update-discussion safe output type
|
CodexDefaultDomains(api.openai.com, openai.com) indomains.goGetCodexAllowedDomains()helper to merge Codex defaults with user'snetwork.alloweddomainsmergeDomainsWithNetwork()helpersupportsFirewall: trueinNewCodexEngine()incodex_engine.goGetInstallationSteps()incodex_engine.goto install AWF when firewall enabledGetExecutionSteps()incodex_engine.goto wrap with AWF when firewall enabled/tmp, utilities (gh/yq/date), and/usr/local/bin/codex--ttyflag (Codex is a Rust CLI, not a TUI)GetFirewallLogsCollectionStep()andGetSquidLogsSteps()tocodex_engine.gocompiler_yaml_main_job.goto include Codex in firewall log patternenableFirewallByDefaultForCopilot()to include Codex enginevalidateStrictFirewall()to validate Codex firewall requirements.github/workflows/smoke-codex-firewall.mdsmoke test workflowCodexDefaultDomainsandGetCodexAllowedDomainsOriginal prompt
AWF Integration for Codex Engine — Implementation Plan
Overview
Integrate Application-level Firewall (AWF) for the Codex engine using the Copilot/Claude pattern: network isolation for Codex CLI with a domain allowlist.
User decisions
api.openai.com,openai.com(+ user extensions vianetwork.allowed)Phase 1: Core integration
1.1 Add Codex default domains + helper
File:
/home/mossaka/developer/gh-aw-repos/gh-aw/pkg/workflow/domains.goAdd after
ClaudeDefaultDomains:1.2 Enable firewall support in the engine
File:
/home/mossaka/developer/gh-aw-repos/gh-aw/pkg/workflow/codex_engine.goSet
supportsFirewall: trueinNewCodexEngine().Phase 2: Installation steps
File:
.../codex_engine.goUpdate
GetInstallationSteps()to:@openai/codex(secrets + npm install)Phase 3: AWF-wrapped execution
File:
.../codex_engine.goUpdate
GetExecutionSteps()to:Build the normal
codex ... exec ...command (existing behavior)If firewall enabled, wrap with AWF:
--env-all--tty(Codex isn’t a TUI)/tmp, basic utilities (gh/yq/date), and/usr/local/bin/codex--allow-domains $(GetCodexAllowedDomains(...))--proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logsElse run unwrapped
Phase 4: Observability & log parsing
GetFirewallLogsCollectionStep()(no-op) +GetSquidLogsSteps()(upload + parse) tocodex_engine.gocompiler_yaml_main_job.go, extend the Copilot/Claude pattern to include Codexjs/parse_firewall_logs.cjs; keep Codex parsing viajs/parse_codex_log.cjsPhase 5: Testing
Create:
.github/workflows/smoke-codex-firewall.mdValidate:
network.allowedexpansion works (e.g.,github,python)Phase 6: Default enablement
File:
/pkg/workflow/firewall.goEnsure default logic includes
"codex"(same as copilot/claude).Critical files
Modify
pkg/workflow/domains.gopkg/workflow/codex_engine.gopkg/workflow/compiler_yaml_main_job.gopkg/workflow/firewall.go(if needed)Create
.github/workflows/smoke-codex-firewall.mdKey differences (Codex)
api.openai.com,openai.com--tty/usr/local/bin/codex/tmpmountNotes for Codex
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.