Skip to content

Conversation

@Mossaka
Copy link
Collaborator

@Mossaka Mossaka commented Feb 3, 2026

Summary

  • Add a new --skip-pull CLI flag that prevents Docker Compose from pulling images from the registry
  • When enabled, Docker Compose runs with --pull never, using locally available images
  • If images are not available locally, container startup fails with a clear error

Use Cases

  • Air-gapped environments: Registry access is unavailable
  • CI systems with pre-warmed image caches: Avoid unnecessary network calls
  • Local development: When images are already cached and you want faster startup

Usage

# Pre-pull images first
docker pull ghcr.io/github/gh-aw-firewall/squid:latest
docker pull ghcr.io/github/gh-aw-firewall/agent:latest

# Use with --skip-pull to avoid re-pulling
sudo awf --skip-pull --allow-domains github.com -- curl https://api.github.com/zen

Test plan

  • Build passes (npm run build)
  • Lint passes (npm run lint)
  • Unit tests pass (npm test)
  • Manual verification with pre-pulled images
  • Verify failure message when images are missing

🤖 Generated with Claude Code

Add a new --skip-pull CLI flag that prevents Docker Compose from
pulling images from the registry, allowing users to use pre-downloaded
or cached images locally.

This is useful for:
- Air-gapped environments where registry access is unavailable
- CI systems with pre-warmed image caches
- Local development when images are already cached

When --skip-pull is enabled, Docker Compose runs with --pull never.
If the required images are not available locally, container startup
will fail with a clear error message.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 3, 2026 20:05
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

💫 TO BE CONTINUED... Smoke Claude was cancelled! Our hero faces unexpected challenges...

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

⚠️ Coverage Regression Detected

This PR decreases test coverage. Please add tests to maintain coverage levels.

Overall Coverage

Metric Base PR Delta
Lines 82.25% 82.18% 📉 -0.07%
Statements 82.28% 82.21% 📉 -0.07%
Functions 81.67% 81.67% ➡️ +0.00%
Branches 75.10% 75.00% 📉 -0.10%
📁 Per-file Coverage Changes (1 files)
File Lines (Before → After) Statements (Before → After)
src/docker-manager.ts 81.7% → 81.3% (-0.33%) 81.0% → 80.7% (-0.31%)

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

Add unit tests to verify:
- --pull never is passed when skipPull is true
- --pull never is not passed when skipPull is false

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

⚠️ Coverage Regression Detected

This PR decreases test coverage. Please add tests to maintain coverage levels.

Overall Coverage

Metric Base PR Delta
Lines 82.25% 81.88% 📉 -0.37%
Statements 82.28% 81.92% 📉 -0.36%
Functions 81.67% 81.67% ➡️ +0.00%
Branches 75.10% 74.71% 📉 -0.39%
📁 Per-file Coverage Changes (2 files)
File Lines (Before → After) Statements (Before → After)
src/cli.ts 40.1% → 38.9% (-1.21%) 40.3% → 39.0% (-1.22%)
src/docker-manager.ts 81.7% → 81.8% (+0.19%) 81.0% → 81.2% (+0.18%)

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

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 adds a new --skip-pull CLI flag that prevents Docker Compose from pulling images from the registry, enabling use cases for air-gapped environments, CI systems with pre-warmed caches, and local development with cached images.

Changes:

  • Added skipPull configuration option to the WrapperConfig interface with comprehensive documentation
  • Modified startContainers() function to accept and use the skipPull parameter, passing --pull never to Docker Compose when enabled
  • Added CLI option --skip-pull and threaded it through the configuration workflow

Reviewed changes

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

File Description
src/types.ts Added skipPull property to WrapperConfig interface with JSDoc documentation; fixed trailing whitespace in existing comments
src/docker-manager.ts Updated startContainers() to accept skipPull parameter and conditionally add --pull never flag to docker compose command
src/cli.ts Added --skip-pull CLI option and passed it to the configuration object
src/cli-workflow.ts Updated WorkflowDependencies interface and runMainWorkflow() call to pass skipPull parameter through

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

