Skip to content

fix: mount /etc/hosts in chroot mode and handle missing resolv.conf#522

Merged
Mossaka merged 3 commits intomainfrom
fix/chroot-etc-hosts-resolv-conf
Feb 5, 2026
Merged

fix: mount /etc/hosts in chroot mode and handle missing resolv.conf#522
Mossaka merged 3 commits intomainfrom
fix/chroot-etc-hosts-resolv-conf

Conversation

@Mossaka
Copy link
Collaborator

@Mossaka Mossaka commented Feb 5, 2026

Summary

  • Mount /etc/hosts read-only into /host/etc/hosts in chroot mode, fixing getaddrinfo EAI_AGAIN localhost errors for tools like JSDOM/Vitest
  • Handle missing /host/etc/resolv.conf by creating the file instead of silently skipping DNS override
  • Clean up created resolv.conf on exit to leave no trace on the host

Evidence: https://github.com/danielmeppiel/corporate-website/actions/runs/21707539888

Test plan

  • npm test — 731 unit tests pass (including 2 new assertions)
  • npm run test:integration — integration tests pass
  • Manual: sudo awf --enable-chroot --allow-domains example.com -- getent hosts localhost resolves correctly

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings February 5, 2026 19:24
@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Chroot tests failed Smoke Chroot failed - See logs for details.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

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

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

✅ Coverage Check Passed

Overall Coverage

Metric Base PR Delta
Lines 82.10% 82.10% ➡️ +0.00%
Statements 82.14% 82.14% ➡️ +0.00%
Functions 81.95% 81.95% ➡️ +0.00%
Branches 75.44% 75.44% ➡️ +0.00%

Coverage comparison generated by scripts/ci/compare-coverage.ts

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Build Test: Java - FAILED ❌

Test Environment Issue: Maven is not properly installed or configured in the GitHub Actions runner.

Error: cannot execute binary file: Exec format error when attempting to run mvn --version

Project Compile Tests Status
gson N/A FAILED
caffeine N/A FAILED

Overall: FAIL

Root Cause: Maven executable at /usr/share/apache-maven-3.9.12/boot/plexus-classworlds-2.9.0.jar cannot be executed. This indicates a Java/Maven environment configuration issue in the runner.

Action Required: The workflow runner environment needs Maven properly installed with a working Java runtime.

AI generated by Build Test Java

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Chroot tests failed Smoke Chroot failed - See logs for details.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

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

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

Copy link

Copilot AI left a comment

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 hostname resolution issues in chroot mode by mounting /etc/hosts and improving /etc/resolv.conf handling. The changes address getaddrinfo EAI_AGAIN localhost errors encountered when tools like JSDOM/Vitest attempt to resolve localhost inside the chroot environment.

Changes:

  • Added /etc/hosts read-only mount to provide localhost resolution inside chroot
  • Enhanced entrypoint.sh to create /etc/resolv.conf when missing instead of silently skipping
  • Implemented cleanup logic to remove created DNS configuration files on exit

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
src/docker-manager.ts Added /etc/hosts:/host/etc/hosts:ro mount for chroot mode to enable localhost resolution
src/docker-manager.test.ts Added test assertion to verify /etc/hosts mount in chroot mode (duplicate of existing test on line 560)
containers/agent/entrypoint.sh Enhanced resolv.conf handling to create file when missing and clean up created files on exit

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

Comment on lines +717 to +730
const volumes = agent.volumes as string[];

// These are needed for getent/user lookup inside chroot
expect(volumes).toContain('/etc/passwd:/host/etc/passwd:ro');
expect(volumes).toContain('/etc/group:/host/etc/group:ro');
expect(volumes).toContain('/etc/nsswitch.conf:/host/etc/nsswitch.conf:ro');
});

