Repository navigation
[aw] PR Code Quality Reviewer + Test Quality Sentinel — 100% AR (CLI hang-on-exit) #44298
Description
PR Code Quality Reviewer and Test Quality Sentinel — 100% AR cluster (Jul 8)
Both review workflows are failing with 100% action_required in the current window. Based on the identical pattern in Impeccable Skills Reviewer (issue #44243), the root cause is the Copilot CLI hang-on-exit after completing a review.
Evidence
- PR Code Quality Reviewer: 1/1 AR (2026-07-08)
- Test Quality Sentinel: 2/2 AR (2026-07-08)
- Same timing and pattern as Impeccable Skills Reviewer failures ([aw-failures] [aw-fix] Impeccable Skills Reviewer times out at 15m after completing its review — Copilot CLI hangs on exit #44243)
- Fix PR fix: reduce post-completion idle watchdog and add cleanup timeouts to prevent Copilot CLI hang on exit #44254 (
fix: reduce post-completion idle watchdog and add cleanup timeouts) is open and directly addresses this class of bug
Impact
- All 4 PR-review agents (Impeccable, PR Code Quality Reviewer, Test Quality Sentinel, Matt Pocock) are producing 0 useful review signals for open PRs
- False-negative AR results obscure whether actual review work completed
Recommended Fix
- Merge PR fix: reduce post-completion idle watchdog and add cleanup timeouts to prevent Copilot CLI hang on exit #44254 — reduces idle watchdog timeout and adds cleanup timeouts to prevent hang
- After fix: reduce post-completion idle watchdog and add cleanup timeouts to prevent Copilot CLI hang on exit #44254 merges, validate that all 4 review workflows produce
successconclusions - If Matt Pocock Skills Reviewer still fails after fix: reduce post-completion idle watchdog and add cleanup timeouts to prevent Copilot CLI hang on exit #44254, evaluate prompt redesign or deprecation
Do not re-file
This issue covers both PR Code Quality Reviewer and Test Quality Sentinel. Track resolution via PR #44254.
Fresh evidence (2026-07-10) — still red after the previous sweep
The post-result idle-watchdog SIGTERM recurred on PR Triage Agent §29094180267: agent completed tool calls, then post-result watchdog terminating idle process after 20548ms (SIGTERM) → failureClass=partial_execution, hasOutput=true, all 3 retries exhausted. audit-diff vs the nearest successful run §29076495188 shows no firewall/domain regression (0 anomalies) and the failed run consumed only 9 core API calls vs 246 — the agent was killed mid-work, not blocked by environment drift. This confirms the watchdog class persists into 2026-07-10 and PR #44254 remains insufficient; keep this issue OPEN.
Generated by ⚡ Agent Performance Analyzer - Meta-Orchestrator · 99.4 AIC · ⌖ 13 AIC · ⊞ 10.6K · ◷
- expires on Jul 10, 2026, 5:24 AM UTC-08:00
🔴 Fresh evidence (2026-07-09, 6h failure sweep): merged fix #44254 did NOT resolve this — reopen the fix
Action: the post-result watchdog still SIGTERMs completed Copilot runs — raise/gate it on hasOutput, or treat partial_execution with output as success. PR #44254 merged 2026-07-08T14:05:28Z, but the identical hang-on-exit signature is still killing runs 15+ hours later.
Confirmed watchdog signature (run §29001405167, PR Triage Agent — all 4 attempts identical)
[copilot-harness] attempt N: post-result watchdog armed inactivityTimeout=20000ms
[copilot-harness] attempt N: post-result watchdog terminating idle process after ~20s (SIGTERM)
[copilot-harness] attempt N failed: exitCode=1 failureClass=partial_execution hasOutput=true
[copilot-harness] all 3 retries exhausted — giving up (exitCode=1) totalDuration=10m 36s
The agent completes its work (hasOutput=true, 184 allowed api.githubcopilot.com calls, non-empty stderr) and is then killed by the 20s post-result inactivity watchdog → exitCode=1. Every completed run is marked failed. stdout=0B on every attempt.
Still-red Copilot workflows in the last 6h (same Execute GitHub Copilot CLI step failure)
| Workflow | Run |
|---|---|
| PR Triage Agent | §29001405167 (watchdog confirmed) |
| PR Code Quality Reviewer | §28997020433 |
| Daily Sub-Agent Model Resolution Audit | §28999198666 |
Recommended follow-up fix (supersedes "track via #44254")
- When
hasOutput=trueandfailureClass=partial_execution, do not re-run — treat as success (the result was already produced). - Raise the
inactivityTimeoutwell above the 20000ms that PR fix: reduce post-completion idle watchdog and add cleanup timeouts to prevent Copilot CLI hang on exit #44254 left in place, or disarm the post-result watchdog once the final result JSON is captured. - Add a regression test asserting a Copilot run that emits output then idles exits
0, not SIGTERM→1.
Keep this issue OPEN. The premise "resolves once #44254 merges" is invalidated by fresh 2026-07-09 evidence.
Sweep: §29003066156
Generated by 🔍 [aw] Failure Investigator (6h) · 224.6 AIC · ⌖ 35.7 AIC · ⊞ 5.2K · ◷
Generated by 🔍 [aw] Failure Investigator (6h) · 205.7 AIC · ⌖ 17.7 AIC · ⊞ 5.2K · ◷
🔴 Fresh evidence (2026-07-12, 6h failure sweep): watchdog hang-on-exit now hitting scheduled daily cron workflows
Ship the already-specified fix now — gate the 20s post-result watchdog on hasOutput (or treat partial_execution + hasOutput=true as success). The bug has spread from PR-triggered reviewers to scheduled daily-report workflows. This is the dominant failure class in the last 6h: 4 of 6 hard-failing runs share the identical signature already documented above.
Confirmed watchdog signature — 4 runs, 2026-07-12
| Workflow | Run | Signature |
|---|---|---|
| PR Triage Agent | §29203936538 | watchdog SIGTERM after 20319ms, partial_execution, hasOutput=true, all 3 retries exhausted |
| Daily Formal Spec Verifier | §29198701813 | watchdog SIGTERM after 20859ms, partial_execution, hasOutput=true |
| Daily Security Observability Report | §29199584830 | watchdog SIGTERM after 20882ms, all 3 retries exhausted, totalDuration 13m 15s |
| Daily Issues Report Generator | §29196809707 | same failing Execute GitHub Copilot CLI step; identical cleanup-only log tail |
[copilot-harness] attempt N: post-result watchdog armed inactivityTimeout=20000ms
[copilot-harness] attempt N: post-result watchdog terminating idle process after ~20s (SIGTERM)
[copilot-harness] attempt N failed: exitCode=1 failureClass=partial_execution hasOutput=true isCAPIError400=false isAuthError=false isModelNotSupportedError=false isMCPPolicyError=false
[copilot-harness] all 3 retries exhausted — giving up (exitCode=1)
Each agent completes its tool calls (non-empty stderr, hasOutput=true, stdout=0B) and is then killed by the 20000ms post-result inactivity watchdog — not CAPI/auth/model/MCP errors. Consistent with this issue's prior audit-diff finding (no firewall/domain regression; agent killed mid-work, not blocked by environment drift). The 20000ms timeout PR #44254 left in place is still firing.
What changed since the 2026-07-10 update: the failure is no longer confined to PR-review/triage agents — it now also fails scheduled daily cron workflows (Formal Spec Verifier, Security Observability, Issues Report), widening blast radius to the daily automation surface.
Do not re-file — this remains the single tracker for the Copilot post-result watchdog hang-on-exit class. Smoke CI's separate EACCES chroot hosts failure this window is tracked in #44827.
References: §29203936538 · §29198701813 · §29199584830
Generated by 🔍 [aw] Failure Investigator (6h) · 228.9 AIC · ⌖ 34.3 AIC · ⊞ 5.2K · ◷
Fresh evidence (2026-07-13) — watchdog SIGTERM recurred on PR Triage Agent
The post-result idle-watchdog kill persists into 2026-07-13 — PR #44254 remains insufficient. Keep this issue OPEN.
- Run: §29275650494 (PR Triage Agent, 2026-07-13 18:54–18:56 UTC)
- Signature: agent completed a batch of
bash/gh apitool calls, then[copilot-harness] attempt 4: post-result watchdog terminating idle process after 20929ms (SIGTERM)→failureClass=partial_execution,hasOutput=true,retriesRemaining=0→all 3 retries exhausted — giving up (exitCode=1). - Class match: identical to the 2026-07-10 recurrence already documented here (§29094180267, 20548ms). The agent was killed mid-work after producing output, not blocked by environment drift.
- Secondary noise: post-teardown
[WARN] Rootless artifact permission repair failed for /tmp/gh-aw/sandbox/firewall/{logs,audit}— cosmetic, does not change the exit code.
Recommended next step: the fixed idle-watchdog threshold is still killing agents that legitimately pause between tool batches. Either raise the post-result idle threshold (currently ~20s) or reset the watchdog timer on each tool.execution_start/tool.execution_complete event so an actively-iterating agent is never treated as idle. Success criterion: PR Triage Agent produces success on a run with ≥1 post-completion tool batch.
Generated by [aw] Failure Investigator (6h) · analyzed run §29277430211
Generated by 🔍 [aw] Failure Investigator (6h) · 138.9 AIC · ⌖ 38.8 AIC · ⊞ 6.2K · ◷
Activity
github-actions commentedon Jul 9, 2026
🍪 Issue Monster selected this for Copilot
I've identified this issue as a good candidate for automated resolution and requested assignment to the Copilot coding agent.
If assignment succeeds, the Copilot coding agent will analyze the issue and create a pull request with the fix.
Om nom nom! 🍪
github-actions commentedon Jul 24, 2026
🎉 Automatically closed by Sub-Issue Closer
All sub-issues have been completed. This parent issue is now closed automatically.
Sub-issues status: 1/1 closed (100%)