Skip to content

feat: mount MCP servers as local CLIs after gateway starts#24503

Open
Copilot wants to merge 24 commits intomainfrom
copilot/add-automatic-mounting-mcp-servers
Open

feat: mount MCP servers as local CLIs after gateway starts#24503
Copilot wants to merge 24 commits intomainfrom
copilot/add-automatic-mounting-mcp-servers

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 4, 2026

Summary

Adds automatic mounting of MCP servers as local CLI tools in agentic workflows. This behavior is opt-in via a new tools.mount-as-clis: true flag (default false). When enabled, all user-facing MCP servers — including built-in ones like github and playwright as well as custom servers — are exposed as standalone shell commands and excluded from the agent's final MCP config so the agent uses the CLI wrappers exclusively. When false, no CLI mounting step is emitted and no prompt section is injected.

How It Works

After the MCP gateway starts, a new "Mount MCP servers as CLIs" workflow step runs mount_mcp_as_cli.cjs via actions/github-script. This script:

  1. Reads a manifest of configured MCP servers (saved by start_mcp_gateway.sh before cleanup)
  2. For each server, follows the full MCP session protocol (initializenotifications/initializedtools/list) to discover available tools
  3. Generates a standalone CLI wrapper script at ${RUNNER_TEMP}/gh-aw/mcp-cli/bin/<server-name>
  4. Locks the bin directory (chmod 555) so the agent cannot modify or add scripts
  5. Adds the directory to PATH via core.addPath() for subsequent steps

The agent is also informed about these tools via an injected prompt section (wrapped in <mcp-clis> XML tags) listing the available CLI commands.

Architecture: Gateway vs. Agent Config

The MCP gateway must start Docker containers for all configured servers — including CLI-mounted ones — so they have reachable endpoints for the CLI manifest. The filtering is therefore applied in two stages:

  1. Gateway config (piped to start_mcp_gateway.sh): includes all servers so the gateway starts their containers and populates /tmp/gh-aw/mcp-cli/manifest.json.
  2. Agent's final MCP config (written by convert_gateway_config_*.sh): CLI-mounted servers are excluded via the GH_AW_MCP_CLI_SERVERS environment variable (a JSON array exported in the gateway step), so the agent cannot reach them directly and must use the CLI wrappers.

AWF Sandbox Path

CLI wrapper scripts and tools JSON are generated under ${RUNNER_TEMP}/gh-aw/mcp-cli/ (not /tmp/gh-aw/) so they are accessible inside the AWF sandbox, which mounts ${RUNNER_TEMP}/gh-aw read-only. The manifest file written by start_mcp_gateway.sh remains at /tmp/gh-aw/mcp-cli/manifest.json since it is only read during the setup step, which runs on the host before AWF starts.

Changes

New: actions/setup/js/mount_mcp_as_cli.cjs

  • Reads /tmp/gh-aw/mcp-cli/manifest.json
  • Queries each server's tool list via the proper 3-step MCP session protocol:
    1. initialize — establishes session, captures Mcp-Session-Id
    2. notifications/initialized — required handshake notification (server responds 204 No Content)
    3. tools/list / tools/call — executed within the established session
  • Generated CLI wrapper scripts support:
    • <server> --help — list all available tools
    • <server> <tool> --help — show tool description and parameters
    • <server> <tool> [--param value ...] — call a tool (follows the same 3-step MCP session protocol per invocation)
  • Internal servers (safeoutputs, mcp-scripts, mcpscripts) and cache-memory are excluded
  • Scripts are placed at ${RUNNER_TEMP}/gh-aw/mcp-cli/bin/ in a chmod 555 directory the agent cannot write to
  • Tools JSON cache is placed at ${RUNNER_TEMP}/gh-aw/mcp-cli/tools/ so scripts can access it inside AWF
  • The gateway API key is baked into generated scripts at generation time (not read from the environment) because MCP_GATEWAY_API_KEY is excluded from the AWF sandbox
  • Full core.info() / core.warning() logging throughout

New: actions/setup/md/mcp_cli_tools_prompt.md

  • Template file for the <mcp-clis> prompt section, following the same pattern as other prompt templates
  • Uses __GH_AW_MCP_CLI_SERVERS_LIST__ placeholder substituted at runtime by the substitute_placeholders step
  • Rewritten for clarity: explicitly states the listed servers are not available as MCP tools and must be called as bash executables, with concrete examples for github and playwright

Modified: actions/setup/sh/start_mcp_gateway.sh

  • Saves /tmp/gh-aw/mcp-cli/manifest.json with server names and local URLs before gateway-output.json is deleted
  • Default fallback agent config generation filters out CLI-mounted servers using GH_AW_MCP_CLI_SERVERS

Modified: actions/setup/sh/convert_gateway_config_*.sh (Copilot, Claude, Codex, Gemini)

  • Each conversion script now reads GH_AW_MCP_CLI_SERVERS (JSON array) and excludes those servers from the agent's final MCP config using --argjson cliServers "${GH_AW_MCP_CLI_SERVERS:-[]}" in the jq call

New: pkg/workflow/mcp_cli_mount.go

  • getMCPCLIServerNames() — returns sorted list of user-facing MCP servers to mount (built-in and custom); returns nil when tools.mount-as-clis is not true
  • generateMCPCLIMountStep() — generates the "Mount MCP servers as CLIs" actions/github-script step in compiled workflows; no-op when flag is false
  • buildMCPCLIPromptSection() — returns IsFile: true referencing mcp_cli_tools_prompt.md with the server list passed as GH_AW_MCP_CLI_SERVERS_LIST env var; no-op when flag is false

Modified: pkg/workflow/tools_types.go and pkg/workflow/tools_parser.go

  • Added MountAsCLIs bool field to ToolsConfig (parsed from tools.mount-as-clis, default false)

Modified: pkg/parser/schemas/main_workflow_schema.json

  • Added mount-as-clis boolean property to the tools schema

Modified: pkg/workflow/mcp_rendering.go

  • Removed composeCLIMountFilter — CLI-mounted servers are no longer excluded from the gateway config (they must be started by the gateway). Filtering is now delegated to the conversion scripts.

Modified: pkg/workflow/mcp_setup_generator.go

  • Exports GH_AW_MCP_CLI_SERVERS (JSON array built with json.Marshal) in the gateway step script, after GH_AW_ENGINE, so conversion scripts can exclude those servers from the agent config

Modified: pkg/workflow/compiler_yaml_main_job.go

  • Calls generateMCPCLIMountStep() after generateMCPSetup() completes

Modified: pkg/workflow/unified_prompt_step.go

  • Injects MCP CLI tools prompt section (wrapped in <mcp-clis> XML tags) after safe outputs (section 8a)

Modified: actions/setup/sh/validate_prompt_placeholders.sh

  • Strips inline backtick code spans before checking for unreplaced __GH_AW_*__ placeholders, so documented placeholder names in PR descriptions or code examples are not flagged as errors