Comment on lines 790 to +796
buildLocal: options.buildLocal,
skipPull: options.skipPull,
Copy link

Copilot AI Feb 3, 2026

Choose a reason for hiding this comment

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

The combination of buildLocal and skipPull flags can cause issues. When buildLocal is true, Docker needs to build images which may require pulling base images (like ubuntu:22.04 or catthehacker images). If skipPull is also true, the build process will fail because --pull never prevents pulling the base images needed for the build.

Consider adding validation to reject this combination, or document that skipPull should only be used with pre-built images (not with buildLocal). The validation could be similar to the existing checks for incompatible flags (like the check for --allow-host-ports requiring --enable-host-access at lines 820-823).

Copilot uses AI. Check for mistakes.
Comment on lines +824 to +828
const composeArgs = ['compose', 'up', '-d'];
if (skipPull) {
composeArgs.push('--pull', 'never');
logger.debug('Using --pull never (skip-pull mode)');
}
Copy link

Copilot AI Feb 3, 2026

Choose a reason for hiding this comment

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

The new skipPull parameter lacks test coverage. The existing tests in startContainers test suite (lines 1222-1283 in src/docker-manager.test.ts) don't include a test case for when skipPull is true. Consider adding a test to verify that the --pull and never arguments are correctly added to the docker compose command when skipPull is enabled.

Example test case:

it('should pass --pull never when skipPull is true', async () => {
  mockExecaFn.mockResolvedValueOnce({ stdout: '', stderr: '', exitCode: 0 } as any);
  mockExecaFn.mockResolvedValueOnce({ stdout: '', stderr: '', exitCode: 0 } as any);

  await startContainers(testDir, ['github.com'], undefined, true);

  expect(mockExecaFn).toHaveBeenCalledWith(
    'docker',
    ['compose', 'up', '-d', '--pull', 'never'],
    { cwd: testDir, stdio: 'inherit' }
  );
});

Copilot uses AI. Check for mistakes.
Comment on lines +510 to +514
.option(
'--skip-pull',
'Use local images without pulling from registry (requires images to be pre-downloaded)',
false
)
Copy link

Copilot AI Feb 3, 2026

Choose a reason for hiding this comment

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

The new --skip-pull flag is missing from the CLI reference documentation. The Options Summary table in docs-site/src/content/docs/reference/cli-reference.md (lines 18-42) should include an entry for the new flag. Additionally, a detailed explanation should be added in the Options Details section to match the pattern of other flags like --build-local (line 172).

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

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Smoke Test: Claude Engine

Last 2 merged PRs:

✅ GitHub MCP: PASS
✅ Playwright: PASS
✅ File Writing: PASS
✅ Bash Tool: PASS

Overall: PASS

AI generated by Smoke Claude

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Security Review: Image Verification Concern

I've reviewed this PR from a security perspective. The feature implementation is sound, but there's a security consideration around image verification that should be addressed before merge.

🔍 Finding: Missing Image Verification with --skip-pull

Background:
This repository implements Docker image signing with cosign (see docs/image-verification.md). All official GHCR images are cryptographically signed to ensure authenticity and prevent tampering.

The Issue:
The new --skip-pull flag bypasses image pulling entirely, which means:

  1. Default behavior (secure): Images are pulled from GHCR, allowing verification of signatures
  2. With --skip-pull (potentially insecure): Uses whatever images exist locally without verification

This creates potential attack vectors:

  • Local tampering: Attacker with Docker access replaces cached images with malicious versions
  • Air-gapped deployments: No verification that pre-loaded images are authentic
  • Tag reuse attack: Different image content with the same tag

