[#768] fix-parallel-review-errors#770
Merged
Merged
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughParallelRunner が並列サブステップの終端ステータス(error/blocked/rate_limited)を親ステップ結果に集約する実装を追加し、秘匿情報をマスキングして診断精度を向上させた。新規テストスイートで各ケースを検証し、既存テストの期待値を更新した。 Changes並列ステップ終端ステータスの明示的集約と秘匿情報マスキング
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
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
背景
PR #767 は Issue #758 の Codex SDK
Reconnecting...系エラー retry を修正するものだが、調査中に別の workflow aggregation 問題が見つかった。対象ログ例:
該当 run では
peer-reviewのreviewers並列ステップで、7 reviewer 中 6 reviewer は最終的に approve していた。一方で
ai-antipattern-review-2ndだけが Phase 1 で provider error になっていた。その後、親の
reviewersステップは aggregate rule にマッチできず、次のエラーでpeer-review全体が ABORT した。問題
builtins/*/workflows/peer-review.yamlのreviewersは現在、以下の2ルールだけで親ステップを判定している。そのため、並列 sub-step の一部が
error/blocked/ その他の非判定状態で終わると、all("approved")もany("needs_fix")も false になり、実際の原因が provider/sub-step error であるにもかかわらず、最終診断がStatus not found for step "reviewers"になってしまう。これはユーザーにとって原因が分かりにくく、retry すべき外部要因なのか、review finding なのか、workflow 定義不備なのかを切り分けにくい。
関連 Issue との差分
Reconnecting...を retryable transient failure として扱う問題。直接原因の provider error を減らす対応であり、この Issue の aggregation 診断問題とは別。errorになり、親 aggregate rule が非判定状態を扱えない問題。期待する挙動
error/blocked/rate_limitedなどで終了した場合、親 parallel step がStatus not foundではなく、原因を明示した結果を返す。all("approved")/any("needs_fix")のどちらにも該当しない状態を、workflow 定義の曖昧な未マッチとして扱わない。実装方針案
候補は複数あり得る。
ParallelRunnerが sub-step error を検出した時点で、親 step response をerror/rate_limited/blockedとして短絡する。any("error")のような条件を足すのではなく、エンジン側で non-rule terminal state を first-class に扱う。現状の
AggregateEvaluatorは sub-step のmatchedRuleIndexと rule condition だけを見るため、matchedRuleIndexがないerrorは aggregate 条件から事実上無視される。この構造を見直す必要がある。受け入れ条件
errorになった場合に、親 step がStatus not found for step "reviewers"で abort しない。all("approved")/any("needs_fix")の正常系・fix loop 系の既存挙動は維持される。ParallelRunnerまたは aggregate evaluation の unit/integration test に、1 sub-step error + 他 sub-step approved のケースを追加する。Execution Report
Workflow
takt-defaultcompleted successfully.Closes #768
Summary by CodeRabbit
リリースノート
バグ修正
テスト
リファクタ