Modified: .github/workflows/smoke-copilot.md

  • Enabled mount-as-clis: true to exercise the feature in smoke testing
  • Added a "Tool Access Overview" section at the top of the test instructions, explicitly listing all CLI-mounted servers and clarifying they must be invoked via bash (not as MCP tools)
  • Updated test prompts for tests 1, 3, 4, and 12 to use CLI syntax (e.g. github pull_request_read --method list ..., serena activate_project --path ..., playwright browser_navigate --url ...) with "via bash" guidance to eliminate agent ambiguity

Updated

  • All 180 .lock.yml files recompiled

Example

For a workflow configured with mount-as-clis: true, playwright, github, and a custom tavily MCP server, the agent will have:

# Shell commands available on PATH (under ${RUNNER_TEMP}/gh-aw/mcp-cli/bin/):
playwright --help
playwright browser_navigate --url https://example.com
github issue_read --method get --owner octocat --repo Hello-World --issue_number 1
tavily search --query "latest AI news"

Those servers are excluded from the agent's MCP config, so the agent interacts with them exclusively through the CLI wrappers. The gateway still starts all Docker containers so the CLI wrappers can communicate with them.

The prompt injected to the agent (loaded from mcp_cli_tools_prompt.md):

<mcp-clis>
## MCP Servers Mounted as Shell CLI Commands

> **IMPORTANT**: The following MCP servers are **NOT available as MCP tools** in your agent context. They have been mounted exclusively as shell (bash) CLI commands. You **must** call them via the shell — do **not** attempt to use them as MCP protocol tools.

- `github` — run `github --help` to see available tools
- `playwright` — run `playwright --help` to see available tools
- `tavily` — run `tavily --help` to see available tools
...
</mcp-clis>


✨ PR Review Safe Output Test - Run 23992552020

💥 [THE END] — Illustrated by Smoke Claude · ● 232.3K ·



✨ PR Review Safe Output Test - Run 23993205568

💥 [THE END] — Illustrated by Smoke Claude · ● 377K ·



✨ PR Review Safe Output Test - Run 24001448881

💥 [THE END] — Illustrated by Smoke Claude · ● 246.1K ·

- Add `start_mcp_gateway.sh`: save CLI manifest (server names + local
  URLs) to /tmp/gh-aw/mcp-cli/manifest.json before cleanup
- Add `mount_mcp_as_cli.sh`: new shell script that reads the manifest,
  queries each server's tools/list via JSON-RPC, and generates a
  standalone CLI wrapper script in /tmp/gh-aw/mcp-cli/bin/ (chmod 555)
- Add `mcp_cli_mount.go`: Go helpers getMCPCLIServerNames() and
  generateMCPCLIMountStep() + buildMCPCLIPromptSection()
- Add "Mount MCP servers as CLIs" workflow step in compiler_yaml_main_job.go
- Inject MCP CLI tools prompt section in unified_prompt_step.go
- Update golden test fixtures

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/f83b0114-9c57-4701-ac7d-bfa80f07a971

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
<safe-output-tools>
Tools: add_comment(max:10), create_issue(max:5), create_discussion(max:2), missing_tool, missing_data, noop
</safe-output-tools>
## MCP Tools Available as CLI Commands
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@copilot wrap in xml tags "mcp-clis"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done in f3d7205. The MCP CLI tools prompt section is now wrapped in <mcp-clis> XML tags (matching the <safe-output-tools> pattern).

@@ -0,0 +1,309 @@
#!/usr/bin/env bash
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@copilot

  • convert this a hell script to actions/github-script (and delete after conversion)
  • add logging

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done in f3d7205. Converted to actions/setup/js/mount_mcp_as_cli.cjs with core.info() logging throughout (and core.warning() for non-fatal errors). The shell script has been deleted. The workflow step now uses actions/github-script.

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.

Great work converting to github-script! The added core.info() logging makes it much easier to debug MCP mounting issues in the Actions log. 🎉

📰 BREAKING: Report filed by Smoke Copilot · ● 860.4K

@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 4, 2026

@lpcox @Mossaka where is a good location to drop these shell scripts

@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 4, 2026

@copilot

  • add a field

    tools.mount-as-clis: true/false

that enables this behavior. Default is false.

  • Enable in smoke copilot
  • when a MCP server is mounted as a cli, remove from mcp-config returned by the gateway.

…ml tags

