Skip to content

docs: add reliability sidecar recipe - #10780

Closed
artiehinz wants to merge 4 commits into
aaif-goose:mainfrom
artiehinz:docs/reliability-sidecar-recipe
Closed

docs: add reliability sidecar recipe#10780
artiehinz wants to merge 4 commits into
aaif-goose:mainfrom
artiehinz:docs/reliability-sidecar-recipe

Conversation

@artiehinz

@artiehinz artiehinz commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds one recipe for a risky edge case: an external write finishes, but its response is lost. The recipe checkpoints the attempt, checks the destination by a stable marker, and avoids a blind retry. It skips the sidecar for one-time, low-risk work.

The sidecar receives only opaque identifiers, not task text, credentials, personal data, or destination payloads. It records caller-observed evidence; it does not claim exactly-once execution.

Validation

goose recipe validate documentation/src/pages/recipes/data/recipes/reliability-sidecar.yaml
? recipe file is valid

The no-auth MCP endpoint also passed initialization and tool discovery. This PR changes one recipe file and no goose runtime code.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 94b343f443

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread documentation/src/pages/recipes/data/recipes/reliability-sidecar.yaml Outdated
@artiehinz

artiehinz commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

The remaining failure occurs before this recipe is scanned: Goose's base pull_request_target workflow refuses fork checkout.

I withdrew #10782 after security review because opting a fork into the privileged scanner would expose secrets and network-capable tooling to untrusted recipe content. The recipe itself passes goose CLI validation and live MCP discovery. Any safe scanner redesign should happen in the base repository and process fork content without privileged secrets or tooling.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 58864e59d9

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread documentation/src/pages/recipes/data/recipes/reliability-sidecar.yaml Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ff78a0acd1

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread documentation/src/pages/recipes/data/recipes/reliability-sidecar.yaml Outdated
@alexhancock alexhancock self-assigned this Jul 30, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 06123ec1e4

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +49 to +51
`workflow-checkpoint`. Generate opaque high-entropy values for namespace,
workflow key, holder, observation key, and outer idempotency key. Keep one
operation identity stable for this run and use fresh idempotency keys for

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep checkpoint identifiers stable for recovery

When this recipe is used for the advertised recovery path after an earlier ambiguous write, generating a fresh namespace/workflow key means workflow-checkpoint cannot look up the prior external_result_uncertain claim. If the destination read-back is also inconclusive, the agent can create a new checkpoint generation and make another domain attempt instead of coordinating with the old one; the recipe should reuse a previously reported opaque operation identity or ask the user for it before generating new keys.

Useful? React with 👍 / 👎.

@artiehinz

Copy link
Copy Markdown
Contributor Author

Root cause confirmed from run 30560629024: actions/checkout@v7 refuses the fork head SHA because this pull_request_target job has base-repository privileges. That refusal is correct—the later scanner runs goose with developer tooling, outbound network access, and repository secrets, so allow-unsafe-pr-checkout would create a pwn-request path.

I opened #10825 with the safe boundary: the privileged AI scan runs only for branches in aaif-goose/goose; fork PRs leave that job explicitly skipped and retain the required write-access review, with a maintainer-mirror path when the AI scan is needed. Once that base-workflow fix lands, this PR needs a synchronize/reopen event to receive the corrected result.

@artiehinz

Copy link
Copy Markdown
Contributor Author

Update: #10825 has been hardened through review. The proposed workflow no longer checks out fork content or runs the secret-bearing AI scanner for fork PRs. Instead, the fork boundary fails until a write/maintain/admin reviewer approves the exact current head SHA; after that approval, a maintainer reruns the failed boundary job.

For this PR, once #10825 merges: retrigger the recipe workflow (synchronize or reopen), approve current head 06123ec1e4ea1bb4d0260aaa038445ca7c3d5937, then rerun the failed boundary job. The existing security-scan failure is the checkout action correctly refusing an unsafe fork checkout under pull_request_target, not a finding in this recipe.

@artiehinz

Copy link
Copy Markdown
Contributor Author

#10825 is now merged. This PR is still at head \

@alexhancock

Copy link
Copy Markdown
Collaborator

Thanks for the contribution.

If you add the MCP server to the official MCP registry goose will pick it up as searchable when we finish the plan discussed here #10830

That's our preferred path for integrations going forward.

@alexhancock alexhancock closed this Aug 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants