Skip to content

Fix external detection job setup for codex and pi workflows#40954

Merged
pelikhan merged 14 commits into
mainfrom
copilot/ensure-awf-container-download
Jun 23, 2026
Merged

Fix external detection job setup for codex and pi workflows#40954
pelikhan merged 14 commits into
mainfrom
copilot/ensure-awf-container-download

Conversation

Copilot AI commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

When features: gh-aw-detection: true and engine: codex, the detection job skipped pulling AWF container images, causing docker compose up -d --pull never to fail with "No such image" for squid and api-proxy.

This PR also fixes the engine: pi external detector path to use the Copilot agentic engine for the detection job, since threat-detect does not support invoking Pi directly.

Additionally, the external Codex detector path now prepares the minimal MCP/Codex config files that threat-detect --engine codex expects, so Codex no longer exits with CODEX_HOME points to "/tmp/gh-aw/mcp-config", but that path does not exist.

Root cause

buildDetectionJobSteps unconditionally skipped buildPullAWFContainersStep for codex, assuming MCP setup would emit the download step. That assumption only holds for the inline pathbuildDetectionEngineExecutionStep (which calls generateMCPSetup) is never invoked on the external detector path (gh-aw-detection: true).

Separately, the external detector path reused the main workflow engine selection as-is, so Pi workflows compiled detection jobs that invoked threat-detect --engine pi, even though the external detector only supports the built-in gh-aw agentic engines.

For Codex, the external detector path also skipped the inline Codex MCP/config bootstrap entirely, so the detection job invoked threat-detect --engine codex without the writable CODEX_HOME directory and config files that Codex expects.

Changes

  • pkg/workflow/threat_detection.go — guard the codex skip on external detector being disabled:

    // Before
    if c.getThreatDetectionEngineID(data) != "codex" {
        steps = append(steps, c.buildPullAWFContainersStep(data)...)
    }
    
    // After
    usingExternalDetector := isFeatureEnabled(constants.GHAWDetectionFeatureFlag, data)
    if c.getThreatDetectionEngineID(data) != "codex" || usingExternalDetector {
        steps = append(steps, c.buildPullAWFContainersStep(data)...)
    }
  • pkg/workflow/threat_detection.go — add external-detector engine resolution so Pi workflows fall back to Copilot for the detection job, and reuse threat-detection engine config only when it still matches the external detector engine.

  • pkg/workflow/threat_detection.go — add a Codex-only external-detector setup step that creates an empty MCP servers config plus writable config.toml files for CODEX_HOME, so threat-detect --engine codex has the minimal config bootstrap it expects.

  • pkg/workflow/threat_detection_test.go — regression test covering both sub-cases: codex + gh-aw-detection: true (download step present) and codex inline path (exactly one download step from MCP setup, no duplicate).

  • pkg/workflow/threat_detection_isolation_test.go — add regression coverage for:

    • engine: pi + gh-aw-detection: true, asserting the compiled detection job installs Copilot, invokes threat-detect --engine copilot, and does not install or invoke Pi.
    • engine: codex + gh-aw-detection: true, asserting the compiled detection job prepares the empty MCP servers config and writable Codex config files before external detection runs.
  • Recompiled affected Pi workflow lock files — Pi workflows that use gh-aw-detection: true (for example smoke-pi.lock.yml) now compile detection jobs that install the Copilot CLI and run threat-detect --engine copilot, while the codex lock files continue to include the Download container images step before AWF starts.



✨ PR Review Safe Output Test - Run 28030295088

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 82.9 AIC · ⌖ 20.6 AIC · ⊞ 997 ·



✨ PR Review Safe Output Test - Run 28033618374

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 70.9 AIC · ⌖ 32.5 AIC · ⊞ 1K ·

Copilot AI and others added 3 commits June 23, 2026 05:06
…etection feature

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…detection feature

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI requested a review from pelikhan June 23, 2026 05:21
@pelikhan pelikhan marked this pull request as ready for review June 23, 2026 05:27
Copilot AI review requested due to automatic review settings June 23, 2026 05:27
@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Test Quality Sentinel completed test quality analysis.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Design Decision Gate 🏗️ completed the design decision gate check.

No ADR enforcement needed: PR #40954 does not have the 'implementation' label and has 68 new lines in business logic directories (≤100 threshold).

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

PR Code Quality Reviewer completed the code quality review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Fixes a regression in gh-aw workflow compilation where the threat detection job could skip pre-pulling required AWF container images when using engine: codex with the external detector path enabled (features: gh-aw-detection: true), leading to runtime failures when AWF starts with --pull never.

Changes:

  • Adjust detection job step generation to always emit the AWF image download step for the external detector path, while keeping the inline Codex path de-duplicated.
  • Add regression tests covering Codex external detector behavior (and validating download-step de-duplication expectations).
  • Recompile generated workflow lock files so detection jobs include the Download container images step before running detection.
