Skip to content

Expose AWF platform.type via sandbox.agent.platform frontmatter#40877

Merged
pelikhan merged 9 commits into
mainfrom
copilot/expose-awf-platform-type
Jun 23, 2026
Merged

Expose AWF platform.type via sandbox.agent.platform frontmatter#40877
pelikhan merged 9 commits into
mainfrom
copilot/expose-awf-platform-type

Conversation

Copilot AI commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

AWF already supports explicit platform.type to select GitHub deployment behavior, but gh-aw had no frontmatter path to set it. This change surfaces that setting in workflow frontmatter and wires it into generated AWF config so platform selection is explicit instead of host-heuristic-driven.

  • Frontmatter surface

    • Adds sandbox.agent.platform as the workflow-facing knob for AWF platform selection
    • Supports:
      • github.com
      • ghes
      • ghec
      • ghec-self-hosted
  • Compiler mapping

    • Extends sandbox agent parsing to retain the configured platform
    • Emits the value into generated AWF config as:
      • platform.type
  • Schema and docs

    • Updates the main workflow schema to validate the new field and reject unknown values
    • Adds the field to the frontmatter reference docs
  • Regression coverage

    • Adds focused tests for:
      • frontmatter parsing
      • schema acceptance/rejection
      • AWF config JSON emission
      • embedded config in generated AWF command output

Example:

sandbox:
  agent:
    id: awf
    platform: ghes

This now produces AWF config containing:

{
  "platform": {
    "type": "ghes"
  }
}

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.


✨ PR Review Safe Output Test - Run 27989413597

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 · 77.7 AIC · ⊞ 8.5K ·

Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Copilot AI changed the title [WIP] Expose AWF platform.type via workflow frontmatter Expose AWF platform.type via sandbox.agent.platform frontmatter Jun 22, 2026
Copilot finished work on behalf of lpcox June 22, 2026 22:29
Copilot AI requested a review from lpcox June 22, 2026 22:29
@lpcox

lpcox commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

@pelikhan i want to make the deployment types more explicit to minimize guess work in awf

@lpcox lpcox added the smoke label Jun 22, 2026
@lpcox lpcox marked this pull request as ready for review June 22, 2026 22:51
Copilot AI review requested due to automatic review settings June 22, 2026 22:51

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

This pull request exposes AWF’s platform.type selection through workflow frontmatter (sandbox.agent.platform) and wires the value into generated AWF config JSON, enabling explicit GitHub deployment targeting instead of relying on AWF host heuristics.

Changes:

  • Add sandbox.agent.platform to the sandbox agent frontmatter surface and retain it in parsed sandbox configuration.
  • Emit sandbox.agent.platform into generated AWF config JSON as platform.type, including coverage that it’s embedded into the generated AWF command.
  • Extend schema validation and docs to include the new field and restrict values to the supported set.
Show a summary per file
File Description
pkg/workflow/sandbox.go Adds Platform to AgentSandboxConfig to retain the frontmatter value.
pkg/workflow/frontmatter_types_test.go Verifies ParseFrontmatterConfig populates Sandbox.Agent.Platform.
pkg/workflow/frontmatter_extraction_security.go Extracts sandbox.agent.platform from object-form sandbox agent config.
pkg/workflow/frontmatter_extraction_security_test.go Adds focused unit coverage for platform extraction.
pkg/workflow/awf_config.go Introduces AWF platform section emission (platform.type) from workflow sandbox config.
pkg/workflow/awf_config_test.go Adds regression tests for AWF config JSON emission and command embedding.
pkg/parser/schemas/main_workflow_schema.json Adds sandbox.agent.platform with enum validation.
pkg/parser/schema_test.go Adds schema acceptance/rejection tests for sandbox.agent.platform.
docs/src/content/docs/reference/frontmatter-full.md Documents sandbox.agent.platform in the frontmatter reference.

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: 4

Comment thread pkg/workflow/sandbox.go Outdated
Comment thread pkg/workflow/awf_config.go
Comment thread pkg/parser/schemas/main_workflow_schema.json
Comment thread docs/src/content/docs/reference/frontmatter-full.md
@github-actions

