feat(buzz-acp): provider failover for hosted agents (Azure Foundry) - #83
Merged
Merged
Conversation
When the primary agent process returns consecutive usage-limit-shaped errors, replace it with one spawned under a configurable failover args/env/model (harness-generic), and return to the primary provider after a cooldown. The compose bundle wires this for a ChatGPT-subscription codex-acp fleet failing over to an Azure AI Foundry Responses endpoint, delivered through CODEX_CONFIG/MODEL_PROVIDER so read-only config mounts are never touched. Bump buzz-relay to 0.2.17 so the hosted agent runtime publisher can ship the change. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Cvv <varun.cumbamangalam@oralens.com>
## Summary CI is failing in `main` before tests start because Docker Hub denies pulls for `minio/minio` and `minio/mc`. Retrying the failed jobs produced the same errors. Use MinIO’s Quay images in the development, harness, deployment Compose, and Helm configurations. Pin each image to its multi-platform digest and retain the release tags already used by deployment templates. Update the architecture reference to match. ### Related issue No duplicate issue or PR found. Addresses the image-pull failures in [main CI attempt 2](https://github.com/block/buzz/actions/runs/34645306855/attempts/2). ### Testing - Pulled both pinned images for Linux ARM64 and AMD64. - Started an isolated Compose stack derived from the updated MinIO service definitions, once per architecture (AMD64 under local emulation). - Verified the existing health check passed and the bucket initializer exited with code 0. - Uploaded an object with `mc cp`, read it with `mc cat`, compared its content, and deleted it with `mc rm` on both architectures. - Confirmed the initialized bucket was private and removed the temporary stack and volume. Generated with Codex Signed-off-by: Salman Mohammed <smohammed@squareup.com> (cherry picked from commit f3940ff) Signed-off-by: Cvv <varun.cumbamangalam@oralens.com>
cargo-deny's advisory check (CI Security job) fails on the pre-existing rustls 0.23.42 pin. Update rustls, rustls-webpki, and aws-lc to the patched compatible releases. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Cvv <varun.cumbamangalam@oralens.com>
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
buzz-acp: after consecutive usage-limit-shaped application errors (default 2, triggers include the bare-32603 Internal errorthatcodex-acpemits for ChatGPT subscription limits), the agent process is replaced by one spawned with configurable failover args/env/model, and returns to the primary provider after a cooldown (default 3600s). A provider switch does not count against the crash circuit breaker; the controller's primary model revision is not re-applied to a failover process.BUZZ_ACP_FAILOVER_AGENT_ARGS,BUZZ_ACP_FAILOVER_ENV(JSON object),BUZZ_ACP_FAILOVER_MODEL,BUZZ_ACP_FAILOVER_TRIGGERS,BUZZ_ACP_FAILOVER_THRESHOLD,BUZZ_ACP_FAILOVER_COOLDOWN_SECS.agent-entrypoint.shturnsAZURE_FOUNDRY_API_KEY/BASE_URL/DEPLOYMENTintoBUZZ_ACP_FAILOVER_ENVcarryingMODEL_PROVIDERand aCODEX_CONFIGwith an inlinemodel_providers.azure-foundrydefinition. It never touchesconfig.toml, so read-only config mounts keep working.codex-acp1.1.14 ignores CLI config flags; env is the only path.buzz-relayto 0.2.17 so the hosted agent runtime publisher can ship this.Verification
cargo test -p buzz-acp: 848 + 10 passed; clippy-D warningsclean; fmt clean.bats deploy/compose/tests/agent-entrypoint-failover.bats: 8/8.Production wiring for the Suite lives in the companion varvik-suite PR.
🤖 Generated with Claude Code