it('should mount /etc/hosts for hostname resolution in chroot mode', () => {
const configWithChroot = {
...mockConfig,
enableChroot: true
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

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

This test is redundant with the existing test on line 560 in the 'should use selective mounts when enableChroot is true' test case. The /etc/hosts mount is already being verified there. Consider removing this duplicate test or enhancing it to test a different aspect (e.g., verifying that localhost can be resolved when using the mount).

Copilot uses AI. Check for mistakes.
Comment on lines +180 to +186
if cp /etc/resolv.conf /host/etc/resolv.conf 2>/dev/null; then
RESOLV_CREATED=true
echo "[entrypoint] DNS configuration created in chroot (/host/etc/resolv.conf)"
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

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

For consistency with the existing code pattern (lines 169-170), consider using an atomic write approach when creating the resolv.conf file. The current code uses a temporary file (.awf suffix) and mv for existing file replacement to avoid corruption. While less critical for file creation, using the same pattern would provide protection against race conditions and maintain code consistency. Suggested change: use 'cp /etc/resolv.conf /host/etc/resolv.conf.awf' followed by 'mv /host/etc/resolv.conf.awf /host/etc/resolv.conf' instead of a direct cp.

Suggested change
if cp /etc/resolv.conf /host/etc/resolv.conf 2>/dev/null; then
RESOLV_CREATED=true
echo "[entrypoint] DNS configuration created in chroot (/host/etc/resolv.conf)"
if cp /etc/resolv.conf /host/etc/resolv.conf.awf 2>/dev/null; then
if mv /host/etc/resolv.conf.awf /host/etc/resolv.conf 2>/dev/null; then
RESOLV_CREATED=true
echo "[entrypoint] DNS configuration created in chroot (/host/etc/resolv.conf)"
else
echo "[entrypoint][WARN] Could not move DNS configuration into place in chroot"
fi

Copilot uses AI. Check for mistakes.
fi
else
echo "[entrypoint][WARN] Could not backup host resolv.conf, skipping DNS override"
# File doesn't exist: create it (selective /etc mounts don't include resolv.conf)
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

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

The comment is somewhat confusing. Since we're already inside the chroot mode block (line 150), saying "e.g. chroot mode where /host/etc/resolv.conf is not mounted" is redundant and unclear. Consider revising to be more precise about the scenario, such as: "File doesn't exist: create it (e.g., host system without /etc/resolv.conf)" or "File doesn't exist on host: create it to ensure DNS resolution works inside chroot".

Suggested change
# File doesn't exist: create it (selective /etc mounts don't include resolv.conf)
# File doesn't exist on host: create it to ensure DNS resolution works inside chroot

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

C++ Build Test Results

Project CMake Build Status
fmt PASS
json PASS

Overall: PASS

All C++ projects built successfully.

AI generated by Build Test C++

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Node.js Build Test Results

Project Install Tests Status
clsx PASS PASS
execa PASS PASS
p-limit PASS PASS

Overall: PASS

All Node.js projects built and tested successfully.

AI generated by Build Test Node.js

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Deno Build Test Results

Project Tests Status
oak 1/1 ✅ PASS
std 1/1 ✅ PASS

Overall: ✅ PASS

All Deno tests completed successfully.

AI generated by Build Test Deno

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Smoke Test Results (Claude) ✅

Last 2 Merged PRs:

Test Results:

  • ✅ GitHub MCP: Retrieved PR data
  • ✅ Playwright: Page loaded (title: "GitHub · Change is constant. GitHub keeps you ahead. · GitHub")
  • ✅ File Writing: Created test file
  • ✅ Bash Tool: Verified file content

Overall Status: PASS

AI generated by Smoke Claude

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Go Build Test Results

Project Download Tests Status
color 1/1 PASS
env 1/1 PASS
uuid 1/1 PASS

Overall: PASS

All Go projects built and tested successfully.

AI generated by Build Test Go

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

✅ Smoke Test Results

GitHub MCP: ✅ PR #520, #521 reviewed
Playwright: ✅ Page title verified
File Write: ✅ Test file created
Bash Tool: ✅ File verified

Status: PASS

cc @Mossaka

AI generated by Smoke Copilot

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Build Test: Java - FAILED ❌

Status: ENVIRONMENT ERROR

Unable to execute Java build tests due to critical system misconfiguration.

Error Details

The GitHub Actions runner environment has a broken Java/Maven toolchain:

  • Symptom: Executing java -version produces bash version output instead of JVM output
  • Root cause: System error fatal library error, lookup self when attempting process inspection
  • Impact: Cannot compile or test any Java projects

Attempted Projects

Project Compile Tests Status
gson - ENV_ERROR
caffeine - ENV_ERROR

Overall: FAIL (Environment broken)

Recommendations

  1. Investigate GitHub Actions runner Java setup
  2. Consider using a containerized Java environment
  3. Verify JVM binary compatibility with runner architecture

AI generated by Build Test Java

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

❌ Bun Build Test - FAILED

Environment Incompatibility Detected

Project Install Tests Status
elysia N/A FAILED
hono N/A FAILED

Overall: FAILED

Error Details

Bun runtime crashed in the container environment:

  • Error: Aborted (core dumped) (exit code 134)
  • Root Cause: Container lacks /proc/cpuinfo which Bun requires for CPU feature detection
  • Impact: Both bun install and bun test commands abort immediately

Environment Info

  • Bun version: 1.3.8
  • Kernel: 6.11.0-1018-azure x86_64
  • Missing: /proc/cpuinfo, /etc/os-release

Recommendation

Run Bun tests in a standard VM or container with full /proc filesystem access, or use an alternative test runner (Node.js/Deno) for validation.

AI generated by Build Test Bun

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

❌ Build Test: Rust - INFRASTRUCTURE FAILURE

Status: Unable to execute tests due to GitHub Actions runner environment issue.

Issue Description

All command execution in the runner is being hijacked to output bash --version instead of running actual commands. This affects:

  • Direct bash command execution
  • Python subprocess calls
  • Node.js child_process.execSync() calls
  • Absolute path execution (e.g., /home/runner/.cargo/bin/rustup)

Evidence

$ /home/runner/.cargo/bin/rustup --version
GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2022 Free Software Foundation, Inc.
...

Even though /home/runner/.cargo/bin/rustup is a valid ELF executable (confirmed with file and ldd), attempting to execute it returns bash version information.

Next Steps

This appears to be a platform-level issue that requires investigation by the GitHub Actions team. The test cannot proceed without the ability to execute binaries normally.


Test Requirements:

  • Clone Mossaka/gh-aw-firewall-test-rust
  • Build & test fd project ❌ (blocked)
  • Build & test zoxide project ❌ (blocked)

AI generated by Build Test Rust

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

📰 DEVELOPING STORY: Smoke Copilot reports failed. Our correspondents are investigating the incident...

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Chroot tests failed Smoke Chroot failed - See logs for details.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

C++ Build Test Results

Project CMake Build Status
fmt PASS
json PASS

Overall: PASS

All C++ projects built successfully.

AI generated by Build Test C++

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Node.js Build Test Results

Project Install Tests Status
clsx PASS PASS
execa PASS PASS
p-limit PASS PASS

Overall: PASS

All projects installed successfully and passed their test suites.

AI generated by Build Test Node.js

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Build Test: Java - ❌ FAILED

Status: Environment Error

Unable to execute Java build tests due to Maven installation failure.

Error Details

mvn --version
-Dclassworlds.conf=/usr/share/apache-maven-3.9.12/bin/m2.conf: line 1: /usr/share/apache-maven-3.9.12/boot/plexus-classworlds-2.9.0.jar: cannot execute binary file: Exec format error

Test Results

Project Compile Tests Status
gson ⚠️ N/A N/A NOT RUN
caffeine ⚠️ N/A N/A NOT RUN

Overall: FAILED (Environment Error)

Required Action

The GitHub Actions runner's Maven installation is corrupted. This needs to be fixed before Java build tests can run.

AI generated by Build Test Java

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Copilot Smoke Test Results

Last 2 merged PRs:

Test Results:

  • ✅ GitHub MCP: Successfully retrieved merged PRs
  • ✅ Playwright: Page title verified "GitHub · Change is constant. GitHub keeps you ahead. · GitHub"
  • ✅ File write: Created /tmp/gh-aw/agent/smoke-test-copilot-21728091506.txt
  • ✅ Bash: Verified file content

Status: PASS

cc @Mossaka

AI generated by Smoke Copilot

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Build Test: Bun - FAILED ❌

Error: Bun installation succeeded but bun install fails with internal error.

Results

Project Install Tests Status
elysia N/A FAIL
hono N/A FAIL

Overall: FAIL

Error Details

error: An internal error occurred (NotDir)

All attempts to run bun install fail with "NotDir" error, including:

  • Original repository directories
  • Fresh temporary directories
  • Empty test projects

Root Cause: Bun v1.3.8 appears incompatible with this GitHub Actions runner environment.

Next Steps: Investigation needed for Bun compatibility with GitHub Actions infrastructure.

AI generated by Build Test Bun

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Smoke Test Results - Claude Engine

Last 2 Merged PRs:

Test Results:

  • ✅ GitHub MCP: Successfully retrieved PRs
  • ✅ Playwright: Navigated to github.com, title verified
  • ✅ File Write: Created test file
  • ✅ Bash: Verified file content

Status: PASS

AI generated by Smoke Claude

@Mossaka Mossaka force-pushed the fix/chroot-etc-hosts-resolv-conf branch from 2c3cf49 to 23e51ba Compare February 5, 2026 20:57
@Mossaka
Copy link
Collaborator Author

Mossaka commented Feb 5, 2026

Heads up — main has had 3 PRs merged since this branch diverged:

  1. fix: remove HTTP_PROXY/HTTPS_PROXY env vars from agent container #524 — Removed HTTP_PROXY/HTTPS_PROXY from agent container
  2. chore: recompile workflow lock files for AWF v0.13.5 #526 — Recompiled all lock files from --image-tag 0.13.40.13.5
  3. fix: recompile lock files with release action mode #527 — Fixed lock files to use release action mode (github/gh-aw/actions/setup@SHA instead of ./actions/setup)

You'll need to rebase onto origin/main to resolve the conflicts. The lock files changed significantly (image tag bump), and docker-manager.ts + entrypoint.sh have proxy-related changes that overlap with this PR.

Key things to know when rebasing:

  • The HTTP_PROXY removal is already in main — just keep this PR's /etc/hosts mount and resolv.conf handling
  • Lock files need to stay at v0.13.5 with release action mode
  • After rebase, recompile any lock files this PR modified: gh-aw compile --action-mode release --action-tag v0.42.0 smoke-chroot

Mossaka and others added 3 commits February 5, 2026 21:03
Mount /etc/hosts read-only inside the chroot so hostname resolution
(e.g. localhost) works correctly for language runtimes.

Handle the case where /host/etc/resolv.conf doesn't exist (which
happens with selective /etc mounts): create the file instead of
failing, and clean it up on exit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove the HTTP_PROXY env var from the agent container. Since commit
183e451 added iptables DNAT (intercept mode), HTTP traffic on port 80
is already redirected to Squid's intercept port. Setting HTTP_PROXY
caused curl to forward-proxy through port 3128, where Squid's 403
error page is a valid HTTP response (exit code 0), breaking the
"block HTTP" integration test.

Fix the HTTP blocking test to check the HTTP status code (not exit
code) since Squid returns a 403 HTML page for blocked HTTP requests
in intercept mode.

HTTPS_PROXY is retained because HTTPS needs the explicit CONNECT
method through Squid's forward-proxy port (3128).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Create the .copilot directory with correct ownership before installing
the Copilot CLI to prevent permission errors when running as the
runner user.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Mossaka Mossaka force-pushed the fix/chroot-etc-hosts-resolv-conf branch from 23e51ba to a8d0821 Compare February 5, 2026 21:04
@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Chroot tests failed Smoke Chroot failed - See logs for details.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

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

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Deno Build Test Results ✅

Project Tests Status
oak 1/1 ✅ PASS
std 1/1 ✅ PASS

Overall: ✅ PASS

All Deno tests completed successfully.

AI generated by Build Test Deno

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

C++ Build Test Results

Project CMake Build Status
fmt PASS
json PASS

Overall: PASS

All C++ projects built successfully.

AI generated by Build Test C++

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Smoke Test Results (Copilot) ✅

Last 2 merged PRs:

Tests:

  • ✅ GitHub MCP: Fetched merged PRs
  • ✅ Playwright: Verified GitHub page title
  • ✅ File Writing: Created test file
  • ✅ Bash Tool: Verified file contents

Status: PASS

cc @Mossaka (author)

AI generated by Smoke Copilot

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Node.js Build Test Results

Project Install Tests Status
clsx PASS PASS
execa PASS PASS
p-limit PASS PASS

Overall: PASS

All Node.js projects successfully installed dependencies and passed their test suites.

AI generated by Build Test Node.js

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Go Build Test Results

Project Download Tests Status
color 1/1 PASS
env 1/1 PASS
uuid 1/1 PASS

Overall: PASS

All Go projects successfully downloaded dependencies and passed tests.

AI generated by Build Test Go

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Smoke Test Results (Claude)

Last 2 merged PRs:

✅ GitHub MCP - Fetched PRs successfully
✅ Playwright - Navigated to github.com (title verified)
✅ File Write - Created test file successfully
✅ Bash - File contents verified

Status: PASS

AI generated by Smoke Claude

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Bun Build Test Results

Summary

Project Install Tests Status
elysia ⚠️ N/A (no deps) ❌ 0/0 FAIL
hono ⚠️ N/A (no deps) ❌ 0/0 FAIL

Overall: FAIL

Details

Both test projects failed with the same error:

bun test v1.3.8 (b64edcb4)
Aborted (core dumped)
Exit code: 134

Environment:

Issue: Bun test runner is crashing with a core dump in this container environment. This appears to be a Bun compatibility issue with the execution environment, not a project-specific problem.

Test files examined:

  • elysia: Simple addition test (expect(2+2).toBe(4))
  • hono: Similar basic test structure

Both projects have minimal package.json files with no dependencies, so bun install was not required (reported N/A for install status).

AI generated by Build Test Bun

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Build Test: Rust - FAILED ❌

Status: INFRASTRUCTURE FAILURE

Unable to execute Rust build tests due to toolchain malfunction.

Error Details

The Rust toolchain (rustup/cargo) is not functioning correctly in the test environment:

  • cargo commands fail with "No such file or directory" despite binary existing
  • Process execution results in "fatal library error, lookup self"
  • Both pre-installed and freshly-installed rustup exhibit the same behavior

Projects Status

Project Build Tests Status
fd - NOT TESTED
zoxide - NOT TESTED

Overall: FAIL (Infrastructure issue - Rust toolchain unavailable)

Next Steps

This appears to be a system-level issue with the test environment. Recommend:

  1. Investigating runner compatibility with Rust binaries
  2. Using alternative Rust installation method (e.g., apt packages)
  3. Checking for missing system libraries

AI generated by Build Test Rust

@Mossaka Mossaka merged commit 46859bd into main Feb 5, 2026
77 of 81 checks passed
@Mossaka Mossaka deleted the fix/chroot-etc-hosts-resolv-conf branch February 5, 2026 21:20
Mossaka added a commit that referenced this pull request Feb 6, 2026
Reverts the following PRs which introduced unnecessary complexity:

- #520: fix: enable Squid intercept mode for NAT-redirected traffic
- v0.13.5 release: chore(release): bump version to 0.13.5
- #524: fix: remove HTTP_PROXY/HTTPS_PROXY env vars from agent container
- #526: chore: recompile workflow lock files for AWF v0.13.5
- #527: fix: recompile lock files with release action mode
- #522: fix: mount /etc/hosts in chroot and fix HTTP blocking test
- #530: fix: restore HTTPS_PROXY, fix chroot hosts/permissions, fix Bun crash
- v0.13.6 release: chore(release): bump version to 0.13.6

The intercept mode (#520) was introduced to fix Codex failing with
HTTP_PROXY, but the simpler fix is to just not set HTTP_PROXY for
Codex. The intercept mode introduced a cascade of breakage:
- HTTPS can't be transparently intercepted (needs CONNECT method)
- Image version bumps required lock file recompilation
- host.docker.internal traffic crashed Squid under load
- Multiple PRs needed to fix each regression

This reverts to the pre-#520 explicit proxy mode (HTTP_PROXY/HTTPS_PROXY
pointing to Squid port 3128) which worked for all engines.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mossaka added a commit that referenced this pull request Feb 6, 2026
Reverts the following PRs which introduced unnecessary complexity:

- #520: fix: enable Squid intercept mode for NAT-redirected traffic
- v0.13.5 release: chore(release): bump version to 0.13.5
- #524: fix: remove HTTP_PROXY/HTTPS_PROXY env vars from agent container
- #526: chore: recompile workflow lock files for AWF v0.13.5
- #527: fix: recompile lock files with release action mode
- #522: fix: mount /etc/hosts in chroot and fix HTTP blocking test
- #530: fix: restore HTTPS_PROXY, fix chroot hosts/permissions, fix Bun crash
- v0.13.6 release: chore(release): bump version to 0.13.6

The intercept mode (#520) was introduced to fix Codex failing with
HTTP_PROXY, but the simpler fix is to just not set HTTP_PROXY for
Codex. The intercept mode introduced a cascade of breakage:
- HTTPS can't be transparently intercepted (needs CONNECT method)
- Image version bumps required lock file recompilation
- host.docker.internal traffic crashed Squid under load
- Multiple PRs needed to fix each regression

This reverts to the pre-#520 explicit proxy mode (HTTP_PROXY/HTTPS_PROXY
pointing to Squid port 3128) which worked for all engines.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

1 participant