- Delete mount_mcp_as_cli.sh shell script
- Add mount_mcp_as_cli.cjs using actions/github-script with core.info() logging
- Update generateMCPCLIMountStep to use actions/github-script
- Wrap MCP CLI prompt section in <mcp-clis> XML tags
- Update golden fixtures and recompile lock files

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/1bf60ced-fb56-48d7-a2ce-b870a185cc27

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 4, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git rt GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw ache/go/1.25.8/xrev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.8/xrev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw git ache/node/24.14.1/x64/bin/node git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git ache/node/24.14.1/x64/bin/node git (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha -unreachable=false /tmp/go-build1076245136/b036/vet.cfg 6245136/b348/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build1076245136/b214/vet.cfg /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -json GO111MODULE 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha 64/pkg/tool/linuxterm-color git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel 64/pkg/tool/linurev-parse /usr/bin/git node js/f�� 64/pkg/tool/linu--show-toplevel git /usr/bin/git --show-toplevel 64/pkg/tool/linurev-parse /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha -json .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel go /usr/bin/git git rev-�� --show-toplevel git ache/node/24.14.1/x64/bin/node --show-toplevel go /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -bool -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git rev-�� --show-toplevel -tests /usr/bin/git &#34;prettier&#34; --chegit sh 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel x_amd64/vet /usr/bin/git -json GO111MODULE x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/infocmp -json GO111MODULE 64/pkg/tool/linu--show-toplevel infocmp (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha se 6245136/b176/vet.cfg /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build1076245136/b029/vet.cfg /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build1076245136/b047/vet.cfg 6245136/b296/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha --show-toplevel x_amd64/vet /usr/bin/git -json GO111MODULE x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git -json GO111MODULE x_amd64/vet git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -json GO111MODULE 6245136/b138/vet.cfg GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build1076245136/b014/vet.cfg 6245136/b289/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build1076245136/b027/vet.cfg 6245136/b253/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build1076245136/b043/vet.cfg 6245136/b276/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build1076245136/b033/vet.cfg 6245136/b308/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-toplevel git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel x_amd64/vet n-dir/node node js/f�� x_amd64/vet git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel x_amd64/vet /usr/bin/git node (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build1076245136/b031/vet.cfg 6245136/b313/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel x_amd64/vet 1/x64/bin/npm node js/f�� x_amd64/vet 1/x64/bin/npm /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel x_amd64/vet /usr/bin/git node (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel -tests 0/x64/bin/go git rev-�� --show-toplevel git 1/x64/bin/node --show-toplevel go /usr/bin/git git (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha --show-toplevel CVPY8ufrsqBYOdMbxp/ElTUoC6JKE41W2G5XEZh/Lzo9F25NDZwT7YZekNBQ /usr/bin/git --show-toplevel git g_.a git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git ache/go/1.25.8/x64/pkg/tool/linu--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .visibility --show-toplevel node /usr/bin/git n-dir/bash git /opt/hostedtoolc/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git rev-�� --show-toplevel node r: $owner, name: $name) { hasDiscussionsEnabled } } 64/pkg/tool/linudocker git /home/REDACTED/.cainspect infocmp (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha -json GO111MODULE 6245136/b125/vet.cfg GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build1076245136/b018/vet.cfg 6245136/b299/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha --show-toplevel git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel x_amd64/vet /usr/bin/git node js/f�� x_amd64/vet git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel x_amd64/vet /usr/bin/git node (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha -json .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel -tests /usr/bin/git git arne�� --show-toplevel git 1/x64/bin/node --show-toplevel go /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha -json .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env -json .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel -tests /usr/bin/git git arne�� --show-toplevel git 1/x64/bin/node --show-toplevel go /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel -tests /usr/bin/git --check **/*.cjs 64/bin/go git rev-�� --show-toplevel /usr/lib/sysstat-buildtags /usr/bin/git 1 sh 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel 64/pkg/tool/linurev-parse (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha k/gh-aw/gh-aw/pkGOSUMDB k/gh-aw/gh-aw/pkGOWORK 64/bin/go **/*.json --ignore-path ../../../.pretti-bool /opt/hostedtoolc-buildtags -o /tmp/go-build354-errorsas -trimpath 64/bin/go -p main -lang=go1.25 go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git -json GO111MODULE ache/go/1.25.8/x64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git se 6245136/b046/vetjs/fuzz_sanitize_output_harness.cjs .cfg git (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/# --jq .object.sha --show-toplevel git $name) { hasDiscussionsEnabled } } --show-toplevel git ache/uv/0.11.3/x-v infocmp -1 xterm-color git /usr/bin/git --show-toplevel git /opt/hostedtoolcgraphql git (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha --check **/*.cjs 64/bin/go **/*.json --ignore-path ../../../.pretti-unreachable=false /opt/hostedtoolc/tmp/go-build1076245136/b074/vet.cfg -o /tmp/go-build3545609933/b395/_pkGOINSECURE -trimpath 64/bin/go -p main -lang=go1.25 go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git -json GO111MODULE ache/go/1.25.8/x64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git se 6245136/b050/vetjs/fuzz_sanitize_output_harness.cjs .cfg git (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 4, 2026

@copilot add a field

tools.mount-as-clis: true/false

that enables this behavior. Default is false. When false, do not emit custom prompt or mount any MCPs.

@pelikhan pelikhan added the smoke label Apr 4, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 4, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 4, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 4, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 4, 2026

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

@github-actions github-actions bot removed the smoke label Apr 4, 2026
@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 4, 2026

@copilot the cli wrappers must implement a proper mcp client protocol and maintain a session

@github-actions

This comment has been minimized.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 4, 2026

Smoke Test #23981224949 | @pelikhan @Copilot

Test Result
GitHub MCP
MCP Scripts GH CLI
Serena MCP
Playwright
Web Fetch
File Writing
Bash Tool
Discussion Interaction
Build gh-aw
Discussion Creation
Workflow Dispatch
PR Review

Overall: ⚠️ PARTIAL PASS (10/12)

📰 BREAKING: Report filed by Smoke Copilot · ● 860.4K ·

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.

This PR adds MCP server CLI mounting to all workflow lock files — a useful improvement for discoverability. The pattern of continue-on-error: true is appropriate for non-critical tooling. Two minor suggestions: add explicit success logging in the script, and consider documenting the mount_mcp_as_cli.cjs function signature for future maintainers.

📰 BREAKING: Report filed by Smoke Copilot · ● 860.4K

"apiKey": "${MCP_GATEWAY_API_KEY}",
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
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.

Consider adding a debug output after await main() (e.g., core.info('MCP CLI mounts completed')) to make it easier to diagnose issues in the Actions log when continue-on-error silently eats failures.

"apiKey": "${MCP_GATEWAY_API_KEY}",
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
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 continue-on-error: true flag is appropriate here since mounting MCP CLIs is non-critical — failing silently is better than blocking the workflow. Good defensive pattern. 👍

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 4, 2026

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

@github-actions

This comment has been minimized.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

🤖 Smoke test agent 23992551991 checking in!

Test Result
GitHub CLI
MCP Scripts GH CLI
Serena
Playwright
Web Fetch
File Writing
Bash Tool
Discussion
Build
Discussion Creation
Workflow Dispatch
PR Review

Overall: ✅ PASS

PR author: @pelikhan, Assignees: @pelikhan, @Copilot

Run: https://github.com/github/gh-aw/actions/runs/23992551991

📰 BREAKING: Report filed by Smoke Copilot · ● 6.5M ·

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 test results for run §23992551991

The mount-as-clis feature was exercised by this smoke run. Two bugs were confirmed in testing:

  1. jq double-quote bug (line 265 of mount_mcp_as_cli.cjs): the jq filter string uses double quotes, causing $k/$v to be expanded by bash as shell variables (which are undefined in scope), producing invalid jq expressions like . + {(): }.

  2. localhost URL inaccessibility: the generated wrapper scripts use (127.0.0.1/redacted) from the manifest, but inside the AWF sandbox container, 127.0.0.1is the container's own loopback. The gateway is only reachable viahost.docker.internal` from within the sandbox.

Both issues prevent the CLI wrappers from working as generated. See inline comments for details.

📰 BREAKING: Report filed by Smoke Copilot · ● 6.5M

if [ -f /tmp/gh-aw/mcp-config/gateway-output.json ] && \
jq -e '.mcpServers' /tmp/gh-aw/mcp-config/gateway-output.json >/dev/null 2>&1; then
jq '{servers: [.mcpServers | to_entries[] | select(.value.url != null) | {name: .key, url: .value.url}]}' \
/tmp/gh-aw/mcp-config/gateway-output.json > /tmp/gh-aw/mcp-cli/manifest.json
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.

⚠️ Manifest stores localhost URLs that aren't accessible inside AWF sandbox

The manifest is built from gateway-output.json which contains (127.0.0.1/redacted) URLs. These are valid on the *host* but inside the AWF agent container, 127.0.0.1` resolves to the container's own loopback, not the host.

The generated CLI wrappers use these manifest URLs, so every MCP call fails with "connection refused" inside the sandbox. The gateway is reachable as `(host.docker.internal/redacted) from within the container.

Consider rewriting the URL in the manifest (or in mount_mcp_as_cli.cjs) to replace 127.0.0.1 / localhost with host.docker.internal when generating the CLI wrappers.

local key="\${1#--}"
if [[ \$# -ge 2 && "\$2" != --* ]]; then
local val="\$2"
args=\$(echo "\$args" | jq --arg k "\$key" --arg v "\$val" ". + {(\$k): \$v}")
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.

🐛 Shell quoting bug causes jq argument parsing to fail

The jq filter uses double quotes:

args=$(echo "$args" | jq --arg k "$key" --arg v "$val" ". + {($k): $v}")

Since the filter is double-quoted, bash expands $k and $v as shell variables before passing the expression to jq. The local variables are named key and val (not k and v), so $k and $v expand to empty strings, producing the invalid jq expression . + {(): }.

Fix: use single quotes for the jq filter so jq receives $k/$v as jq variables:

args=$(echo "$args" | jq --arg k "$key" --arg v "$val" '. + {($k): $v}')

Same fix needed on line 268 for the boolean case.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

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

The manifest saved by start_mcp_gateway.sh stores raw gateway-output
URLs (e.g., http://0.0.0.0:80/mcp/server) that work from the host.
CLI wrapper scripts generated by mount_mcp_as_cli.cjs baked these
URLs in directly, so when the agent inside the AWF sandbox ran e.g.
`github pull_request_read ...`, the wrapper's curl call to 0.0.0.0:80
failed because that address is not routable inside the container.

Fix:
- start_mcp_gateway.sh: output gateway-domain alongside gateway-port
- mcp_cli_mount.go: mount step now receives MCP_GATEWAY_DOMAIN and
  MCP_GATEWAY_PORT from gateway step outputs
- mount_mcp_as_cli.cjs: added toContainerUrl() that rewrites raw
  manifest URLs to use MCP_GATEWAY_DOMAIN:MCP_GATEWAY_PORT; tool
  fetching still uses the host-accessible URL, but generateCLI
  WrapperScript receives the container-accessible rewritten URL;
  warns if env vars are absent so misconfiguration is diagnosable

Recompiled all 180 workflows.

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/6e5597e6-b5e4-4bc7-914a-9d913b80dba9

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 5, 2026

@copilot investigate mcpscripts errors https://github.com/github/gh-aw/actions/runs/23992495407/job/69974540910#step:36:1

Fixed in acd44a6.

Root cause: mount_mcp_as_cli.cjs was baking raw gateway-output URLs (e.g., http://0.0.0.0:80/mcp/github) into CLI wrapper scripts. Those URLs work from the host where the mount step runs, but fail inside the AWF sandbox container where the gateway is only reachable via host.docker.internal:80.

Fix:

  1. start_mcp_gateway.sh — added gateway-domain to step outputs
  2. mcp_cli_mount.go — mount step now receives MCP_GATEWAY_DOMAIN and MCP_GATEWAY_PORT from gateway outputs
  3. mount_mcp_as_cli.cjs — added toContainerUrl() that rewrites the raw manifest URL to use MCP_GATEWAY_DOMAIN:MCP_GATEWAY_PORT when generating CLI wrappers; tool fetching still uses the raw host-accessible URL; warns if the env vars are absent

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw -pack /home/REDACTED/work/gh-aw/gh-aw/cmd/gh-aw/main.go git /pre�� get --local n-dir/bash core.hooksPath description,rele-V=full (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw description,rele-V=full (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name 43593581/001&#39; 43593581/001&#39; -nolocalimports -importcfg /tmp/go-build2825203314/b396/importcfg -pack /tmp/go-build2825203314/b396/_testmain.go k/gh�� -t security cal/bin/sh OUTPUT -d ed } } iptables (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-toplevel x_amd64/vet /usr/bin/git ithub/workflows (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha r-test2659671816/existing.md --format=%(objectname) /usr/bin/git --noprofile (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha 82/001/test-simple-frontmatter.md 5203314/b037/vet.cfg x_amd64/compile remote.origin.ur/usr/bin/git committer.name sh x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha xterm-color 64/pkg/tool/linuAdd workflow /usr/bin/git xterm-color git 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linutest@example.com /usr/bin/git 1658000367 .cfg .cfg git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel 5203314/b414/gitutil.test /usr/bin/git t0 /tmp/go-build282rev-parse (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha user.name Test User /usr/bin/git ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -IOpUI6xgANH-v6KNFAo/-IOpUI6xgANH-v6KNFAo resolved$ /usr/bin/git go1.25.8 -c=4 -nolocalimports git rev-�� --git-dir /tmp/go-build2825203314/b439/_testmain.go /usr/bin/git ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -aw-actions/git/ref/tags/v1.2.3 ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git ithub/workflows -f 1/x64/bin/node git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git vaScript40931047git /tmp/go-build282rev-parse 64/pkg/tool/linu--show-toplevel git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha matic-mounting-m-errorsas (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha -t security k/_temp/ghcca-no-nilfunc -nxv t ed } } iptables -w te &#39;../../../**/-test.timeout=10m0s security x_amd64/vet OUTPUT -d 168.63.129.16 x_amd64/vet (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha run --auto /usr/bin/git 346 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-toplevel git /usr/bin/git /tmp/gh-aw-test-git rev-parse /usr/bin/unpigz git rev-�� --show-toplevel /usr/bin/unpigz /usr/bin/git -c x_amd64/vet /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha test.txt resolved$ /opt/hostedtoolcache/node/24.14.1/x64/bin/node ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel -tests /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel x_amd64/vet /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha ithub-script/git/ref/tags/v8 -buildtags /usr/lib/git-core/git-receive-pack -errorsas -ifaceassert -nilfunc git-receive-pack /tmp�� -stringintconv -tests 1/x64/bin/node o actions/setup-git (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha get --local nfig/composer/ve--log-level=error committer.email (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha get --local /opt/hostedtoolcache/go/1.25.8/x64/bin/git gpg.program (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha h ../../../.prettierignore GO111MODULE modules/@npmcli/run-script/lib/node-gyp-bin/sh GOINSECURE GOMOD GOMODCACHE go env ath ../../../.pr**/*.json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .visibility on&#39; --ignore-path ../../../.prettierignore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .visibility on&#39; --ignore-path ../../../.pret.prettierignore GO111MODULE r: $owner, name: $name) { hasDiscussionsEnabled } } GOINSECURE GOMOD GOMODCACHE .1/x64/codeql/corev-parse env json&#39; --ignore-path ../../../.pr**/*.json GO111MODULE r: $owner, name: $name) { hasDiscussionsEnabled } } GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha test.txt x_amd64/vet /usr/bin/git k/gh-aw/gh-aw/.ggit (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha k/gh-aw/gh-aw -buildtags ache/go/1.25.8/x64/pkg/tool/linu-nolocalimports -errorsas -ifaceassert -nilfunc ache/go/1.25.8/x64/pkg/tool/linu/tmp/go-build2825203314/b448/_testmain.go comm�� -m initial commit 1/x64/bin/node --noprofile les k/gh-aw/node_mod--show-toplevel 1/x64/bin/node (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha k/gh-aw/gh-aw/.github/workflows -buildtags ache/node/24.14.1/x64/bin/node -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet t-25�� sistency_GoAndJavaScript4093104782/001/test-frontmatter-with-arrays.md -buildtags ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -errorsas -ifaceassert -nilfunc ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name .cfg x_amd64/link remote.origin.urgit --local $name) { hasDiscussionsEnabl--show-toplevel x_amd64/link -1 d/gh-aw/main.go d/gh-aw/capitalization_test.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet l --local $name) { has/home/REDACTED/work/gh-aw/gh-aw/.github/workflows/audit-workflows.md HF/ceUJJWVW9MTi-hWk5Mg9/hhE5_y592qnu9_3HRsyp (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 git 64/pkg/tool/linux_amd64/vet l --local ash 64/pkg/tool/linux_amd64/vet -C k/gh-aw/gh-aw/.github/workflows config .cfg l credential.userninit cal/bin/bash ache/go/1.25.8/x64/pkg/tool/linu-test.v=true (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name mLsRemoteWithRealGitbranch_with_hyphen3432098423/001&#39; 64/pkg/tool/linux_amd64/vet get matic-mounting-mconfig ndor/bin/bash 64/pkg/tool/linuTest User -C b/workflows rev-parse 64/pkg/tool/linux_amd64/compile get --local $name) { has--git-dir 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 LsRemoteWithRealGitbranch_with_hyphen3432098423/001&#39; 64/pkg/tool/linux_amd64/vet l --local ache/uv/0.11.3/x--show-toplevel 64/pkg/tool/linux_amd64/vet api graphql -f x_amd64/compile -f owner=github DiscussionsEnabled } } x_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name config 64/pkg/tool/linux_amd64/vet remote.origin.urnode matic-mounting-m/tmp/js-hash-test-1730937777/test-hash.js /home/REDACTED/.ca/home/REDACTED/work/gh-aw/gh-aw/.github/workflows/ace-editor.md 64/pkg/tool/linux_amd64/vet -C b/workflows .cfg 64/pkg/tool/linux_amd64/vet remote.origin.urgit --local /sh 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 .cfg 64/pkg/tool/linux_amd64/vet -f owner=github DiscussionsEnabl--show-toplevel 64/pkg/tool/linux_amd64/vet -1 xterm-color .cfg x_amd64/link get --local modules/@npmcli/--git-dir x_amd64/link (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name config 64/pkg/tool/linux_amd64/vet remote.origin.urgit --local $name) { has--show-toplevel 64/pkg/tool/linux_amd64/vet -C til.go o 64/pkg/tool/linux_amd64/compile remote.origin.urgit --local /home/REDACTED/.do--show-toplevel 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 -f 64/pkg/tool/linux_amd64/vet -f owner=github -f 64/pkg/tool/linux_amd64/vet -C k/gh-aw/gh-aw/.github/workflows rev-parse .cfg re --log-level=egit credential.usernrev-parse de/node/bin/bash--git-dir ache/go/1.25.8/x64/pkg/tool/linu/tmp/file-tracker-test1317261779/test2.lock.yml (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linux_amd64/vet -f owner=github DiscussionsEnabluser.name ylQP4Z8/vCNYLdc7Test User -C k/gh-aw/gh-aw/.github/workflows rev-parse ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet re --log-level=egit --local de/node/bin/bash--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 config 64/pkg/tool/linux_amd64/vet remote.origin.urgit --local /opt/hostedtoolc--git-dir 64/pkg/tool/linux_amd64/vet -1 _test.go en(lines))): print(f&#39;{i}: {l-w 64/pkg/tool/linux_amd64/compile l credential.helperev-parse $name) { has--show-toplevel 64/pkg/tool/linux_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name rev-parse x_amd64/compile matic-mounting-mgit --local nfig/composer/ve--show-toplevel x_amd64/compile -C /home/REDACTED/work/gh-aw/gh-aw/.github/workflows .cfg 64/pkg/tool/linux_amd64/compile get --local /usr/local/.ghcu--git-dir 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 rev-parse 64/pkg/tool/linux_amd64/vet ath ../../../.prgit --local /home/REDACTED/wor--show-toplevel 64/pkg/tool/linux_amd64/vet api k/gh-aw/gh-aw/.github/workflows -f 64/pkg/tool/linux_amd64/compile -f owner=github DiscussionsEnabl--git-dir 64/pkg/tool/linux_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linux_amd64/vet l --local ndor/bin/bash 64/pkg/tool/linux_amd64/vet api l.go l_test.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -f owner=github -f ache/go/1.25.8/x64/pkg/tool/linu-importcfg (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 .cfg 64/pkg/tool/linu-importcfg -f owner=github -f 64/pkg/tool/linu/home/REDACTED/work/gh-aw/gh-aw/pkg/timeutil/format_test.go api 4195967552 .cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet l owner=github -f ache/go/1.25.8/x64/pkg/tool/linu-trimpath (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git k/gh-aw/gh-aw/.ggit .cfg 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/compile /usr/bin/git g_.a 5203314/b016/vet-c 64/pkg/tool/linugit-upload-pack &#39;origin&#39; git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha tions/setup/js/node_modules/flatted/golang/pkg/f-errorsas .cfg 64/pkg/tool/linux_amd64/vet h ../../../.pretgit --local (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha --noprofile (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha ithub/workflows /home/REDACTED/wormain x_amd64/vet 0 -j ACCEPT x_amd64/vet --no�� Gitmain_branch1043593581/001&#39; Gitmain_branch1043593581/001&#39; x_amd64/vet content&#39;] lines git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha te &#39;../../../**/-errorsas (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/-
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/- --jq .object.sha --local user.email $name) { hasDiscussionsEnabled } } (http block)
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/- --jq .object.sha ath ../../../.pr**/*.json GO111MODULE $name) { hasDiscussionsEnabled } } GOINSECURE GOMOD GOMODCACHE go 64/c�� re ols/linux64/java/bin/java 64/bin/go GOINSECURE GOMOD vascript/tools/e/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b go (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha mpiledOutput1753832940/001 go-udiff@v0.4.1/lcs/doc.go 64/pkg/tool/linux_amd64/vet l --local DiscussionsEnabluser.name 64/pkg/tool/linuTest User (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion get --local /opt/hostedtoolcuser.name 64/pkg/tool/linuTest User -1 xterm-color git ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet --local user.email ache/node/24.14.--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo -importcfg /tmp/go-build2825203314/b410/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/tar.go ache�� ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo me: String!) { -importcfg (http block)
  • https://api.github.com/repos/owner/repo/contents/file.md
    • Triggering command: /tmp/go-build2825203314/b396/cli.test /tmp/go-build2825203314/b396/cli.test -test.testlogfile=/tmp/go-build2825203314/b396/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name --noprofile (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.53.0
jq 1.7
yq 4.52.5
curl 8.5.0
gh 2.89.0
node 20.20.2
python3 3.12.3
go 1.24.13
java 21.0.10
dotnet 10.0.201

Result: 12/12 tools available ✅

Overall Status: PASS

🔧 Tool validation by Agent Container Smoke Test · ● 162.3K ·

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

Smoke Test 23993205511 — PR #24503

Test Result
GitHub CLI (bash) ❌ not on PATH
MCP Scripts GH CLI
Serena CLI (bash) ❌ not on PATH
Playwright CLI (bash) ❌ not on PATH
Web Fetch
File Write/Read
Discussion Query
Build gh-aw
Create Discussion
Workflow Dispatch
PR Review

Status: ⚠️ PARTIAL PASS (9/12) — Tests 1/3/4 failed because the mount-as-clis CLI tools (github, serena, playwright) were not available on PATH during this run.

Author: app/copilot-swe-agent · Assignees: pelikhan, Copilot

📰 BREAKING: Report filed by Smoke Copilot · ● 1.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 test review of PR #24503 (feat: mount MCP servers as local CLIs). The overall architecture is clean — separating gateway config (all servers) from agent MCP config (CLI-mounted servers excluded) is a sound approach. Two minor observations on mcp_cli_mount.go around the mutable package-level map and the RUNNER_TEMP vs /tmp path clarification. No blocking issues found.

📰 BREAKING: Report filed by Smoke Copilot · ● 1.2M

)

// mcp_cli_mount.go generates a workflow step that mounts MCP servers as local CLI tools
// and produces the prompt section that informs the agent about these tools.
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 file-level comment says CLI scripts are written to \$\{RUNNER_TEMP}/gh-aw/mcp-cli/bin/, but in a few places the PR description refers to /tmp/gh-aw/mcp-cli/bin/. It would help to add a note here clarifying that RUNNER_TEMP/tmp so the AWF sandbox (which mounts \$\{RUNNER_TEMP}/gh-aw read-only) can access the generated scripts.

"safeoutputs": true,
"mcp-scripts": true,
"mcpscripts": true,
}
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 internalMCPServerNames variable is a package-level map[string]bool, which could be accidentally modified at runtime. Consider using a function or a constant set pattern to make it immutable, or at minimum add a comment that it should not be modified after initialization.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

Smoke Test Results — Run §23993205568

Test Status
1 GitHub MCP
2 GH CLI
3 Serena MCP
4 Make Build
5 Playwright
6 Tavily Search
7 File Write
8 Bash Verify
9 Discussion Comment
10 AW MCP Status
11 Slack
12 Code Scanning
13 Update PR
14 Review Comments
15 Submit Review
16 Resolve Thread ⚠️
17 Add Reviewer
18 Push to Branch
19 Close PR ⚠️

Overall: PARTIAL (17 ✅, 2 ⚠️ skipped, 0 ❌)

💥 [THE END] — Illustrated by Smoke Claude · ● 377K ·

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!

💥 [THE END] — Illustrated by Smoke Claude · ● 377K

// Use RUNNER_TEMP so the bin and tools directories are inside the AWF sandbox mount
// (AWF mounts ${RUNNER_TEMP}/gh-aw read-only; /tmp/gh-aw is not accessible inside AWF)
const RUNNER_TEMP = process.env.RUNNER_TEMP || "/home/runner/work/_temp";
const CLI_BIN_DIR = `${RUNNER_TEMP}/gh-aw/mcp-cli/bin`;
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 MANIFEST_FILE path is hardcoded to /tmp/gh-aw/mcp-cli/manifest.json. Consider making this configurable via an environment variable to improve testability and flexibility across different runner configurations.

* that work from the host. Inside the AWF sandbox the gateway is reachable via
* MCP_GATEWAY_DOMAIN:MCP_GATEWAY_PORT (typically host.docker.internal:80).
*
* @param {string} rawUrl - URL from the manifest (host-accessible)
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 INTERNAL_SERVERS set is a good pattern for excluding infrastructure servers. Consider adding a comment explaining the rationale for each excluded server to help future maintainers understand why cache-memory is not in this list but also excluded (filtered elsewhere).

@github-actions

This comment has been minimized.

@github-actions github-actions bot mentioned this pull request Apr 5, 2026
@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 5, 2026

@copilot the agent is still very co fused about how to call the clis

https://github.com/github/gh-aw/actions/runs/23993205511/job/69976454416

…s can filter CLIs

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/df695c39-da3e-46c3-af36-1af81c84fa29

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 5, 2026

@copilot investigate mcpscripts errors https://github.com/github/gh-aw/actions/runs/23992495407/job/69974540910#step:36:1

Fixed in 3214e78. Root cause: export GH_AW_MCP_CLI_SERVERS=... in the start-mcp-gateway step only set the variable for that step's shell session. The convert_gateway_config_*.sh scripts run in a subsequent step and saw an empty variable (defaulting to []), so no servers were filtered from the agent's final MCP config — leaving the agent with both direct MCP access AND CLI wrappers simultaneously, causing the confusion.

Fix: added echo 'GH_AW_MCP_CLI_SERVERS=...' >> "$GITHUB_ENV" in mcp_setup_generator.go so the variable persists to subsequent steps via the GitHub Actions environment file mechanism.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw -pack /home/REDACTED/work/gh-aw/gh-aw/cmd/gh-aw/main.go (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw ,short (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name 1157973798/001&#39; 1157973798/001&#39; /usr/bin/git ErrorFormatting3git --revs /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git /tmp/compile-insgh remote ache/node/24.14./repos/github/gh-aw/git/ref/tags/v1.0.0 git (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --show-toplevel x_amd64/vet /usr/bin/git k/gh-aw/gh-aw/.ggit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha /home/REDACTED/work/gh-aw/gh-aw/.gtest-logs/run-4 git /usr/bin/git ub/workflows git /usr/bin/git git rev-�� --show-toplevel git 1/x64/bin/node --show-toplevel git /usr/bin/git 1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha /usr/bin/git 1/x64/bin/npm /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel git /usr/bin/git node js/f�� /usr/bin/git git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel git /usr/bin/git node (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha ithub/workflows/blog-auditor.md -q 336886/b430/vet.cfg l -c=4 -nolocalimports gh api /repos/actions/github-script/git/ref/tags/v8 --jq /opt/hostedtoolcache/node/24.14.1/x64/bin/node ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha /usr/bin/git git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� runs/20260405-085616-20950/test-2803201118/.github/workflows git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel ache/go/1.25.8/xrev-parse cal/bin/node node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel git /usr/bin/git git cjs --show-toplevel git ache/node/24.14.1/x64/bin/node --git-dir git /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha _.a 5927368/b229/vet.cfg .cfg (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --paginate repos/{owner}/{repo}/actions/runs/3/artifacts /usr/bin/git .artifacts[].namgit .cfg 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linu/home/REDACTED/work/gh-aw/gh-aw/pkg/timeutil/format_test.go /usr/bin/git /home/REDACTED/worgit config x_amd64/compile git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --show-toplevel 336886/b414/gitutil.test /usr/bin/git t0 /tmp/go-build184rev-parse (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha run epo}/actions/runs/12345/artifacts /usr/bin/git e --write x_amd64/vet git conf�� user.name Test User /usr/bin/git &#34;prettier&#34; --wrigit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -m Test commit /usr/bin/git ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha -aw-actions/git/ref/tags/v1.2.3 64/pkg/tool/linux_amd64/vet /usr/bin/git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha --local les ache/go/1.25.8/x64/bin/sh nore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha rite &#39;../../../*-errorsas (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-current resolved$ /usr/bin/git ithub/workflows --write x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha /repos/actions/github-script/git/ref/tags/v8 --jq /usr/bin/git --show-toplevel git 3c73e1fb63e07850--show-toplevel git rev-�� --show-toplevel l /usr/bin/git install --package-lock-orev-parse x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel git /usr/bin/git node (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha -b feature-branch /usr/bin/git ithub/workflows --write x_amd64/vet git rev-�� --git-dir x_amd64/vet /usr/bin/git ithub/workflows pkg/workflow/conrev-parse x_amd64/link git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel DgQWpXZ/X-Osq-keKcfj38oshXf0 ache/node/24.14.1/x64/bin/node --show-toplevel node 4e232c1f6c48dfe0--show-toplevel ache/node/24.14.1/x64/bin/node -335�� --show-toplevel /opt/hostedtoolcremote /opt/hostedtoolcache/node/24.14.1/x64/bin/node rosoft.CPlat.Core.RunCommandLinux.slice /var/lib/waagent/Microsoft.CPlat.Core.RunCommandLinux-1 git x_amd64/vet /opt/hostedtoolcache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel e/git /usr/bin/git git rev-�� --show-toplevel git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel git /usr/bin/git node (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha runs/20260405-085359-15484/test-253068712/.github/workflows -tests /usr/bin/git l user.name repository(owne--show-toplevel git push�� origin main 1/x64/bin/node set-url origin k/gh-aw/gh-aw/ac--show-toplevel 1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha &#39;/tmp/TestParseDefaultBranchFromremote.origin.url &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen3450588499/001&#39; /usr/bin/git --show-toplevel e/git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git 1/x64/bin/node --show-toplevel l /usr/bin/git git (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .visibility on&#39; --ignore-path ../../../.prettierignore (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha -m Initial commit /usr/bin/git Gitbranch_with_hgit Gitbranch_with_hrev-parse x_amd64/vet git conf�� user.email test@example.com /usr/bin/git ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git 1/x64/bin/node ty-test.md git /usr/bin/git 1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel e/git /opt/hostedtoolc--show-toplevel git rev-�� --show-toplevel /opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node ${{ github.actogit (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha ithub/workflows/ace-editor.md git /usr/lib/git-core/git-upload-pack *.json&#39; &#39;!../../git pull.rebase rgo/bin/bash git-upload-pack /tmp�� (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha sistency_GoAndJavaScript3158977889/001/test-inlined-imports-enabled-with-body-content.md git ache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git 1/x64/bin/node --show-toplevel s/5/artifacts /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha --noprofile -tests /usr/bin/git *.json&#39; &#39;!../../git pull.rebase cal/bin/bash git clon�� /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branch3361951276/001 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel e/git /usr/bin/git git rev-�� runs/20260405-085616-20950/test-3635845876/.github/workflows git /opt/hostedtoolcache/node/24.14.1/x64/bin/node --show-toplevel (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq .object.sha --show-toplevel git 1/x64/bin/node --show-toplevel git clusion,workflow--show-toplevel git rev-�� --show-toplevel git 1/x64/bin/node --show-toplevel s/3/artifacts /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linux_amd64/vet remote.origin.urnode (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 .cfg 64/pkg/tool/linux_amd64/vet l owner=github -f 64/pkg/tool/linux_amd64/vet -C /home/REDACTED/work/gh-aw/gh-aw/.github/workflows config ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name -trimpath /bin/sh -p github.com/githurev-parse -lang=go1.25 /bin/sh -c git-receive-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branch1157973798/001&#39;/usr/bin/git git-receive-pack &#39;/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branch1157973798/001&#39;config /usr/bin/git -c=4 -nolocalimports -importcfg git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linux_amd64/vet l (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 .cfg 64/pkg/tool/linux_amd64/vet l (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name git /usr/bin/git --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git git rev-�� licyBlockedUsersExpressionCompiledOutput3773182790/001 git /usr/bin/git --show-toplevel 336886/b421/parsrev-parse /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linux_amd64/vet -f owner=github -f 64/pkg/tool/linux_amd64/vet -C /workflows l_test.go x_amd64/vet remote.origin.urnode (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 .cfg 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name git /usr/bin/git --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.8/xrev-parse /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linux_amd64/vet h ../../../.pretgit (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 .cfg 64/pkg/tool/linu-nolocalimports h ../../../.pretgit (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name git /usr/lib/git-core/git-receive-pack --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git git-receive-pack /tmp�� /usr/bin/git git trepo.git --show-toplevel git /usr/bin/git infocmp (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linu-importcfg remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 .cfg 64/pkg/tool/linux_amd64/vet remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name -buildtags /usr/lib/git-core/git -errorsas -ifaceassert -nilfunc /usr/lib/git-core/git pack�� --all-progress-implied --revs ache/node/24.14.1/x64/bin/node --thin --delta-base-offrev-parse -q git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linux_amd64/vet h ../../../.pretgit (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 .cfg 64/pkg/tool/linux_amd64/vet h ../../../.pretgit (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name -importcfg /usr/lib/git-core/git -s -w -buildmode=exe /usr/lib/git-core/git unpa�� --pack_header=2,3 (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linux_amd64/vet remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 .cfg 64/pkg/tool/linux_amd64/vet -f owner=github -f 64/pkg/tool/linux_amd64/vet -1 2706892438 (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name -buildtags /opt/hostedtoolcache/node/24.14.1/x64/bin/node -errorsas -ifaceassert -nilfunc node /tmp�� /tmp/TestHashConsistency_GoAndJavaScript3158977889/001/test-frontmatter-with-nested-objects.md -tests /usr/bin/git --show-toplevel /bin/sh /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --noprofile (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 owner=github -f 64/pkg/tool/linux_amd64/vet -C mpiledOutput4114167603/001 rev-parse 64/pkg/tool/linux_amd64/vet l (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git 28105047/001 erena-mcp-serverrev-parse 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/compile /usr/bin/git _.a 5927368/b010/vet-c .cfg git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha } git /usr/bin/git --show-toplevel gh /usr/bin/git git -C /tmp/gh-aw-test-runs/20260405-085616-20950/test-1745871875 rev-parse /usr/bin/git @{u} git /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel gh /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha edOutput2526034050/001 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/gh ithub/workflows/git -trimpath 1/x64/bin/node gh api /repos/actions/checkout/git/ref/tags/v3 --jq /usr/bin/git ithub/workflows/git -q 336886/b430/vet.--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel l /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha ithub/workflows on x_amd64/vet /../../.prettiergit erignore ed } } x_amd64/vet -c ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha --show-toplevel git /usr/bin/git add origin /usr/bin/git git estl�� --show-toplevel git tup --show-toplevel x_amd64/vet /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha ithub/workflows --others x_amd64/vet /../../.prettiergit-receive-pack (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha ty-test.md --package-lock-only /usr/bin/git v1.0.0 remote.origin.urrev-parse /usr/bin/git git rev-�� /ref/tags/v8 git /usr/bin/du --show-toplevel 64/pkg/tool/linurev-parse /usr/bin/git du (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha i/install.sh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha --show-toplevel git /usr/bin/git remove remote2 /opt/hostedtoolc/tmp/compile-all-instructions-test-3389727844/.github/workflows git rev-�� 583281/001 node /usr/bin/sed /home/REDACTED/worgit x_amd64/vet /usr/bin/git sed (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/-
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/- --jq .object.sha (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha k/gh-aw/gh-aw/.github/workflows config 64/pkg/tool/linux_amd64/vet remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha ACCEPT 336886/b431/sliceutil.test /usr/bin/git t0 -buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git /tmp/gh-aw-test-node rev-parse /usr/bin/git git (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git ache/uv/0.11.3/x--show-toplevel git (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo -importcfg /tmp/go-build120336886/b410/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/tar.go --no�� rite &#39;../../../*-errorsas (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo k/node_modules/.bin/sh (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo ache/go/1.25.8/x64/bin/node /tmp/gh-aw-test-/opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/asm rev-parse /usr/bin/git git ache�� --show-toplevel nly /usr/bin/git --show-toplevel /tmp/go-build120add ache/node/24.14.. git (http block)
  • https://api.github.com/repos/owner/repo/contents/file.md
    • Triggering command: /tmp/go-build120336886/b396/cli.test /tmp/go-build120336886/b396/cli.test -test.testlogfile=/tmp/go-build120336886/b396/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true (http block)
    • Triggering command: /tmp/go-build3195362879/b369/cli.test /tmp/go-build3195362879/b369/cli.test -test.testlogfile=/tmp/go-build3195362879/b369/testlog.txt -test.paniconexit0 -test.timeout=10m0s rev-�� --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git ithub/workflows/git -buildtags r,url,status,con--show-toplevel git rev-�� --show-toplevel /bin/sh /usr/bin/git git-upload-pack git l /usr/bin/git git (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name ithub/workflows --log-level k/_temp/uv-python-dir/node --log-target journal-or-kmsg (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name 55743636/001&#39; 55743636/001&#39; /usr/bin/git --pack_header=2,git -q /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git s/test.md rev-parse /usr/bin/git git (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

Hey @Copilot 👋 — great work on the MCP-as-CLI mounting feature! The architecture is well thought out, the PR description is thorough, and the two-stage filtering approach (gateway starts everything; agent config excludes CLI-mounted servers) is clearly explained.

One thing that would help get this across the finish line:

  • Missing Go unit tests — the new pkg/workflow/mcp_cli_mount.go introduces three key functions (getMCPCLIServerNames, generateMCPCLIMountStep, buildMCPCLIPromptSection), and pkg/workflow/tools_parser.go / tools_types.go add the MountAsCLIs field — but none of these have accompanying *_test.go files. The rest of pkg/workflow/ has thorough coverage (e.g. tools_parser_test.go, agentic_workflow_test.go), so tests here would fit right in with the existing pattern. The shell test added for validate_prompt_placeholders_test.sh is appreciated, but Go-level coverage for the compiler logic is still needed to match project standards.

If you'd like a hand, you can assign this prompt to your coding agent:

Add Go unit tests for the MCP CLI mount feature in pkg/workflow/.

Create pkg/workflow/mcp_cli_mount_test.go covering:
1. getMCPCLIServerNames() — returns nil when tools.mount-as-clis is false or unset; returns a sorted list of user-facing built-in + custom server names when true; excludes internal servers (safeoutputs, mcp-scripts, cache-memory).
2. generateMCPCLIMountStep() — returns an empty/nil step when mount-as-clis is false; returns a properly structured actions/github-script step with the expected script path when true.
3. buildMCPCLIPromptSection() — returns an empty section when mount-as-clis is false; returns a section with IsFile: true referencing mcp_cli_tools_prompt.md and the correct GH_AW_MCP_CLI_SERVERS_LIST env var when true.

Also create pkg/workflow/tools_parser_mcp_cli_test.go (or add cases to existing tools_parser_test.go) covering:
4. Parsing mount-as-clis: true from frontmatter sets MountAsCLIs = true on ToolsConfig.
5. Parsing mount-as-clis: false (or omitted) sets MountAsCLIs = false.

Follow the table-driven test pattern used throughout pkg/workflow/ (see scratchpad/testing.md) and use github.com/stretchr/testify/assert. Run `make test` to verify everything passes before finishing.

Generated by Contribution Check · ● 1.9M ·

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! Run 24001448881

💥 [THE END] — Illustrated by Smoke Claude · ● 246.1K


const fs = require("fs");
const http = require("http");
const path = require("path");
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 MANIFEST_FILE path is hardcoded to /tmp/gh-aw/mcp-cli/manifest.json. Consider using a constant or env var shared with start_mcp_gateway.sh to avoid drift if the path changes. Smoke test review comment — Run 24001448881.

@@ -0,0 +1,45 @@
<mcp-clis>
## MCP Servers Mounted as Shell CLI Commands

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 and actionable heading. The IMPORTANT callout is effective for preventing agent confusion. Smoke test review comment — Run 24001448881.

@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 5, 2026

@copilot merge main and recompile

Copilot AI and others added 2 commits April 5, 2026 15:05
…-mounting-mcp-servers

# Conflicts:
#	.github/workflows/smoke-copilot.lock.yml

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/1d35fa17-1b02-4f55-85f0-9c17d491b2bd

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 5, 2026

@copilot merge main and recompile

Done in 81db7fa. Merged main and recompiled all 181 workflows successfully.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw -pack /home/REDACTED/work/gh-aw/gh-aw/cmd/gh-aw/main.go (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq .object.sha (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .visibility (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/-
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/- --jq .object.sha (http block)

If you need me to access, download, or install something from one of these locations, you can either:

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