fix: correct cluster_agents image ref and recipe schema violations#1122
Merged
jomcgi merged 3 commits intorefactor/reorganize-agent-platformfrom Mar 14, 2026
Merged
Conversation
- Fix broken Bazel label in projects/cluster_agents/deploy/BUILD:
//projects/agent_platform/cluster_agents:image.info →
//projects/cluster_agents:image.info (stale path after directory move)
- Fix bazel.yaml, code-fix.yaml, research.yaml Goose recipes:
- Add | indent(2) filter to {{ task_description }} in block scalar
prompts (bare var causes serde_yaml "did not find expected key"
when task description is multi-line)
- Remove unsupported headers field from streamable_http extension
(not in Goose recipe schema; causes runtime "Invalid recipe" error)
- Correct context-forge URI to match canonical service address
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This was referenced Mar 14, 2026
jomcgi
pushed a commit
that referenced
this pull request
Mar 14, 2026
The `headers:` field is not part of the Goose recipe schema for `streamable_http` extensions. Goose's strict serde_yaml deserialization rejects unknown fields with "Invalid recipe: did not find expected key", causing agent job failures at runtime. This pattern was introduced twice (PRs #1094, #1122) when in-cluster MCP gateway auth was being configured — both times the `headers: Authorization` approach was wrong and had to be reverted. Auth is unnecessary when MCP_REQUIRE_AUTH=false; the correct pattern is to simply omit headers. Changes: - Add bazel/semgrep/rules/yaml/no-streamable-http-headers.yaml rule - Add bazel/semgrep/rules/BUILD yaml_rules filegroup + yaml_rules_test - Add bazel/semgrep/tests/fixtures/no-streamable-http-headers.yaml test case - Add recipes_semgrep_test to goose_agent/image/BUILD for CI enforcement against all recipe YAML files and config.yaml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
projects/cluster_agents/deploy/BUILD://projects/agent_platform/cluster_agents:image.info→//projects/cluster_agents:image.info. This stale path was left behind when the directory was moved by the parent PR.bazel.yaml,code-fix.yaml,research.yaml:| indent(2)filter to bare{{ task_description }}template vars in block-scalarprompt:fields. Without the filter, multi-line inputs break the YAML after MiniJinja rendering, causing serde_yaml to fail with "did not find expected key" (the CI error).headersfield fromstreamable_httpextensions (headersis not in the Goose recipe schema; Goose rejects it at runtime with "Invalid recipe: did not find expected key").context-forgeURI to canonical service address.Root cause
The
refactor/reorganize-agent-platformbranch (PR #1056) was created before the recipe schema fix landed onmain(3a330da). The BUILD label bug was introduced by the reorganization commit itself — theimagesdict incluster_agents/deploy/BUILDwas not updated to reflect the new package path.Test plan
bazel test //projects/agent_platform/goose_agent/image:recipe_validate_test— recipe schema tests passbazel build //projects/cluster_agents/deploy:chart.images_values— broken label resolved🤖 Generated with Claude Code