Skip to content

fix: unknown tool names in frontmatter tools section are compile errors; remove qmd built-in#24855

Merged
pelikhan merged 16 commits intomainfrom
copilot/fix-unknown-tool-names-warning
Apr 6, 2026
Merged

fix: unknown tool names in frontmatter tools section are compile errors; remove qmd built-in#24855
pelikhan merged 16 commits intomainfrom
copilot/fix-unknown-tool-names-warning

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 6, 2026

Unknown/invalid tool names in tools: frontmatter were silently dropped during compilation — no error, no warning, no trace in the generated .lock.yml. This affected typos of built-in tools (e.g. playwrigjht) and entirely fabricated names alike.

The tools: section only accepts known built-in tool names. Custom MCP servers must be defined under mcp-servers: instead. The qmd documentation search tool has been removed as a built-in tool entirely.

Changes

  • pkg/workflow/mcp_config_validation.go — Added ValidateToolsSection() which is called on the raw tools: frontmatter (before merging with mcp-servers). Any non-built-in tool name is a compile error with a message directing users to mcp-servers:. Extracted a shared builtInToolNames package-level variable to avoid duplication. Reverted ValidateMCPConfigs to only validate MCP config schemas for entries originating from mcp-servers.

  • pkg/workflow/compiler_orchestrator_tools.go — Calls ValidateToolsSection(topTools) immediately after extracting topTools, before merging with mcp-servers.

  • pkg/parser/schemas/main_workflow_schema.json — Set tools.additionalProperties: false so schema-aware editors immediately flag any non-built-in tool name. Removed the qmd property from tools.properties and the qmdCollection/qmdSearchEntry definitions from $defs.

  • pkg/workflow/mcp_json_test.go — Added TestValidateToolsSection covering: built-in tools (no error), unknown tool names, typos of built-in names, custom MCP server configs in tools: (error), and verification that the error message references mcp-servers:.

  • pkg/workflow/qmd.go (deleted) — Removed the entire qmd built-in tool implementation.

  • pkg/workflow/tools_types.go — Removed QmdToolConfig, QmdDocCollection, QmdSearchEntry types and the Qmd field from ToolsConfig.

  • pkg/workflow/tools_parser.go — Removed qmd parsing functions (parseQmdTool, parseQmdDocCollection, parseQmdSearchEntry) and removed qmd from the knownTools map.

  • pkg/workflow/mcp_renderer*.go, mcp_rendering.go — Removed RenderQmdMCP and all related qmd rendering functions; removed RenderQmd from MCPToolRenderers.

  • pkg/workflow/compiler_jobs.go, compiler_types.go, compiler_orchestrator_workflow.go, compiler_main_job.go, compiler_yaml_main_job.go — Removed QmdConfig field and all qmd indexing job logic.

  • pkg/workflow/mcp_setup_generator.go, claude_tools.go, codex_mcp.go, unified_prompt_step.go, dependabot.go, prompt_constants.go — Removed all remaining qmd-specific code paths.

  • pkg/constants/ — Removed DefaultQmdMCPPort, DefaultQmdIndexingRunnerImage, DefaultQmdVersion, and IndexingJobName constants.

  • actions/setup/js/qmd_index.cjs, qmd_index.test.cjs, actions/setup/md/qmd_prompt.md, docs/src/content/docs/reference/qmd.md (deleted) — Removed all qmd asset files.

  • .github/workflows/shared/qmd.md (deleted) — Removed the shared qmd workflow import; updated 10 internal workflow files to remove qmd imports.

Example

tools:
  nonexistent-tool-xyz:
    version: "1.0"

Now fails compilation with:

✗ tools.nonexistent-tool-xyz: unknown tool name. The 'tools' section only accepts built-in tool names.

Valid built-in tools: agentic-workflows, bash, cache-memory, edit, github, playwright, repo-memory, safety-prompt, startup-timeout, timeout, web-fetch, web-search.

If 'nonexistent-tool-xyz' is a custom MCP server, define it under 'mcp-servers' instead:
mcp-servers:
  nonexistent-tool-xyz:
    command: "node server.js"
    args: ["--port", "3000"]

Custom MCP servers defined correctly under mcp-servers: are unaffected.

When a workflow's tools: section contains an unrecognized tool name
(not a known built-in tool and lacking MCP server indicator fields like
command/url/container/type), the compiler now emits a warning message
instead of silently ignoring the entry.

