Skip to content

Default Pi workflows to CLI proxy mode and relax Smoke Pi tool/file restrictions and runtime settings#35836

Open
Copilot wants to merge 11 commits into
mainfrom
copilot/fix-pi-agent-configuration
Open

Default Pi workflows to CLI proxy mode and relax Smoke Pi tool/file restrictions and runtime settings#35836
Copilot wants to merge 11 commits into
mainfrom
copilot/fix-pi-agent-configuration

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 30, 2026

Pi workflows were failing when safeoutputs CLI paths were expected but cli-proxy mode was not explicitly configured. This change makes Pi’s required transport/tool defaults implicit so Pi workflows compile with the expected execution model out of the box, and updates the Smoke Pi workflow configuration to allow broader tool/file operations.

  • Compiler defaults for Pi engine

    • Inject tools.cli-proxy: true when engine: pi is selected and the flag is not explicitly set.
    • Inject tools.github.mode: gh-proxy when engine: pi is selected and GitHub mode is not explicitly set.
  • Explicit user intent remains authoritative

    • Preserve explicit tools.github: false (no forced GitHub tool enablement).
    • Preserve explicit tools.github.mode values (no override when already declared).
    • Ensure explicit GitHub-tool detection is computed before Pi default injection so auto-injected defaults are not treated as explicit user config.
  • Smoke Pi permissions/tooling adjustment

    • Remove tools.github.toolsets restriction in .github/workflows/smoke-pi.md so Pi is not limited to a narrow GitHub tool subset in this smoke workflow.
    • Expand sandbox filesystem write allowance from /tmp/gh-aw/agent to /tmp in the same workflow to support broader read/write operations.
  • MCP CLI mount reliability fix for Pi/safeoutputs

    • Update MCP CLI PATH setup to use a RUNNER_TEMP fallback:
      • export PATH="${RUNNER_TEMP:-/home/runner/work/_temp}/gh-aw/mcp-cli/bin:$PATH"
    • Ensures mounted CLI tools (including safeoutputs) remain discoverable in AWF container execution even when RUNNER_TEMP is not set in-container.
  • Coverage for default injection behavior

    • Added orchestrator-level test coverage to verify Pi-specific default tool injection during tool processing.
    • Added a negative test to verify explicit non-gh-proxy tools.github.mode is preserved and correctly rejected for engine: pi.
  • Additional Smoke Pi runtime/firewall updates

    • Add Go ecosystem network allowance in .github/workflows/smoke-pi.md (network.allowed: go) so Go toolchain/module endpoints are available during smoke builds.
    • Pass RUNNER_TEMP explicitly to Pi execution via engine.env so agent/container steps consistently receive runner temp path context.
    • Run Pi smoke execution in yolo mode via engine.args: ["--yolo"].

Example behavior after this change:

engine: pi
on: push

is effectively treated as:

engine: pi
on: push
tools:
  cli-proxy: true
  github:
    mode: gh-proxy

Changeset

  • Type: patch
  • Description: Default Pi workflows to cli-proxy and gh-proxy mode when unspecified, relax Smoke Pi workflow tool/file restrictions, ensure mounted safeoutputs CLI is reliably available in Pi runs, and update Smoke Pi runtime/firewall settings (go domains, RUNNER_TEMP env propagation, and Pi --yolo mode).

> Generated by 👨‍🍳 PR Sous Chef · gpt54 8.1M ·



✨ PR Review Safe Output Test - Run 26676306406

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 · opus48 946.8K ·

Copilot AI and others added 2 commits May 30, 2026 03:10
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title Default Pi engine to cli-proxy mode Default Pi workflows to CLI proxy mode for safeoutputs compatibility May 30, 2026
Copilot AI requested a review from pelikhan May 30, 2026 03:12
@pelikhan pelikhan added the smoke label May 30, 2026
@pelikhan pelikhan marked this pull request as ready for review May 30, 2026 03:12
Copilot AI review requested due to automatic review settings May 30, 2026 03:12
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

🚀 Smoke Antigravity MISSION COMPLETE! Antigravity has spoken. ✨

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

🚀 Smoke Pi MISSION COMPLETE! Pi delivered. 🥧

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

🚀 Smoke Gemini MISSION COMPLETE! Gemini has spoken. ✨

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

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

@github-actions github-actions Bot removed the smoke label May 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Commit pushed: 8b72f96

Generated by Changeset Generator · gpt54 777.3K

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

Copy link
Copy Markdown
Contributor

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 updates the workflow compiler so that selecting engine: pi implicitly injects Pi-required tool defaults (CLI proxy + GitHub gh-proxy mode) when the user hasn’t explicitly set them, ensuring Pi workflows compile with the expected safeoutputs execution model by default.

Changes:

  • Inject tools.cli-proxy: true for engine: pi when not explicitly provided.
  • Inject tools.github.mode: gh-proxy for engine: pi when not explicitly provided (while respecting explicit tools.github.mode / tools.github: false).
  • Add an orchestrator-level unit test validating Pi default injection behavior.
Show a summary per file
File Description
pkg/workflow/compiler_orchestrator_tools.go Adds Pi-specific tool default injection during tool processing.
pkg/workflow/compiler_orchestrator_tools_test.go Adds test coverage asserting Pi default tool injection.

Copilot's findings

Tip

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

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

orchestratorToolsLog.Printf("Tools merge failed: %v", err)
return nil, fmt.Errorf("failed to merge tools: %w", err)
}
applyPiRequiredToolDefaults(tools, agenticEngine)
assert.Equal(t, "gh-proxy", githubConfig["mode"], "Pi should default tools.github.mode to gh-proxy")
}

// TestProcessToolsAndMarkdown_ToolsMerging tests tools merging from imports and includes
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.

