Conversation
The api-proxy container used shell form CMD, making /bin/sh PID 1 instead of Node.js. The shell doesn't forward SIGTERM, forcing Docker to wait its 10s grace period before SIGKILL. Switch to exec form so Node.js handles SIGTERM directly. Also add --skip-cleanup flag to skip all cleanup in CI environments where the runner terminates anyway, saving additional shutdown time. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
| Metric | Base | PR | Delta |
|---|---|---|---|
| Lines | 82.03% | 82.06% | 📈 +0.03% |
| Statements | 82.01% | 82.03% | 📈 +0.02% |
| Functions | 82.50% | 82.50% | ➡️ +0.00% |
| Branches | 74.20% | 74.15% | 📉 -0.05% |
📁 Per-file Coverage Changes (2 files)
| File | Lines (Before → After) | Statements (Before → After) |
|---|---|---|
src/cli.ts |
46.6% → 46.3% (-0.36%) | 47.0% → 46.7% (-0.36%) |
src/docker-manager.ts |
83.1% → 83.7% (+0.56%) | 82.4% → 83.0% (+0.54%) |
Coverage comparison generated by scripts/ci/compare-coverage.ts
Node.js Build Test Results ✅
Overall: PASS
|
Bun Build Test Results
Overall: ✅ PASS All tests passed with Bun v1.3.10.
|
Smoke Test Results
Overall: PASS
|
🦀 Rust Build Test Results
Overall: ✅ PASS
|
🦕 Deno Build Test Results
Overall: ✅ PASS Test output detailsoak:
|
|
Smoke test results (run 22730613841) ✅ GitHub MCP — Last 2 merged PRs: #1078 Overall: PASS | PR by
|
.NET Build Test Results
Overall: PASS Run outputhello-world: json-parse:
|
|
Merged PRs: fix: add explicit execute directive to smoke-codex to prevent noop | fix(deps): resolve high-severity rollup vulnerability in docs-site
|
Chroot Version Comparison Results
Result: FAILED — Python and Node.js versions differ between host and chroot environments.
|
C++ Build Test Results
Overall: PASS 🎉
|
Go Build Test Results
Overall: ✅ PASS
|
Java Build Test Results ☕
Overall: PASS 🎉 Both Java projects compiled and all tests passed successfully through the AWF firewall proxy.
|
Summary
Fixes #1103. The
awf-api-proxycontainer takes ~10s to stop because its Dockerfile uses shell formCMD, making/bin/shPID 1 instead of Node.js. The shell doesn't forward SIGTERM, so Docker waits its 10s grace period before SIGKILL.--skip-cleanupflag: Skip all cleanup (containers, iptables, work dir) in CI where the runner terminates anyway, saving additional ~10sTest plan
npm run buildcompiles successfullynpm test— all 821 tests passnpm run lint— 0 errorssudo awf --build-local --allow-domains github.com -- curl https://api.github.com— verify fast shutdownsudo awf --skip-cleanup --build-local --allow-domains github.com -- curl https://api.github.com— verify no cleanup happens🤖 Generated with Claude Code