Example warning:
  ⚠ tools.nonexistent-tool-xyz: unknown tool name, will be ignored.
    If this is a custom MCP server, add a 'command', 'url', or 'container'
    field. See: https://...

This helps users catch typos (e.g. 'playwrigjht' vs 'playwright') and
misconfigurations early during compilation.

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/875418f2-b443-4542-ad81-af36a00ef530

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix silent ignoring of unknown tool names in frontmatter fix: warn on unknown tool names in frontmatter tools section Apr 6, 2026
Copilot AI requested a review from pelikhan April 6, 2026 11:28
@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 6, 2026

@copilot unknown tool names are not allowed and should be a compile error.

  • update JSON schema

- Integrate unknown-tool check into ValidateMCPConfigs, returning an
  error instead of a warning when a non-built-in tool name has no MCP
  indicator fields (command, url, container, type)
- Add unknownToolError() helper for the descriptive error message
- Remove WarnUnknownTools function and its call in the orchestrator
- Update JSON schema additionalProperties to require at least one of
  command/url/container/type via anyOf (schema-level enforcement)
- Update tests: replace TestWarnUnknownTools with
  TestValidateMCPConfigs_UnknownTools testing error behavior;
  add test showing type alone bypasses unknown-tool check but still
  fails MCP requirements validation

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/983ac7e6-340d-41fa-9154-63c23487be3b

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

Copilot AI commented Apr 6, 2026

@copilot unknown tool names are not allowed and should be a compile error.

  • update JSON schema

Done in e23cb22. Unknown tool names now cause a compile error instead of a warning:

  • ValidateMCPConfigs returns an error when a non-built-in tool has no MCP indicator fields (command, url, container, or type)
  • JSON schema additionalProperties updated with anyOf requiring at least one of those fields — schema-aware editors flag unknown names immediately
  • Removed WarnUnknownTools entirely

Example error output:

✗ tools.nonexistent-tool-xyz: unknown tool name.

Valid built-in tools: github, playwright, bash, web-fetch, web-search, edit, qmd, agentic-workflows, cache-memory, repo-memory, safety-prompt, timeout, startup-timeout.

