Problem
The AWF agent container defaults to a 2GB memory limit with no swap, causing OOM kills (exit code 137) for large projects. GitHub Actions ubuntu-latest runners provide 7GB RAM — the current default gives agents only 28.5% of the memory they'd have without AWF.
Evidence
Four repos consistently fail with OOM in the v6 build-test experiment:
| Repo |
Failure Mode |
Evidence |
| javascript/prettier |
Copilot CLI killed mid-execution |
line 9: 137 Killed /bin/bash -c '/usr/local/bin/copilot ...' |
| k8s/k9s |
Go linker OOM |
github.com/derailed/k9s: .../link: signal: killed |
| k8s/stern |
Go linker OOM |
Same pattern as k9s — large Go dependency tree |
| erlang/cowboy |
Common Test OOM |
req_SUITE (900 test cases) killed with exit code 137 |
Exit code 137 = SIGKILL from the container OOM killer. These projects build fine on standard GitHub Actions runners with 7GB RAM.
Code Reference
// src/docker-manager.ts:1031-1032
mem_limit: config.memoryLimit || '2g',
memswap_limit: config.memoryLimit || '2g', // No swap (same as mem_limit)
Resource Budget
The full AWF container stack on a 7GB runner:
| Container |
Current |
Proposed |
| Agent |
2GB |
6GB |
| Squid proxy |
512MB |
512MB |
| DoH resolver |
128MB |
128MB |
| DNS init |
128MB |
128MB |
| Total |
~2.8GB |
~6.8GB |
The proposed 6.8GB total fits within the 7GB runner budget while giving the agent 85% of available memory (vs 28.5% today).
Proposed Fix
- Increase default
mem_limit from '2g' to '6g' in src/docker-manager.ts:1031-1032
- Enable swap by setting
memswap_limit to -1 (unlimited) or a value higher than mem_limit (e.g., '8g'), so the kernel can use swap as a pressure valve instead of immediately OOM-killing
- The
--memory-limit CLI flag already exists and will continue to work for users who want custom limits
Impact
This would immediately unblock 4 repos (prettier, k9s, stern, cowboy) that have been persistently failing across v5 and v6 experiments, without requiring any per-workflow configuration changes.
Problem
The AWF agent container defaults to a 2GB memory limit with no swap, causing OOM kills (exit code 137) for large projects. GitHub Actions
ubuntu-latestrunners provide 7GB RAM — the current default gives agents only 28.5% of the memory they'd have without AWF.Evidence
Four repos consistently fail with OOM in the v6 build-test experiment:
line 9: 137 Killed /bin/bash -c '/usr/local/bin/copilot ...'github.com/derailed/k9s: .../link: signal: killedreq_SUITE(900 test cases) killed with exit code 137Exit code 137 = SIGKILL from the container OOM killer. These projects build fine on standard GitHub Actions runners with 7GB RAM.
Code Reference
Resource Budget
The full AWF container stack on a 7GB runner:
The proposed 6.8GB total fits within the 7GB runner budget while giving the agent 85% of available memory (vs 28.5% today).
Proposed Fix
mem_limitfrom'2g'to'6g'insrc/docker-manager.ts:1031-1032memswap_limitto-1(unlimited) or a value higher thanmem_limit(e.g.,'8g'), so the kernel can use swap as a pressure valve instead of immediately OOM-killing--memory-limitCLI flag already exists and will continue to work for users who want custom limitsImpact
This would immediately unblock 4 repos (prettier, k9s, stern, cowboy) that have been persistently failing across v5 and v6 experiments, without requiring any per-workflow configuration changes.