Good catch. Smoke bot agree. This path needs explicit opt-out or explicit-mode coverage too.

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 · gpt54 14.3M

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions
Copy link
Copy Markdown
Contributor

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

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@pelikhan pelikhan added the smoke label May 30, 2026
Copy link
Copy Markdown
Contributor Author

Copilot AI commented May 30, 2026

@copilot

  • add go domains to smoke-pi firewall...

Implemented in d2ffae3.

  • Added Go ecosystem firewall access in Smoke Pi (network.allowed now includes go, which expands to the Go domains).
  • Shared RUNNER_TEMP with the Pi agent step via engine.env (RUNNER_TEMP: ${{ runner.temp }}).
  • Enabled Pi yolo mode in Smoke Pi via engine.args: ["--yolo"].
  • Recompiled .github/workflows/smoke-pi.lock.yml accordingly.

Copilot AI changed the title Default Pi workflows to CLI proxy mode and relax Smoke Pi tool/file restrictions Default Pi workflows to CLI proxy mode and relax Smoke Pi tool/file restrictions and runtime settings May 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

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

@github-actions github-actions Bot removed the smoke label May 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

💫 TO BE CONTINUED... Smoke Claude failed to deliver outputs! Our hero faces unexpected challenges...

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

🚀 Smoke Gemini MISSION COMPLETE! Gemini has spoken. ✨

Testing safeoutputs CLI accessibility

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

🚀 Smoke Pi MISSION COMPLETE! Pi delivered. 🥧

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

🌑 The shadows whisper... Smoke Codex failed to deliver outputs. The oracle requires further meditation...

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

🚀 Smoke Antigravity MISSION COMPLETE! Antigravity has spoken. ✨

@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 4.53.2
curl 8.5.0
gh 2.92.0
node 24.16.0
python3 3.13.13
go 1.24.13
java 21.0.11
dotnet 10.0.300

Result: 12/12 tools available ✅

Overall Status: PASS

🔧 Tool validation by Agent Container Smoke Test · sonnet46 514.3K ·

@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test Results for 26676306397:

  • GitHub MCP Testing: ✅
  • Web Fetch Testing: ✅
  • File Writing Testing: ✅
  • Bash Tool Testing: ✅
  • Build gh-aw: ❌

Overall 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

Smoke test: FAIL

#35855 [code-simplifier] Simplify claude_tools.go: use getOrCreateToolMap and clearer isClaudeToolName
#35857 [log] Add debug logging to three previously-unlogged pkg/ files
#4 web-fetch github.com (tool unavailable)

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 · gpt54 8.1M ·

@github-actions
Copy link
Copy Markdown
Contributor

💥 Smoke Test: Claude — Run 26676306406

Core #1–13: ✅ (note: #2 mcpscripts-gh unavailable, verified via github_pr_query)
PR Review #14–19: ✅ | #20 ⚠️ skipped (no safe test PR)

Overall: PARTIAL

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 · opus48 946.8K ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

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 · opus48 946.8K

Copy link
Copy Markdown

@Ahamed009 Ahamed009 left a comment

Choose a reason for hiding this comment

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

Changes in this PR Details ..

@github-actions
Copy link
Copy Markdown
Contributor

Smoke bot done.
PRs: "Default Pi workflows to CLI proxy mode and relax Smoke Pi tool/file restrictions and runtime settings"; "[code-simplifier] Simplify claude_tools.go: use getOrCreateToolMap and clearer isClaudeToolName"; "[log] Add debug logging to three previously-unlogged pkg/ files".
T1✅ T2✅ T3❌ T4✅ T5❌ T6✅ T7✅ T8✅
T9✅ T10✅ T11✅ T12✅ T13✅ T14❌ T15✅ T16✅
Overall: FAIL
Author: Copilot
Assignees: pelikhan, 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 · gpt54 18.2M ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Smoke review done. Me left 2 inline notes.

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 · gpt54 18.2M

// Check if GitHub tool was explicitly configured in the original frontmatter.
// This must be computed before Pi defaults are applied so injected defaults do
// not affect explicit-intent checks used by permission validation.
_, hasExplicitGitHubTool := topTools["github"]
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 guard. This keeps Pi default injection from looking like explicit tools.github intent during permission validation.


require.NoError(t, err)
require.NotNil(t, result)
assert.False(t, result.hasExplicitGitHubTool, "Auto-injected Pi GitHub defaults must not count as explicit tools.github config")
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.

Good regression coverage. This pins the exact explicitness bug the earlier review thread called out.

@github-actions
Copy link
Copy Markdown
Contributor

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

@github-actions
Copy link
Copy Markdown
Contributor

Checks are green and the branch is current. Re-requesting human review.

Generated by 👨‍🍳 PR Sous Chef · gpt54 7.1M ·

1 similar comment
@github-actions
Copy link
Copy Markdown
Contributor

Checks are green and the branch is current. Re-requesting human review.

Generated by 👨‍🍳 PR Sous Chef · gpt54 7.1M ·

@github-actions
Copy link
Copy Markdown
Contributor

@copilot review all comments and address unresolved review feedback.

Generated by 👨‍🍳 PR Sous Chef · gpt54 18.5M ·

@github-actions
Copy link
Copy Markdown
Contributor

@copilot summarize the remaining blockers and next steps for this PR.

Generated by 👨‍🍳 PR Sous Chef · gpt54 18.5M ·

@github-actions
Copy link
Copy Markdown
Contributor

@copilot review all comments and address the unresolved review threads.

Generated by 👨‍🍳 PR Sous Chef · gpt54 16M ·

@github-actions
Copy link
Copy Markdown
Contributor

@copilot summarize the remaining blockers and post the shortest plan to finish them.

Generated by 👨‍🍳 PR Sous Chef · gpt54 16M ·

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