Show a summary per file
File Description
pkg/workflow/threat_detection.go Updates detection job step generation to include AWF image pre-pull for Codex when using the external detector path.
pkg/workflow/threat_detection_test.go Adds regression coverage for Codex + external detector image download behavior.
.github/workflows/smoke-codex.lock.yml Recompiled lockfile includes Download container images step in the detection job.
.github/workflows/smoke-claude-on-copilot.lock.yml Recompiled lockfile updates detection job gating and generation output.
.github/workflows/smoke-call-workflow.lock.yml Recompiled lockfile includes Download container images step in the detection job.
.github/workflows/daily-observability-report.lock.yml Recompiled lockfile includes Download container images step in the detection job.
.github/workflows/daily-fact.lock.yml Recompiled lockfile includes Download container images step in the detection job.
.github/workflows/daily-cache-strategy-analyzer.lock.yml Recompiled lockfile includes Download container images step in the detection job.
.github/workflows/changeset.lock.yml Recompiled lockfile includes Download container images step in the detection job.

Copilot's findings

Tip

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

  • Files reviewed: 9/9 changed files
  • Comments generated: 2

Comment on lines +1864 to +1869
if !strings.Contains(joined, "Download container images") {
t.Errorf("expected 'Download container images' step in codex external detector detection job steps\ngot:\n%s", joined)
}
if !strings.Contains(joined, "download_docker_images.sh") {
t.Errorf("expected 'download_docker_images.sh' in detection job steps\ngot:\n%s", joined)
}
Comment on lines +1872 to +1896
t.Run("codex without gh-aw-detection emits exactly one container download (inline path via MCP setup)", func(t *testing.T) {
data := &WorkflowData{
AI: "codex",
SafeOutputs: &SafeOutputsConfig{
ThreatDetection: &ThreatDetectionConfig{},
},
Features: map[string]any{},
SandboxConfig: &SandboxConfig{
Agent: &AgentSandboxConfig{
Type: SandboxTypeAWF,
},
},
}

steps := compiler.buildDetectionJobSteps(data)
joined := strings.Join(steps, "")

// For the inline codex path, MCP setup generation (inside buildDetectionEngineExecutionStep)
// emits the "Download container images" step exactly once. buildPullAWFContainersStep must
// NOT also emit it, or the step would appear twice and trip duplicate-step validation.
downloadCount := strings.Count(joined, "Download container images")
if downloadCount != 1 {
t.Errorf("expected exactly one 'Download container images' step for inline codex path, got %d\n%s", downloadCount, joined)
}
})
@github-actions github-actions Bot mentioned this pull request Jun 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

Test Quality Score: 90/100 — Excellent

Analyzed 2 test(s): 2 design, 0 implementation, 0 guideline violation(s).

📊 Metrics & Test Classification (2 tests analyzed)
Metric Value
New/modified tests analyzed 2
✅ Design tests (behavioral contracts) 2 (100%)
⚠️ Implementation tests (low value) 0 (0%)
Tests with error/edge cases 2 (100%)
Duplicate test clusters 0
Test inflation detected YES — 61 test lines added vs. 7 production lines (8.7:1 ratio)
🚨 Coding-guideline violations 0
Test File Classification Issues Detected
TestBuildDetectionJobStepsCodexExternalDetectorIncludesContainerDownload/codex with gh-aw-detection includes Download container images pkg/workflow/threat_detection_test.go:1836 ✅ Design
TestBuildDetectionJobStepsCodexExternalDetectorIncludesContainerDownload/codex without gh-aw-detection emits exactly one container download (inline path via MCP setup) pkg/workflow/threat_detection_test.go:1858 ✅ Design

Go: 1 (*_test.go); JavaScript: 0. No other languages detected.

Notes:

  • Existing file pkg/workflow/threat_detection_test.go carries the required //go:build !integration tag ✅
  • All t.Errorf calls include descriptive format strings with \ngot:\n%s context ✅
  • No mock libraries (gomock, testify/mock, .EXPECT(), .On()) used ✅
  • Test inflation (10 pt deduction) is expected here: Go struct-initialization boilerplate for WorkflowData/SandboxConfig fixtures is inherently verbose relative to the 7-line production fix. The inflation does not indicate padding or redundancy.

Verdict

Check passed. 0% implementation tests (threshold: 30%). Both sub-tests are behavioral regression tests: sub-test 1 guards the bug fix (step present when gh-aw-detection is enabled), sub-test 2 guards the invariant that the inline codex path does not duplicate the step. The t.Errorf assertions verify observable output strings (joined), not internal call counts or implementation details.

