Conversation
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 unknown tool names are not allowed and should be a compile error.
|
- 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>
Done in e23cb22. Unknown tool names now cause a compile error instead of a warning:
Example error output: 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:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@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>
Fixed in 335cee5. The Example error: 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:
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, |
There was a problem hiding this comment.
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>
|
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:
Find qmd sgit` (http block)
|
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>
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:
If you need me to access, download, or install something from one of these locations, you can either:
|
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/8120e254-4813-404e-9b1c-daebf64846e4 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Fixed in 5a781e3. The |
… tests Agent-Logs-Url: https://github.com/github/gh-aw/sessions/ebc96b63-4830-4d70-9307-e49cc0829373 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Fixed in a33a183. |
|
🏥 Medical emergency! CI Failure Doctor failed. Doctor needs assistance... |
|
@copilot merge main and recompile |
…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>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/c974e693-f04e-4738-8d54-5990aba5431e Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in 61c43e4 — merged origin/main, resolved conflicts in 3 lock files ( 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:
If you need me to access, download, or install something from one of these locations, you can either:
|
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 undermcp-servers:instead. Theqmddocumentation search tool has been removed as a built-in tool entirely.Changes
pkg/workflow/mcp_config_validation.go— AddedValidateToolsSection()which is called on the rawtools:frontmatter (before merging withmcp-servers). Any non-built-in tool name is a compile error with a message directing users tomcp-servers:. Extracted a sharedbuiltInToolNamespackage-level variable to avoid duplication. RevertedValidateMCPConfigsto only validate MCP config schemas for entries originating frommcp-servers.pkg/workflow/compiler_orchestrator_tools.go— CallsValidateToolsSection(topTools)immediately after extractingtopTools, before merging withmcp-servers.pkg/parser/schemas/main_workflow_schema.json— Settools.additionalProperties: falseso schema-aware editors immediately flag any non-built-in tool name. Removed theqmdproperty fromtools.propertiesand theqmdCollection/qmdSearchEntrydefinitions from$defs.pkg/workflow/mcp_json_test.go— AddedTestValidateToolsSectioncovering: built-in tools (no error), unknown tool names, typos of built-in names, custom MCP server configs intools:(error), and verification that the error message referencesmcp-servers:.pkg/workflow/qmd.go(deleted) — Removed the entire qmd built-in tool implementation.pkg/workflow/tools_types.go— RemovedQmdToolConfig,QmdDocCollection,QmdSearchEntrytypes and theQmdfield fromToolsConfig.pkg/workflow/tools_parser.go— Removedqmdparsing functions (parseQmdTool,parseQmdDocCollection,parseQmdSearchEntry) and removedqmdfrom theknownToolsmap.pkg/workflow/mcp_renderer*.go,mcp_rendering.go— RemovedRenderQmdMCPand all related qmd rendering functions; removedRenderQmdfromMCPToolRenderers.pkg/workflow/compiler_jobs.go,compiler_types.go,compiler_orchestrator_workflow.go,compiler_main_job.go,compiler_yaml_main_job.go— RemovedQmdConfigfield 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/— RemovedDefaultQmdMCPPort,DefaultQmdIndexingRunnerImage,DefaultQmdVersion, andIndexingJobNameconstants.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
Now fails compilation with:
Custom MCP servers defined correctly under
mcp-servers:are unaffected.