fix: reject invalid subrecipe content - #10994
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ec944e0b91
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
DOsinga
left a comment
There was a problem hiding this comment.
The final diff keeps validation on the provider-visible Summon load path, removes the invalid-subrecipe raw-content disclosure, and preserves templated delegation through the existing render path. The focused regressions cover both sanitized invalid content and valid external recipes. Required checks pass and I found no blocking concerns.
* origin/main: (47 commits) chore(deps): bump pypa/gh-action-pypi-publish from 1.14.1 to 1.14.2 (#11037) chore(deps): bump actions/setup-java from 5.6.0 to 5.7.0 (#11036) chore(deps): bump Jimver/cuda-toolkit from 0.2.35 to 0.2.36 (#11035) chore(deps-dev): bump js-yaml from 4.3.0 to 4.3.1 in /documentation (#11052) chore(deps-dev): bump @types/yauzl from 2.10.3 to 3.4.0 in /ui (#10975) chore(deps-dev): bump electron from 41.0.0 to 41.10.3 in /ui (#10969) chore(deps): bump brace-expansion from 1.1.16 to 1.1.18 in /documentation (#10947) chore(deps-dev): bump postcss from 8.5.8 to 8.5.23 in /ui (#10946) chore(deps): bump aiohttp from 3.14.1 to 3.14.3 in /scripts/provider-error-proxy (#10945) chore(deps): bump fast-uri from 3.1.4 to 3.1.5 in /documentation (#10944) fix: reject invalid subrecipe content (#10994) chore(deps): bump azure/login from 3.0.0 to 3.0.1 (#11033) chore(deps): bump pnpm/action-setup from 6.0.9 to 6.0.10 (#11034) Cache-safe request assembly: append-only turn context and declared cache semantics (#11022) Unrolled agent loop (#9574) fix: keep turn-context in place for OpenAI Responses-stack models so prompt caching works (#10993) fix(developer): byte-bound the shell truncation preview (#10992) fix(openrouter): stop silently ignoring thinking effort off (#10991) fix: dispatch edited queued messages (#10933) fix: contain recipe template paths (#10930) ...
* main: fix(streaming): skip metadata-only SSE frames instead of failing the turn (#10942) fix(telegram): send responses as rich markdown (#11062) fix(acp): send session setup updates after new and fork session responses (#11018) fix(ui): remove duplicated brace-expansion keys that break every pnpm install (#11071) chore(deps): bump pypa/gh-action-pypi-publish from 1.14.1 to 1.14.2 (#11037) chore(deps): bump actions/setup-java from 5.6.0 to 5.7.0 (#11036) chore(deps): bump Jimver/cuda-toolkit from 0.2.35 to 0.2.36 (#11035) chore(deps-dev): bump js-yaml from 4.3.0 to 4.3.1 in /documentation (#11052) chore(deps-dev): bump @types/yauzl from 2.10.3 to 3.4.0 in /ui (#10975) chore(deps-dev): bump electron from 41.0.0 to 41.10.3 in /ui (#10969) chore(deps): bump brace-expansion from 1.1.16 to 1.1.18 in /documentation (#10947) chore(deps-dev): bump postcss from 8.5.8 to 8.5.23 in /ui (#10946) chore(deps): bump aiohttp from 3.14.1 to 3.14.3 in /scripts/provider-error-proxy (#10945) chore(deps): bump fast-uri from 3.1.4 to 3.1.5 in /documentation (#10944) fix: reject invalid subrecipe content (#10994) chore(deps): bump azure/login from 3.0.0 to 3.0.1 (#11033) chore(deps): bump pnpm/action-setup from 6.0.9 to 6.0.10 (#11034) Cache-safe request assembly: append-only turn context and declared cache semantics (#11022)
Summary
Addresses https://github.com/project-loupe/audit-goose/issues/93.
Security boundary
A selected parent recipe may reference external recipe files, but an invalid referenced file must not be copied verbatim into provider-visible
loadoutput. This keeps valid external Recipe compatibility while removing the raw-content fallback.Verification
bin/cargo fmtbin/cargo test -p goose external_subrecipe_contentbin/cargo test -p goose test_template_inheritancebin/cargo build -p goosebin/cargo clippy --all-targets -- -D warningsgit diff --checkThis finding was discovered by Project Loupe.