🧪 Test quality analysis by Test Quality Sentinel · 54.8 AIC · ⌖ 20.3 AIC · ⊞ 8.3K ·

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Test Quality Sentinel: 90/100. Test quality is excellent — 0% of new tests are implementation tests (threshold: 30%). Both sub-tests are behavioral regression guards covering the bug fix and the no-duplicate invariant.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Skills-Based Review 🧠

Applied /diagnose and /tdd — approving with two minor suggestions.

📋 Key Themes & Highlights

Key Themes

  • Env-var test hermicity: the new inline-codex subtest doesn't guard against GH_AW_FEATURES=gh-aw-detection in the environment, which could cause spurious failures (see inline comment)
  • Minor duplication: usingExternalDetector is introduced at line 289 but isFeatureEnabled is called again raw at line 311 — reusing the variable would make the symmetry clearer

Positive Highlights

  • ✅ Minimal, surgical fix — exactly two logic lines changed in production code
  • ✅ Root cause properly diagnosed and documented: MCP setup is only called for the inline path, not the external detector path
  • ✅ Both regression paths are covered: external detector gets the step, inline path emits it exactly once (no duplicate)
  • ✅ Code comments in buildDetectionJobSteps now clearly describe why each path behaves differently
  • ✅ Excellent PR description with before/after snippet and full blast-radius accounting

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · 77.5 AIC · ⌖ 6.73 AIC · ⊞ 6.5K

Comments that could not be inline-anchored

pkg/workflow/threat_detection_test.go:1878

[/tdd] Missing environment guard: isFeatureEnabled checks the GH_AW_FEATURES env var in addition to frontmatter, so a runner with GH_AW_FEATURES=gh-aw-detection set will make usingExternalDetector true here, causing downloadCount &gt; 1 and a spurious failure. The established pattern in this codebase is to guard with t.Setenv (see compiler_validators_test.go:140).

<details>
<summary>💡 Suggested fix</summary>

Add at the top of this sub-test:

