[codex] dedupe parallel MCP circuit-breaker failures (ZER-676) - #38
Closed
ZeroPointSix wants to merge 5 commits into
Closed
[codex] dedupe parallel MCP circuit-breaker failures (ZER-676)#38ZeroPointSix wants to merge 5 commits into
ZeroPointSix wants to merge 5 commits into
Conversation
ZeroPointSix
marked this pull request as ready for review
August 12, 2026 15:01
This was referenced Aug 12, 2026
ZeroPointSix
added a commit
that referenced
this pull request
Aug 12, 2026
Integrate ZER-676 MCP circuit-breaker failure counting changes for isolated development validation.
Owner
Author
Daytona image smoke testValidated PR head
Smoke results:
This verifies the exact PR image is publishable, pullable, correctly packaged, and starts the ACP protocol successfully. The stale-concurrency behavior itself remains covered by the PR's Rust tests. |
Owner
Author
|
Closing because ZER-676 belongs to the MetaMCP implementation repository, not openab-plus. PR #40 only affected the session dev branch; main was never affected, and the session branch is being reverted with preserved history. |
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.
概要
修复 ZER-676 中 MCP 连续失败熔断的两类误计数:
openab-agent版本从0.1.0更新为0.1.1。根因
旧实现按完成回调逐次调用
record_failure。同一时刻发出的多个请求在共享传输故障后会分别加一,单次并发故障波可能直接达到阈值。连接建立路径虽用互斥锁串行 dial,但并行调用者等待锁之前没有共享失败票据,因此也会重复计数。此外,
tools/call、tools/list和ping收到不符合预期的结果变体时,没有统一按“wire response 证明 transport 存活”处理,与 ADR 5.9 的 transport-only 计数模型不一致。验证
GitHub Actions 全部通过:
cargo fmt --checkcargo clippy -- -D warningscargo test:246 passed,0 failed,11 ignoredcargo test -- --ignored:11 passed,0 failed回归测试覆盖:同一纪元的三个并行失败只计一次;新纪元的顺序重试仍能在三次后触发熔断;成功后旧失败票据不能重新污染计数或触发客户端断连。
Review Contract
Goal
保证 MCP 熔断器只统计独立的连续 transport failure:同一失败纪元中的并行失败只计一次;协议级或工具级错误允许调用方修正后立即重试,不触发 transport breaker。
Non-goals
不修改失败阈值、60 秒冷却、half-open probe 规则、OAuth challenge 分类、请求超时或连接并发上限。
Accepted Residual Risks
失败纪元使用进程内
u64且不跨进程持久化;这与现有进程内 breaker 生命周期一致。极端的u64回绕仅在理论上存在。Acceptance Criteria
CallToolResult.isError、JSON-RPC error 与意外的 wire response variant 不计为 transport failure。Follow-ups
无。本次变更限定在 ZER-676 的失败分类与并行去重,不扩展 breaker 配置面。