Copy link
Copy Markdown
Contributor

@copilot please post a brief status update and recheck CI/review state before the next push.

Generated by 👨‍🍳 PR Sous Chef · 38.5 AIC · ⌖ 1.05 AIC · ⊞ 17.3K ·

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Gemini MISSION COMPLETE! Gemini has spoken. ✨

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 22, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Antigravity MISSION COMPLETE! Antigravity has spoken. ✨

@github-actions

github-actions Bot commented Jun 22, 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 22, 2026

Copy link
Copy Markdown
Contributor

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

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 22, 2026

Copy link
Copy Markdown
Contributor

Design Decision Gate 🏗️ failed to deliver outputs during design decision gate check.

@github-actions

github-actions Bot commented Jun 22, 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 22, 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.

Smoke test completed; created issue summary. PR comment/label skipped because workflow context lacks a usable triggering PR target for safeoutputs.

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

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

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

PR Code Quality Reviewer completed the code quality review.

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Test Quality Sentinel completed test quality analysis.

@github-actions

Copy link
Copy Markdown
Contributor

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

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@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

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
dotnet 10.0.301

Result: 12/12 tools available ✅

Overall Status: PASS

🔧 Tool validation by Agent Container Smoke Test · 17.7 AIC · ⌖ 10.9 AIC · ⊞ 5.4K ·

@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.

Smoke test 27989413539

  • GitHub read: PASS
  • Serena: PASS
  • Playwright: PASS
  • Web-fetch: FAIL
  • Build: PASS
  • Issue field: PASS
    Overall: FAIL

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 · 7.5 AIC · ⊞ 10.7K ·

@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

Silent caches breathe
Smoke tests leave their paper trails
GitHub hums at dusk

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 · 7.5 AIC · ⊞ 10.7K ·

@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.

🤖 Smoke Test: Claude — Run 27989413597

Core #1-12: ✅ all passed
PR review #13-15,17,18: ✅ passed | #16: ⚠️ skipped (all threads already resolved) | #19: ⚠️ skipped (no safe test PR)

Overall: PARTIAL (all executed tests passed; 2 conditional skips)

⚠️ Found a real bug: schema JSON missing a comma before "command" — see inline review comment.

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 · 77.7 AIC · ⊞ 8.5K ·

@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.

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.

💥 Automated smoke test review - all systems nominal! (Heads up: flagged a real missing-comma bug in the schema JSON.)

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 · 77.7 AIC · ⊞ 8.5K

"type": "string",
"enum": ["github.com", "ghes", "ghec", "ghec-self-hosted"],
"description": "AWF platform.type override. Declares the GitHub deployment type so AWF can apply deterministic Copilot auth behavior without relying on host heuristics. Omit to let AWF use its default host heuristic behavior."
}

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.

🐞 Real bug found during smoke test: the new platform enum block is missing a trailing comma before "command". This breaks schema JSON parsing — go test ./pkg/parser/... now fails with invalid character '"' after object key:value pair. Add a comma after the closing } of the platform property.

return workflowData.EngineConfig.TokenWeights.Multipliers
}