t.Setenv(&quot;GH_AW_FEATURES&quot;, &quot;&quot;…

</details>

<details><summary>pkg/workflow/threat_detection.go:311</summary>

**[/diagnose]** `isFeatureEnabled(constants.GHAWDetectionFeatureFlag, data)` is called twice in this functiononce at line 289 (stored in `usingExternalDetector`) and again here. Reusing the variable would be both more efficient and more expressive.

&lt;details&gt;
&lt;summary&gt;💡 Suggested change&lt;/summary&gt;

```go
if usingExternalDetector {
    // External detector path (features: gh-aw-detection: true)

This also makes it easier to see at a glance that both branches of the step-selection logic ar…

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

REQUEST_CHANGES — fix is logically correct, tests need hardening

The root cause analysis is accurate and the one-line logic change is the right fix. The lock file blast (6 workflows) is also correct — all affected workflows use engine: id: codex + gh-aw-detection: true and were silently broken before.

Blocking issues

Three medium issues prevent merge:

  1. usingExternalDetector not reused at line 311isFeatureEnabled is called twice for the same flag in the same function. The variable introduced at line 289 should be reused.

  2. External detector test: substring-only check, no count assertion — the test verifies the step exists but not that it appears exactly once. The project's own precedent (line 874) uses strings.Count for this step name. A duplicate emission would pass the current assertion undetected, which is exactly the class of bug the inline-path test was written to prevent.

  3. Engine override path not coveredgetThreatDetectionEngineID can return "codex" even when data.AI != "codex" (via SafeOutputs.ThreatDetection.EngineConfig.ID). No test exercises this path.

Non-blocking observation

smoke-claude-on-copilot.lock.yml detection job if condition changed (not mentioned in the PR description) — the compiled lock file dropped the (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') guard, leaving only always() && needs.agent.result != 'skipped'. This is correct per the compiler's own design (see lines 1388-1394 in threat_detection.go): the guard was stale and the detection_guard step handles the no-output case internally. But the PR description should mention this incidental behavioral change to avoid reviewer confusion.

🔎 Code quality review by PR Code Quality Reviewer · 98 AIC · ⌖ 7.43 AIC · ⊞ 5.1K

Comments that could not be inline-anchored

pkg/workflow/threat_detection.go:311

usingExternalDetector is computed at line 289 but not reused hereisFeatureEnabled is called a second time for the same flag in the same function pass, creating a silent inconsistency risk.

<details>
<summary>💡 Suggested fix</summary>

// Before (line 311)
if isFeatureEnabled(constants.GHAWDetectionFeatureFlag, data) {

// After — reuse the variable already computed above
if usingExternalDetector {

The variable was introduced specifically for this purpose; not reusing it …

pkg/workflow/threat_detection_test.go:1866

External detector test only checks substring presence, not step count — for a fix specifically about preventing duplicate/missing steps, this assertion is too weak.

<details>
<summary>💡 Suggested fix</summary>

The project's own precedent (see line 874 in this file) uses strings.Count for this exact step name. The external detector subtest should do the same:

downloadCount := strings.Count(joined, &quot;Download container images&quot;)
if downloadCount != 1 {
    t.Errorf(&quot;expected exactly</details>

<details><summary>pkg/workflow/threat_detection_test.go:1838</summary>

**Tests only exercise the `data.AI = &quot;codex&quot;` path; the engine override path is untested**`getThreatDetectionEngineID` prefers `SafeOutputs.ThreatDetection.EngineConfig.ID` over `data.AI`, so a workflow with main AI != &quot;codex&quot; but threat-detection engine override set to &quot;codex&quot; takes the same code path and is not covered.

&lt;details&gt;
&lt;summary&gt;💡 Why this matters&lt;/summary&gt;

The fix touches the exact condition that calls `getThreatDetectionEngineID`. Any workflow that uses a non-codex main engi</details>

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

✅ All tools validated successfully! Agent Container Smoke Test confirms agent container is ready.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Antigravity MISSION COMPLETE! Antigravity has spoken. ✨

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Pi MISSION COMPLETE! Pi delivered. 🥧

Caution

agentic threat detected
Threat detection flagged this output in warn mode. Manual review is REQUIRED before any follow-up automation.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

Caution

agentic threat detected
Threat detection flagged this output in warn mode. Manual review is REQUIRED before any follow-up automation.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Pi MISSION COMPLETE! Pi delivered. 🥧

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

Caution

agentic threat detected
Threat detection flagged this output in warn mode. Manual review is REQUIRED before any follow-up automation.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Antigravity MISSION COMPLETE! Antigravity has spoken. ✨

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Gemini MISSION COMPLETE! Gemini has spoken. ✨

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

✅ All tools validated successfully! Agent Container Smoke Test confirms agent container is ready.

@github-actions

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing...

@github-actions

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot - AOAI (apikey) is now investigating this pull request. Sources say the story is developing...

@github-actions

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot - AOAI (Entra) is now investigating this pull request. Sources say the story is developing...

@github-actions

Copy link
Copy Markdown
Contributor

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.54.0
jq 1.7
yq v4.53.3
curl 8.5.0
gh 2.94.0
node v22.22.3
python3 3.11.15 (PyPy 7.3.23)
go 1.24.13
java 21.0.11 (Temurin)
dotnet 10.0.301

Result: 12/12 tools available ✅

Overall status: PASS

🔧 Tool validation by Agent Container Smoke Test · 18.1 AIC · ⌖ 9.28 AIC · ⊞ 5.4K ·

@github-actions

Copy link
Copy Markdown
Contributor
  • GitHub MCP Testing: ✅\n- Web Fetch Testing: ✅\n- File Writing Testing: ✅\n- Bash Tool Testing: ✅\n- Build gh-aw: ❌\nOverall status: FAIL

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • localhost

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "localhost"

See Network Configuration for more information.

Smoke Gemini — Powered by Gemini ·

@github-actions

Copy link
Copy Markdown
Contributor

Caution

agentic threat detected
Threat detection flagged this output in warn mode. Manual review is REQUIRED before any follow-up automation.

Details

The threat detection engine failed to produce results.

Review the workflow run logs for details.

Comment Memory

Cache hums quietly
Serena, build, browser light
Smoke drifts into pass

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex · 5.48 AIC · ⊞ 17.2K ·

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Smoke Test: Claude — Run 28033618374

Core #1-12: ✅ all passed
PR Review #13:#14: ✅ #15: ✅ #16: ⚠️ (no unresolved threads) #17: ✅ #18: ✅ #19: ⚠️ (no safe PR)

Overall: PARTIAL (all executed tests passed, 2 skipped) 🎉

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 70.9 AIC · ⌖ 32.5 AIC · ⊞ 1K ·

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

💥 Automated smoke test review - all systems nominal!

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 70.9 AIC · ⌖ 32.5 AIC · ⊞ 1K

@@ -0,0 +1,5 @@
---
"gh-aw": patch

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice, scoping this as a patch change is appropriate for a bug fix. 👍

"gh-aw": patch
---

Fixed codex threat-detection workflows so the AWF container download step is still emitted when `gh-aw-detection` is enabled.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Clear changeset summary describing the AWF container download fix. Consider linking the related issue for traceability.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Smoke review done. Tiny notes inline.

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

📰 BREAKING: Report filed by Smoke Copilot · 352.3 AIC · ⌖ 13.6 AIC · ⊞ 19.2K

@pelikhan pelikhan merged commit 344b6b3 into main Jun 23, 2026
17 checks passed
@pelikhan pelikhan deleted the copilot/ensure-awf-container-download branch June 23, 2026 16:34
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.

3 participants