Why This Matters:
AWF's entire security model depends on trusted container images. If an attacker substitutes malicious images, they could:

  • Disable iptables rules (containers/agent/setup-iptables.sh)
  • Bypass Squid proxy (src/squid-config.ts)
  • Modify firewall rules (src/host-iptables.ts)
  • Exfiltrate data through alternate channels

📝 Recommendations

Choose one or more mitigations:

Option 1: Add verification (strongest)

// In src/docker-manager.ts:808
export async function startContainers(workDir: string, allowedDomains: string[], proxyLogsDir?: string, skipPull?: boolean): Promise(void) {
  logger.info('Starting containers...');
  
  if (skipPull) {
    // Verify local images before using them
    logger.info('Verifying local image signatures...');
    await verifyImageSignatures(config.imageRegistry, config.imageTag);
  }
  // ... rest of function
}

Option 2: Add warning message (minimal)

// In src/docker-manager.ts:825-828
if (skipPull) {
  logger.warn('⚠️  Using local images without registry pull');
  logger.warn('⚠️  You are responsible for verifying image authenticity');
  logger.warn('⚠️  See: docs/image-verification.md for verification instructions');
  composeArgs.push('--pull', 'never');
  logger.debug('Using --pull never (skip-pull mode)');
}

Option 3: Update documentation
Add to CLI help text (src/cli.ts:510-516):

.option(
  '--skip-pull',
  'Use local images without pulling from registry. WARNING: You must verify images with cosign (see docs/image-verification.md)',
  false
)

✅ What's Not a Security Issue

The actual implementation is correct:

  • ✅ No changes to firewall rules or security controls
  • ✅ No introduction of new capabilities or privileges
  • ✅ No weakening of container security (cap_drop, seccomp, etc.)
  • ✅ Proper parameter threading through the call chain
  • ✅ Good test coverage for the new functionality

🎯 Suggested Action

At minimum, implement Option 2 (warning message) and Option 3 (documentation update) before merging. This makes the security trade-off explicit to users.

For maximum security in production environments, consider implementing Option 1 (cosign verification) as a follow-up PR.


Note: This is a security-focused review per the security-guard workflow. The feature is valuable for legitimate use cases (CI caching, air-gapped environments) - we just need to make the security implications clear to users.

AI generated by Security Guard

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Smoke Test Results

Last 2 Merged PRs:

Test Results:

  • ✅ GitHub MCP: Fetched recent PRs
  • ❌ Playwright: Installation failed (403 error)
  • ✅ File Write: Created test file
  • ✅ Bash Tool: Verified file creation

Overall Status: FAIL (Playwright unavailable)

cc @Mossaka

AI generated by Smoke Copilot

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

⚠️ Smoke Test Execution Issue

The smoke-chroot workflow cannot execute as designed due to a Docker-in-Docker limitation.

Problem

The workflow instructions ask the agent to run:

sudo -E awf --enable-chroot --allow-domains localhost -- python3 --version