func extractPlatformType(workflowData *WorkflowData) string {

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 helper. Consider adding a short doc comment on extractPlatformType describing precedence (disabled / unsupported sandbox type returns empty string) to match the style of the surrounding extractor functions.

@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.

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

Comments that could not be inline-anchored

pkg/workflow/awf_config.go:538

[/tdd] The Disabled=true guard (and the isSupportedSandboxType guard on line 541) silently drop the platform value, but neither path has a test. If a workflow sets platform: ghes on a disabled or non-AWF agent, the value is dropped without any assertion proving that.

<details>
<summary>💡 Suggested tests</summary>

Add to TestBuildAWFConfigJSON in awf_config_test.go:

t.Run(&quot;platform is omitted when agent is disabled&quot;, func(t *testing.T) {
	config := AWFCommandConfig{
		Eng</details>

<details><summary>pkg/workflow/awf_config.go:549</summary>

**[/zoom-out]** `extractPlatformType` guards against `Disabled` and non-AWF sandbox types, but the structurally equivalent `extractModelFallback` (immediately below) does not apply either guard. Since `BuildAWFConfigJSON` is only called for AWF agents, both extra checks in `extractPlatformType` may be dead codeor alternatively, `extractModelFallback` is missing them. Either way, the intent should be made explicit to avoid confusion for the next reader.

&lt;details&gt;
&lt;summary&gt;💡 Options&lt;/summary</details>

<details><summary>docs/src/content/docs/reference/frontmatter-full.md:1873</summary>

**[/grill-with-docs]** &quot;Omit to use the default github.com behavior.&quot; could be read as: if you omit this field, AWF always behaves as if `platform: github.com` was setwhich would worry GHES/GHEC users into thinking they *must* set this field. The intent is that AWF falls back to automatic host detection, not that it hard-codes `github.com`.

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

Omit to let AWF detect the platform automatically from the host environment.


The JSON sche…

</details>

<details><summary>pkg/parser/schema_test.go:708</summary>

**[/tdd]** `TestValidateMainWorkflowFrontmatterWithSchemaAndLocation_SandboxAgentPlatform` is missing `t.Parallel()` at the top level. Both neighboring tests — `TestValidateMainWorkflowFrontmatterWithSchemaAndLocation_MaxDailyAICreditsNegativeAllowed` (line 694) and `TestMainWorkflowSchema_WorkflowDispatchNumberTypeDocumentation` (line 751) — call `t.Parallel()`. Add `t.Parallel()` at the start of this function and also to each `t.Run` subtest to be consistent with the file&#39;s pattern.

</details>

<details><summary>pkg/workflow/sandbox.go:54</summary>

**[/zoom-out]** The struct comment alignment regressed when `Platform` was inserted. `ID`, `Type`, `Version`, `Platform`, and `Disabled` are reasonably aligned, but `DisableReason` through `Targets` have a large excess of spaces in their inline comments (visible in the diff). Running `make fmt` should normalise the struct tags; the trailing inline comments may need a manual pass to restore the original column alignment.

&lt;details&gt;
&lt;summary&gt;💡 Quick check&lt;/summary&gt;

Before merging, confirm `make…

</details>

@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 — one blocking defect must be fixed before merge.

### Findings

🔴 Blocking: Invalid JSON in main_workflow_schema.json

The "platform" property block is missing a trailing comma before "command", making the schema file unparseable JSON. Every schema-validation path will error on load — this regresses all workflow validation, not just the new platform field. Fix: add , after the closing } of the platform block (line 3259).

🟡 Medium: Disabled=true guard in extractPlatformType is untested

The guard is correct and necessary (platform must not be emitted when the sandbox agent is disabled), but there is no test exercising that branch. A suggested subtest is included in the inline comment.

✅ What's solid

  • The extractPlatformType defensive nil-chain and isSupportedSandboxType type filter are well-structured.
  • The end-to-end coverage (frontmatter parsing → AWF config JSON → embedded command) is thorough.
  • Previous review feedback (json tag inconsistency, disabled-agent leakage, misleading schema/doc descriptions) has been addressed in the fix commits.

🔎 Code quality review by PR Code Quality Reviewer · 119.2 AIC · ⌖ 7.15 AIC · ⊞ 5.1K

"type": "string",
"enum": ["github.com", "ghes", "ghec", "ghec-self-hosted"],
"description": "AWF platform.type override. Declares the GitHub deployment type so AWF can apply deterministic Copilot auth behavior without relying on host heuristics. Omit to use the default github.com behavior."
},

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.

Broken JSON syntax: missing comma causes the entire schema to fail to load, breaking all workflow validation.

💡 Details and fix

The closing } of the new "platform" property has no trailing comma before "command". JSON requires commas between sibling properties, so main_workflow_schema.json is now syntactically invalid — json.Unmarshal errors on load.

Impact: Every code path that reads this schema to validate workflow frontmatter will fail before any validation logic runs. This breaks all field validation, not just platform.

Fix: add the missing comma:

-                    }
+                    },
                     "command": {

The TestValidateMainWorkflowFrontmatterWithSchemaAndLocation_SandboxAgentPlatform tests added in this PR will also fail (masking all other schema tests) until this is corrected.

if workflowData == nil || workflowData.SandboxConfig == nil || workflowData.SandboxConfig.Agent == nil {
return ""
}
return workflowData.SandboxConfig.Agent.Platform

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.

The Disabled=true guard is untested: a regression that removes this check would silently emit platform.type into AWF config even when the sandbox agent is disabled.

💡 Details and suggested test

extractPlatformType correctly short-circuits when Agent.Disabled == true, but no test covers this path. If someone inadvertently removes or inverts this guard in a future change, no test will catch it.

Add a subtest in TestBuildAWFConfigJSON (or TestBuildAWFCommand_EmbedsPlatformConfig):

t.Run("platform config is omitted when sandbox agent is disabled", func(t *testing.T) {
    config := AWFCommandConfig{
        EngineName:     "copilot",
        AllowedDomains: "github.com",
        WorkflowData: &WorkflowData{
            EngineConfig: &EngineConfig{ID: "copilot"},
            NetworkPermissions: &NetworkPermissions{
                Firewall: &FirewallConfig{Enabled: true},
            },
            SandboxConfig: &SandboxConfig{
                Agent: &AgentSandboxConfig{
                    Type:     SandboxTypeAWF,
                    Platform: "ghes",
                    Disabled: true,
                },
            },
        },
    }
    jsonStr, err := BuildAWFConfigJSON(config)
    require.NoError(t, err)
    assert.NotContains(t, jsonStr, `"platform":`, "platform should be absent when sandbox agent is disabled")
})

@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

Potential security threats were detected in the agent output.

Review the workflow run logs for details.

Smoke tests completed with overall FAIL status:

  1. Merged PR ✅
  2. mcpscripts PR list ❌
  3. Serena symbols ❌
    Overall: FAIL

📰 BREAKING: Report filed by Smoke Copilot - AOAI (Entra) · 52 AIC · ⌖ 15.4 AIC · ⊞ 18.2K ·

@github-actions

Copy link
Copy Markdown
Contributor

Comment Memory

Automation breeze
Bots tap keys through midnight fog
Checks bloom into dawn

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.

📰 BREAKING: Report filed by Smoke Copilot · 287.9 AIC · ⌖ 13.9 AIC · ⊞ 19.2K ·

@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 tools check complete.

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 · 287.9 AIC · ⌖ 13.9 AIC · ⊞ 19.2K

@github-actions

Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

⚠️ Test Quality Score: 70/100 — Acceptable

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

📊 Metrics & Test Classification (6 tests analyzed)
Metric Value
New/modified tests analyzed 6
✅ Design tests (behavioral contracts) 6 (100%)
⚠️ Implementation tests (low value) 0 (0%)
Tests with error/edge cases 2 (33%)
Duplicate test clusters 0
Test inflation detected Yes (awf_config_test.go +70 vs awf_config.go +27 = 2.6×; frontmatter_extraction_security_test.go +15 vs frontmatter_extraction_security.go +7 = 2.1×)
🚨 Coding-guideline violations 0
Test File Classification Issues Detected
TestValidateMain..._SandboxAgentPlatform / "valid platform is accepted" pkg/parser/schema_test.go:708 ✅ Design Happy path only
TestValidateMain..._SandboxAgentPlatform / "unknown platform is rejected" pkg/parser/schema_test.go:720 ✅ Design
TestBuildAWFConfigJSON / "sandbox agent platform is emitted" pkg/workflow/awf_config_test.go:698 ✅ Design Happy path; bare require.NoError
TestBuildAWFConfigJSON / "platform config is omitted when not configured" pkg/workflow/awf_config_test.go:720 ✅ Design Bare require.NoError
TestExtractAgentSandboxConfigPlatform / "extracts platform from object format" pkg/workflow/frontmatter_extraction_security_test.go:27 ✅ Design Happy path only
TestParseFrontmatterConfig (platform assertion added) pkg/workflow/frontmatter_types_test.go:272 ✅ Design Happy path only

Go: 6 (*_test.go); JavaScript: 0.

⚠️ Minor Notes (3 items)

Test inflation (awf_config_test.go, frontmatter_extraction_security_test.go) — both test files grow more than 2× relative to their production counterparts in this PR. Expected for JSON-serialization tests that need full config objects to assert on one field, but it triggers the scoring penalty.

Bare require.NoError without message (pkg/workflow/awf_config_test.go) — both new subtests call require.NoError(t, err) with no message argument. Suggested fix: require.NoError(t, err, "BuildAWFConfigJSON should not return an error").

Happy-path only in 4 of 6 scenarios — consider adding a subtest for an empty-string Platform value (Go zero-value) to TestExtractAgentSandboxConfigPlatform and TestValidateMain..._SandboxAgentPlatform, to close the loop between the omission test in awf_config_test.go and the schema-rejection test.

Verdict

Check passed. 0% implementation tests (threshold: 30%). All 6 new/modified test scenarios enforce behavioral contracts — no mock-library violations or missing build tags detected.

References: §27989420472

🧪 Test quality analysis by Test Quality Sentinel · 122.4 AIC · ⌖ 11.2 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: 70/100. Test quality is acceptable — 0% of new tests are implementation tests (threshold: 30%).

@github-actions

Copy link
Copy Markdown
Contributor

Smoke test 279905: FAIL\ngh pr list: ✅\nmcpscripts pr list: ❌\nSerena CLI: ❌\nPlaywright CLI: ✅\nGitHub fetch: ✅\nFile create: ✅\nDiscussion interaction: ❌\nBuild: ✅\nArtifact upload: ❌\nDiscussion create: ❌\nWorkflow dispatch: ❌\nPR review: ❌\nComment memory: ❌\nFile summarizer: ❌\nCheck run: ❌\nOverall: FAIL\n@app/copilot-swe-agent @lpcox @Copilot

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 - AOAI (apikey) · 146.5 AIC · ⌖ 15.5 AIC · ⊞ 18.2K ·

@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot merge main and recompile

run pr-finisher skill

@github-actions

Copy link
Copy Markdown
Contributor

@copilot review all comments and address unresolved review feedback.

Generated by 👨‍🍳 PR Sous Chef · 26.3 AIC · ⌖ 1.05 AIC · ⊞ 17.3K ·

@github-actions

Copy link
Copy Markdown
Contributor

Please summarize the remaining blockers and refresh checks after the review fixes land.

Generated by 👨‍🍳 PR Sous Chef · 26.3 AIC · ⌖ 1.05 AIC · ⊞ 17.3K ·

Copilot AI and others added 3 commits June 22, 2026 23:48
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…atform-type

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

Copilot AI commented Jun 23, 2026

Copy link
Copy Markdown
Contributor Author

@copilot merge main and recompile

run pr-finisher skill

Merged main, recompiled, and pushed the follow-up fixes in ce9c361.

Copilot AI requested a review from pelikhan June 23, 2026 00:03
@github-actions

Copy link
Copy Markdown
Contributor

``
@copilot review all comments and address unresolved review feedback.

Generated by 👨‍🍳 PR Sous Chef · 49.3 AIC · ⌖ 1.07 AIC · ⊞ 17.3K ·

@github-actions

Copy link
Copy Markdown
Contributor

``
Please refresh the branch and rerun checks after fixing the blocker.

Generated by 👨‍🍳 PR Sous Chef · 49.3 AIC · ⌖ 1.07 AIC · ⊞ 17.3K ·

@pelikhan pelikhan merged commit aec3b5f into main Jun 23, 2026
29 checks passed
@pelikhan pelikhan deleted the copilot/expose-awf-platform-type branch June 23, 2026 02:10
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