If 'nonexistent-tool-xyz' is a custom MCP server, add a 'command' (stdio), 'url' (http), or 'container' field:
tools:
  nonexistent-tool-xyz:
    command: "node server.js"
    args: ["--port", "3000"]

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 GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git est.go GO111MODULE 64/bin/go 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 -bool -buildtags /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -ato�� -bool -buildtags /opt/hostedtoolcache/go/1.25.8/x64/bin/bash -errorsas -ifaceassert -nilfunc bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --noprofile GOPROXY /home/REDACTED/.local/bin/git GOSUMDB GOWORK 64/bin/go git show�� 62ea8ef8fe8dfa227c4b8a041caad518033aea29:pkg/parser/schemas/main_workflow_schema.json go /opt/hostedtoolcache/go/1.25.8/x64/bin/bash -json GO111MODULE 64/bin/go bash (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 te &#39;../../../**/*.json&#39; &#39;!../../../pkg/workflow/-errorsas (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha -json GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD 033aea29 64/pkg/tool/linux_amd64/compile env g_.a GO111MODULE cal/bin/bash GOINSECURE GOMOD GOMODCACHE go (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha --noprofile -tests /usr/bin/git js/**/*.json&#39; --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&#39; &#39;!../.git --local x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git --local credential.helperev-parse 64/pkg/tool/linu--show-toplevel git (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 --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha 2038459/b001/workflow.test (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 */*.ts&#39; &#39;**/*.jsgit --local x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git athSetup_GorootOgit --local 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 --format=%(refname) --merged=62ea8ef8fe8dfa227c4b8a041caad518033aea29 /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet ignore-path ../.git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha t0 m0s /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet lidateMCPConfigsgit (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 --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha -json GO111MODULE /usr/sbin/bash GOINSECURE GOMOD GOMODCACHE bash --no�� --noprofile GOPROXY /home/REDACTED/work/_temp/uv-python-dir/git GOSUMDB GOWORK 64/bin/go 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 --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha -json GO111MODULE /usr/local/sbin/bash GOINSECURE GOMOD GOMODCACHE bash --no�� --noprofile GOPROXY /usr/sbin/git GOSUMDB GOWORK 64/bin/go 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 --local .cfg 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 -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go 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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha 7c4b8a041caad518033aea29:pkg/workflow/mcp_json_test.go GO111MODULE /home/REDACTED/.local/bin/bash GOINSECURE GOMOD GOMODCACHE bash --no�� --noprofile GOPROXY /opt/hostedtoolcache/go/1.25.8/x64/bin/git GOSUMDB GOWORK 64/bin/go git (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 te &#39;**/*.cjs&#39; &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-pat-errorsas .cfg 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 -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go ool.�� tom-mcp.md GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 --local .cfg 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 -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env ithub/workflows GO111MODULE ndor/bin/git GOINSECURE GOMOD GOMODCACHE go (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel 5965901/b389/impGOPROXY /usr/bin/git che/go-build/8c/git **/*.cjs 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go 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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha che/go-build/56/GOSUMDB GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/xGO111MODULE -o /tmp/go-build2655965901/b415/_pkGOINSECURE -trimpath 64/bin/go -p github.com/githushow -lang=go1.25 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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha k/gh-aw/gh-aw/pkGOSUMDB k/gh-aw/gh-aw/pkGOWORK 64/bin/go --ignore-path ../../../.pretti--norc 64/bin/go /opt/hostedtoolcache/go/1.25.8/xGO111MODULE -o /tmp/go-build2655965901/b418/_pkGOINSECURE -trimpath 64/bin/go -p main -lang=go1.25 go (http block)

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

Copilot AI changed the title fix: warn on unknown tool names in frontmatter tools section fix: unknown tool names in frontmatter tools section are compile errors Apr 6, 2026
@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 6, 2026

@copilot custom mcp servers are under "mcp-serves", not tools

…-servers:

- Custom MCP servers belong under mcp-servers:, not tools:
- Add ValidateToolsSection() called on topTools before merging with
  mcp-servers; any non-built-in tool name is a compile error with
  an error message directing users to mcp-servers:
- Revert ValidateMCPConfigs to only validate MCP config schemas for
  entries from mcp-servers (after merging)
- Extract shared builtInToolNames map and builtInToolNamesForError to
  avoid duplication across functions
- Set tools.additionalProperties: false in JSON schema — only
  the enumerated built-in properties are allowed
- Update tests: TestValidateToolsSection replaces previous tests

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/70bd7621-aee6-4842-a76f-ce9bd103b526

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

Copilot AI commented Apr 6, 2026

@copilot custom mcp servers are under "mcp-serves", not tools

Fixed in 335cee5. The tools: section now only allows known built-in tool names. Any other entry is a compile error directing users to mcp-servers: — the ValidateToolsSection check runs on the raw tools: frontmatter before it's merged with mcp-servers. The schema now has additionalProperties: false enforcing this at the YAML parsing level too.

Example error:

tools.my-custom-server: unknown tool name. The 'tools' section only accepts built-in tool names.

If 'my-custom-server' is a custom MCP server, define it under 'mcp-servers' instead:
mcp-servers:
  my-custom-server:
    command: "node server.js"
    args: ["--port", "3000"]

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 GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git js/**/*.json&#39; --git GO111MODULE -main/autofind/a--show-toplevel 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 -bool -buildtags /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build3403655691/b238/vet.cfg /opt/hostedtoolcache/go/1.25.8/x64/bin/bash (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha prettier --write /opt/hostedtoolcache/node/24.14.1/x64/bin/npm **/*.ts **/*.json --ignore-path npm run format:pkg-json --silent /opt/hostedtoolcache/go/1.25.8/x64/bin/bash tierignore GOPROXY 64/bin/go bash (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 rite &#39;../../../**/*.json&#39; &#39;!../../../pkg/workflo-errorsas .cfg 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha -json GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env g_.a GO111MODULE ache/node/24.14.1/x64/bin/npx ignore GOMOD GOMODCACHE go (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 on&#39; --ignore-path ../../../.pret.prettierignore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -unreachable=false /tmp/go-build3403655691/b357/vet.cfg /usr/bin/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 .js&#39; --ignore-pagit --local x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git --local credential.helperev-parse 64/pkg/tool/linu--show-toplevel git (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 pkg/mod/github.com/stretchr/testify@v1.11.1/require/doc.go pkg/mod/github.com/stretchr/testify@v1.11.1/require/forward_requirements.go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile --ignore-path ../../../.prettirev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha actions/setup-cli/install.sh (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 &#39;**/*.ts&#39; &#39;**/*.git --local x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git athSetup_GorootOgit --local 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 --write ../../../**/*.json 3655691/b160/vet.cfg --ignore-path ../../../.prettirev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha if [ -f .github/aw/actions-lock.json ]; then \ cp .github/aw/actions-lock.json pkg/workflow/datgit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha echo &#34;��� Action scripts synced successfully&#34; (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha te &#39;../../../**/*.json&#39; &#39;!../../../pkg/workflow/js/**/*.json&#39; --ignore-path ../../../.prettieriggit diff /bin/sh --irreversible-dgit -U0 e23cb2216cb77b3a--show-toplevel /bin/sh -c cd actions/setup/js &amp;&amp; npm run format:cjs --silent &gt;/dev/null 2&gt;&amp;1 go /home/REDACTED/.npm/_npx/b388654678d519d9/node_modules/.bin/sh s.go GO111MODULE 64/bin/go sh (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 echo &#34;��� Code formatted successfully&#34; (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha te &#39;../../../**/*.json&#39; &#39;!../../../pkg/workflow/js/**/*.json&#39; --ignore-path ../../../.prettieriggit figure_ghe_step_test.go /bin/sh --irreversible-dgit -U0 e23cb2216cb77b3a--show-toplevel /bin/sh -c echo &#34;��� Go code formatted&#34; go /opt/hostedtoolcache/go/1.25.8/x64/bin/node s.go GO111MODULE 64/bin/go 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 --local .cfg 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 -json GO111MODULE tions/setup/js/node_modules/.bin/prettier GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go 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 --write ../../../**/*.json 3655691/b159/vet.cfg --ignore-path ../../../.prettirev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq .object.sha te &#39;../../../**/*.json&#39; &#39;!../../../pkg/workflow/js/**/*.json&#39; --ignore-path ../../../.prettieriggit diff /home/REDACTED/.config/composer/vendor/bin/bash --irreversible-dgit -U0 e23cb2216cb77b3a--show-toplevel bash --no�� --noprofile go /home/REDACTED/work/_temp/uv-python-dir/node s.go GO111MODULE 64/bin/go 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 rite &#39;**/*.cjs&#39; &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.pr**/*.json gpg.program 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 -json GO111MODULE bin/node GOINSECURE GOMOD GOMODCACHE go tion�� -json GO111MODULE tions/node_modules/.bin/sh GOINSECURE GOMOD GOMODCACHE go (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 rite &#39;**/*.cjs&#39; &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.pr**/*.json gpg.program 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 -json GO111MODULE de_modules/.bin/node GOINSECURE GOMOD GOMODCACHE go tion�� -json GO111MODULE tions/setup/js/node_modules/.bin/sh GOINSECURE GOMOD GOMODCACHE go (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq .object.sha --show-toplevel /opt/hostedtoolcache/go/1.25.8/xGO111MODULE /usr/bin/git _workflow_schemagit -trimpath 64/bin/go git rev-�� --show-toplevel go /usr/bin/git ath ../../../.pr/bin/sh GO111MODULE 64/bin/go 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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha ignore-path ../../../.prettierignore -trimpath 64/bin/go -p github.com/githu--write -lang=go1.25 go env -json GO111MODULE modules/@npmcli/run-script/lib/node-gyp-bin/sh GOINSECURE GOMOD GOMODCACHE 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 ./cmd/gh-aw (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq .object.sha _workflow_schema.json -trimpath (http block)

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

var builtInToolNames = map[string]bool{
"github": true,
"playwright": true,
"qmd": true,
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 remove, not builtin anymore

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 b1f0b6b — removed qmd from builtInToolNames in mcp_config_validation.go, knownTools in tools_parser.go, and from the tools.properties in the JSON schema.

qmd is no longer a built-in tool:
- Remove from builtInToolNames in mcp_config_validation.go
- Remove from knownTools in tools_parser.go
- Remove qmd property from tools schema

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/4e1f4ece-bca4-42ba-afc0-9e87a8785d83

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

Copilot AI commented Apr 6, 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 (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 -bool -buildtags /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -uns�� -unreachable=false /tmp/go-build228404641/b231/vet.cfg /opt/hostedtoolcache/go/1.25.8/x64/bin/bash (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 rite &#39;../../../**/*.json&#39; &#39;!../../../pkg/workflo-errorsas cfg 64/pkg/tool/linux_amd64/compile (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 on&#39; --ignore-path ../../../.pret.prettierignore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -unreachable=false /tmp/go-build228404641/b357/vet.cfg /usr/bin/git js/**/*.json&#39; --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 .js&#39; --ignore-pagit --local x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git sions/ race 64/pkg/tool/linu--show-toplevel git (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 echo &#34;��� JSON files formatted&#34; (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha actions/setup-cli/install.sh (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 &#39;**/*.ts&#39; &#39;**/*.git --local x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git thSetup_GorootOrgit --local 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 --write ../../../**/*.json 404641/b160/vet.cfg --ignore-path ../../../.prettirev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha pkg/workflow/data/action_pins.json (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha --tags --always /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 echo &#34;Syncing actions-lock.json from .github/aw to pkg/workflow/data/action_pins.json...&#34; (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 (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 --local cfg 64/pkg/tool/linux_amd64/vet (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 --write ../../../**/*.json 404641/b159/vet.cfg --ignore-path ../../../.prettirev-parse (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 rite '/*.cjs' '/.ts' '**/.json' --ignore-path ../../../.pr**/*.json cfg 64/pkg/tool/linux_amd64/vet d()

Find qmd sgit` (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 _.a origin 64/pkg/tool/linux_amd64/vet (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 (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 (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 (http block)

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

Copilot AI requested a review from pelikhan April 6, 2026 14:43
@pelikhan pelikhan marked this pull request as ready for review April 6, 2026 14:44
Copilot AI review requested due to automatic review settings April 6, 2026 14:44
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/ba4a944f-4422-46c1-89e4-88d36c153ec4

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

Copilot AI commented Apr 6, 2026

@copilot merge main and recompile

Done in 141d350 — merged origin/main, resolved conflicts (kept qmd.go deletion, took main's lock files), built, and recompiled all 181 workflows cleanly.

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:

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

pelikhan commented Apr 6, 2026

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 6, 2026

@copilot fix https://github.com/github/gh-aw/actions/runs/24041278492/job/70127699442

Fixed in 5a781e3. The TestDependencyGraph_TopologicalConsistencyContract tests used placeholder tool names (tool-z, tool-a, etc.) that are now invalid under the new ValidateToolsSection validation. Replaced them with valid built-in tool names (playwright, bash, github, edit, web-fetch, web-search).

@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 6, 2026

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 6, 2026

@copilot fix https://github.com/github/gh-aw/actions/runs/24048180807/job/70136806443?pr=24855

Fixed in a33a183. TestHTTPMCPSecretsPassedToGatewayContainer and TestMultipleHTTPMCPSecretsPassedToGatewayContainer had tavily and datadog (custom MCP servers) under tools: instead of mcp-servers:. Moved them to mcp-servers: to match the correct structure enforced by this PR.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 6, 2026

🏥 Medical emergency! CI Failure Doctor failed. Doctor needs assistance...

@github-actions github-actions bot removed the ci-doctor label Apr 6, 2026
@pelikhan
Copy link
Copy Markdown
Collaborator

pelikhan commented Apr 6, 2026

@copilot merge main and recompile

Copilot AI and others added 2 commits April 6, 2026 22:03
…ool-names-warning

# Conflicts:
#	.github/workflows/ci-doctor.lock.yml
#	.github/workflows/daily-doc-updater.lock.yml
#	.github/workflows/weekly-blog-post-writer.lock.yml

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

Copilot AI commented Apr 6, 2026

@copilot merge main and recompile

Done in 61c43e4 — merged origin/main, resolved conflicts in 3 lock files (ci-doctor, daily-doc-updater, weekly-blog-post-writer), built, and recompiled all 182 workflows cleanly.

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/pkg/constants/constants.go /home/REDACTED/work/gh-aw/gh-aw/pkg/constants/engine_constants.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:

@pelikhan pelikhan merged commit 17f01e1 into main Apr 6, 2026
@pelikhan pelikhan deleted the copilot/fix-unknown-tool-names-warning branch April 6, 2026 22:11
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.

[cli-tools-test] compile: unknown tool names in frontmatter are silently ignored without warning

3 participants