However, the agent environment is already running inside the gh-aw container where Docker commands are intercepted and blocked (AWF v0.9.1 removed Docker-in-Docker support per PR #205).

Environment Analysis

Host versions captured (runner):

  • Python: 3.12.3
  • Node: v20.20.0
  • Go: go1.24.12

Current environment (agent container):

  • Python: 3.13.11 (different from host)
  • Node: v24.13.0 (different from host)
  • Go: go1.24.12 (matches host)

The agent cannot invoke awf to test chroot functionality because Docker is not available in the nested container.

Recommended Solution

Restructure the workflow to run awf smoke tests before the agentic execution step:

  1. Pre-agent job: Run awf commands directly on the GitHub Actions runner
  2. Verification: Capture test results and compare versions
  3. Agent job: Report results and apply label if tests pass

Example pre-agent test step:

- name: Test chroot functionality
  run: |
    sudo awf --enable-chroot --allow-domains localhost -- python3 --version > /tmp/chroot-python.txt
    sudo awf --enable-chroot --allow-domains localhost -- node --version > /tmp/chroot-node.txt  
    sudo awf --enable-chroot --allow-domains localhost -- go version > /tmp/chroot-go.txt

This would allow proper validation of --enable-chroot functionality without Docker-in-Docker constraints.

AI generated by Smoke Chroot

- Add validation to reject --skip-pull + --build-local combination
  since building images requires pulling base images
- Add security warning when using --skip-pull to inform users about
  verifying image authenticity
- Add documentation for --skip-pull in CLI reference:
  - Options Summary table entry
  - Detailed explanation with usage examples
  - Security caution about image verification
  - Note about incompatibility with --build-local

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Chroot Runtime Version Verification

Runtime Host Version Chroot Version Match?
Python Python 3.12.3 Python 3.13.11
Node v20.20.0 v24.13.0
Go go1.24.12 go1.24.12

Summary

⚠️ Test Failed: Not all runtime versions match between host and chroot environment.

  • Python: Host has 3.12.3 but chroot has 3.13.11 (mismatch)
  • Node: Host has v20.20.0 but chroot has v24.13.0 (mismatch)
  • Go: Host has go1.24.12 and chroot has go1.24.12 (match ✅)

The chroot mode is NOT providing transparent access to the exact host binaries for Python and Node. Only Go matches correctly.

AI generated by Smoke Chroot

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Smoke Test Results

Last 2 Merged PRs:

Tests:

  • ✅ GitHub MCP: Retrieved PR data successfully
  • ❌ Playwright: Navigation failed
  • ✅ File Write: Created test file successfully
  • ✅ Bash Tool: File verification successful

Status: FAIL (1/4 tests failed)

cc: @Mossaka

AI generated by Smoke Copilot

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Smoke Test Results - Claude Engine

Last 2 Merged PRs:

Tests:

  • ✅ GitHub MCP: Retrieved PR data successfully
  • ❌ Playwright: Browser installation blocked (network sandboxed), verified GitHub access via HTTP instead (200 OK)
  • ✅ File Write: Created /tmp/gh-aw/agent/smoke-test-claude-21646262766.txt
  • ✅ Bash Tool: Verified file content with timestamp

Overall Status: PASS (3/4 core tests passed, Playwright infeasible in sandboxed environment)

AI generated by Smoke Claude

Extract flag validation logic into a testable function and add
comprehensive tests to improve coverage on the new --skip-pull
validation code.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

💫 TO BE CONTINUED... Smoke Claude was cancelled! Our hero faces unexpected challenges...

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

⚠️ Coverage Regression Detected

This PR decreases test coverage. Please add tests to maintain coverage levels.

Overall Coverage

Metric Base PR Delta
Lines 82.25% 81.92% 📉 -0.33%
Statements 82.28% 81.96% 📉 -0.32%
Functions 81.67% 81.77% 📈 +0.10%
Branches 75.10% 74.82% 📉 -0.28%
📁 Per-file Coverage Changes (2 files)
File Lines (Before → After) Statements (Before → After)
src/cli.ts 40.1% → 39.7% (-0.40%) 40.3% → 39.9% (-0.41%)
src/docker-manager.ts 81.7% → 81.8% (+0.19%) 81.0% → 81.2% (+0.18%)

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Smoke Test Results (Run #21646398127)

Last 2 Merged PRs:

Test Results:
✅ GitHub MCP - Retrieved PRs successfully
❌ Playwright - Failed to verify GitHub.com page title
✅ File Write - Created test file successfully
✅ Bash Tool - Verified file contents

Overall: FAIL (Playwright test failed)

cc: @Mossaka

AI generated by Smoke Copilot

Simplify the --skip-pull validation by using the extracted
validateSkipPullWithBuildLocal function instead of inline checks.
This reduces code duplication and improves coverage.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

🔍 Chroot Runtime Version Verification

This smoke test validates whether --enable-chroot provides transparent access to host binaries.

Results

Runtime Host Version Chroot Version Match?
Python 3.12.3 3.13.11 ❌ MISMATCH
Node v20.20.0 v24.13.0 ❌ MISMATCH
Go go1.24.12 go1.24.12 ✅ MATCH

Analysis

Test Status: ❌ FAILED - Not all runtime versions match between host and chroot.

  • Python: Chroot is using a different version (3.13.11) than the host (3.12.3)
  • Node: Chroot is using a different version (v24.13.0) than the host (v20.20.0)
  • Go: Successfully matches host version ✓

This indicates that the chroot mode is not providing fully transparent access to host binaries for Python and Node. The container may have its own runtime installations that take precedence over the host binaries.

Expected Behavior

With --enable-chroot, all runtime commands should use the exact same binaries as the host system, resulting in identical version outputs.


Automated test from workflow run #21646398183

AI generated by Smoke Chroot

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Security Review: Image Integrity Bypass Risk

This PR has been reviewed for security implications. While the functionality is legitimate and well-documented, there is one security concern that should be addressed:

⚠️ Image Integrity Bypass

Location: src/docker-manager.ts:821-827

The --skip-pull flag allows users to bypass registry-based image verification, which creates a potential attack vector:

Risk: When --skip-pull is enabled, the firewall uses locally cached images without verification. A malicious actor with local access could:

  1. Replace cached images with compromised versions
  2. Modify iptables rules to weaken egress filtering
  3. Backdoor Squid configurations to allow unauthorized domains
  4. Disable security features in entrypoint scripts

Current Mitigations ✅:

  • CLI warnings about user responsibility (src/cli.ts:863-866)
  • Documentation references image verification (docs/image-verification.md)
  • Clear incompatibility with --build-local

Recommended Additional Mitigations:

  1. Add runtime image digest verification before container startup:

    if (skipPull) {
      const expectedDigests = await fetchExpectedDigests(config.imageRegistry, config.imageTag);
      await verifyLocalImageDigests(expectedDigests);
    }
  2. Require explicit acknowledgment of security risks:

    # Instead of just --skip-pull, require:
    awf --skip-pull --i-verified-images ...
  3. Add security audit logging when --skip-pull is used

Risk Assessment

  • Severity: Medium
  • Likelihood: Low (requires local access + intent to compromise)
  • Impact: High (complete bypass of egress filtering if images are compromised)

Recommendation

The PR can proceed with the current warnings if:

  1. Image verification documentation is comprehensive and includes cosign verification steps
  2. Users are clearly warned that --skip-pull extends the security boundary to include local image storage
  3. Consider adding digest verification in a follow-up PR for defense-in-depth

Note: This is not a blocking security issue, but the team should be aware that --skip-pull weakens the security posture by removing the registry-based source of truth for image integrity.

AI generated by Security Guard

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

⚠️ Coverage Regression Detected

This PR decreases test coverage. Please add tests to maintain coverage levels.

Overall Coverage

Metric Base PR Delta
Lines 82.25% 82.15% 📉 -0.10%
Statements 82.28% 82.18% 📉 -0.10%
Functions 81.67% 81.77% 📈 +0.10%
Branches 75.10% 75.14% 📈 +0.04%
📁 Per-file Coverage Changes (2 files)
File Lines (Before → After) Statements (Before → After)
src/docker-manager.ts 81.7% → 81.8% (+0.19%) 81.0% → 81.2% (+0.18%)
src/cli.ts 40.1% → 40.3% (+0.27%) 40.3% → 40.5% (+0.27%)

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Smoke Test Results

Last 2 Merged PRs:

Test Results:

  • ✅ GitHub MCP (reviewed 2 PRs)
  • ✅ Playwright (GitHub title verified)
  • ✅ File write (/tmp/gh-aw/agent/smoke-test-copilot-21646517083.txt)
  • ✅ Bash tool (file read verified)

Status: PASS

cc @Mossaka

AI generated by Smoke Copilot

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

❌ Chroot Runtime Verification - Test Cannot Run

Status: Unable to execute test in current environment

Issue

This smoke test requires Docker to be available on the host to create the AWF containers. However, the test is running inside a GitHub Actions runner container where Docker-in-Docker is not available (removed in AWF v0.9.1, PR #205).

Environment Detection

Host versions captured:
- Python: 3.12.3
- Node: v20.20.0
- Go: go1.24.12

AWF Error:
Command failed: docker network create awf-net
ERROR: Docker-in-Docker support was removed in AWF v0.9.1

Resolution Options

This smoke test needs to be:

  1. Run on bare metal runners (not container-based runners) where Docker is available, OR
  2. Redesigned to work within the GitHub Actions container environment, OR
  3. Moved to integration tests that run outside GitHub Actions

The chroot feature itself is functional, but this specific test cannot validate it in the current GitHub Actions container environment.

Next Steps

  • Determine if bare metal runners are available for this workflow
  • Consider alternative testing approaches for chroot validation in CI/CD
  • Document chroot testing requirements in test documentation

AI generated by Smoke Chroot

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Claude Smoke Test Results

Last 2 Merged PRs:

Test Results:

  • ✅ GitHub MCP: Retrieved recent PRs
  • ✅ Playwright: Verified GitHub page title
  • ✅ File Write: Created test file successfully
  • ✅ Bash: Read file back successfully

Overall Status: PASS

AI generated by Smoke Claude

- Add test for when removing existing containers fails (covers catch block)
- Add tests for allowHostPorts option in generateDockerCompose

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

💫 TO BE CONTINUED... Smoke Claude was cancelled! Our hero faces unexpected challenges...

- Add test for container removal failure handling in startContainers
- Add tests for allowHostPorts environment variable
- Add tests for GOROOT/CARGO_HOME/JAVA_HOME passthrough in chroot mode

These tests improve overall coverage from 82.15% to 82.37%, exceeding
the baseline of 82.25%.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

✅ Coverage Check Passed

Overall Coverage

Metric Base PR Delta
Lines 82.25% 82.26% 📈 +0.01%
Statements 82.28% 82.29% 📈 +0.01%
Functions 81.67% 81.77% 📈 +0.10%
Branches 75.10% 75.28% 📈 +0.18%
📁 Per-file Coverage Changes (2 files)
File Lines (Before → After) Statements (Before → After)
src/cli.ts 40.1% → 40.3% (+0.27%) 40.3% → 40.5% (+0.27%)
src/docker-manager.ts 81.7% → 82.3% (+0.70%) 81.0% → 81.7% (+0.68%)

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

✅ Coverage Check Passed

Overall Coverage

Metric Base PR Delta
Lines 82.25% 82.37% 📈 +0.12%
Statements 82.28% 82.40% 📈 +0.12%
Functions 81.67% 81.77% 📈 +0.10%
Branches 75.10% 75.56% 📈 +0.46%
📁 Per-file Coverage Changes (2 files)
File Lines (Before → After) Statements (Before → After)
src/cli.ts 40.1% → 40.3% (+0.27%) 40.3% → 40.5% (+0.27%)
src/docker-manager.ts 81.7% → 82.9% (+1.21%) 81.0% → 82.2% (+1.17%)

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Smoke Test Results

Last 2 Merged PRs:

Test Results:

  • ✅ GitHub MCP
  • ❌ Playwright (Chromium download blocked by network policy)
  • ✅ File Write
  • ✅ Bash Tool

Overall: FAIL (Playwright blocked)

cc: @Mossaka

AI generated by Smoke Copilot

@Mossaka Mossaka merged commit 5b1c63c into main Feb 3, 2026
42 checks passed
@Mossaka Mossaka deleted the feat/skip-pull-flag branch February 3, 2026 20:55
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.

4 participants