Review client classifies a refused connection as an unknown outcome
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 85/100
調査の方向性
まず crates/registry-review-client/src/error.rs の ReviewClientError::mutation_class を確認し、crates/registry-casework-client/src/error.rs の CaseworkClientError::is_outcome_unknown / mutation_class と比較する。Transport { kind: TransportKind::Connect } が Deterministic として分類されるようにし、タイムアウトと破損した交換は Ambiguous のままにした上で、crates/registry-review-client/tests/http_boundary.rs に接続を拒否してクラスを検証する境界テストを追加する。そのテストが通り、ReviewMutationErrorClass に関するドキュメントコメントに接続拒否のルールが記載されていれば完了。
索引モデルが issue の本文から書いたものです。
説明
Problem
registry-review-client and the Casework client disagree about a refused connection.
ReviewClientError::mutation_class(crates/registry-review-client/src/error.rs) returnsAmbiguousfor everyTransporterror, includingTransportKind::Connect.CaseworkClientError::is_outcome_unknownandmutation_class(crates/registry-casework-client/src/error.rs) returnDeterministicforTransportKind::Connect, because a connection that was never established cannot have carried the request. The BReg, Messaging and Scheduling clients'is_outcome_unknownmake the same call, and that predicate is what the shared keyed-mutation retry inregistry-platform-httputilconsults.
ReviewMutationErrorClass is re-exported from registry-stack-client, so a caller using the review client directly is told that a refused connection may have committed. The recovery that follows (resend under the same key) is safe, so this is an inconsistency rather than a correctness bug, but the two clients now document different meanings for the same class.
Found while reviewing #1933, which deliberately left create_or_recover_review_request and cancel_review_request outside the automatic resend (one exchange each).
Proposal
Make ReviewClientError::mutation_class return Deterministic for Transport { kind: TransportKind::Connect }, keep Ambiguous for timeouts and broken exchanges, and add a boundary test beside the existing ones in crates/registry-review-client/tests/http_boundary.rs that refuses the connection and asserts the class.
Done when
- A refused connection classifies the same way in the review client as in the BReg, Casework, Messaging and Scheduling clients.
- The review client's documentation of
ReviewMutationErrorClassstates that rule.
- 主要言語
- Rust
- スター
- 2
- フォーク
- 0
- 平均マージ
- 9時間 5分
- マージ済み PR(30日)
- 248
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
registrystack/registry-stack のほかの issue
-
agent-ready area:breg bug criticality:p3 triage:needs-implementation
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
registrystack/registry-stack#1941 ·
メンテナーはふだん 1 日以内に返信
-
area:casework bug criticality:p2 rust
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
registrystack/registry-stack#1936 ·
メンテナーはふだん 1 日以内に返信
-
area:release area:scheduling bug criticality:p3 triage:needs-implementation
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
registrystack/registry-stack#1909 ·
メンテナーはふだん 1 日以内に返信
-
area:release bug
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
registrystack/registry-stack#1874 ·
メンテナーはふだん 1 日以内に返信
-
area:breg bug criticality:p3
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
registrystack/registry-stack#1851 ·
メンテナーはふだん 1 日以内に返信
registrystack/registry-stack の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
antithesishq/bombadil#361 ·
メンテナーはふだん 1 日以内に返信
-
test(executor_l0): assert execute() TaskOutcome, not only bus events / 断言 execute() 返回的 TaskOutcomeオープンtype:debt
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
skaiy/wild_agentos#425 ·
メンテナーはふだん 1 日以内に返信
-
Default-import note suggests `import * as process` for velt:process, which does not name the builtinオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug ticket
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
cratestack/cratestack#1154 ·
メンテナーはふだん 1 日以内に返信
-
status:needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信