Repository navigation
Suppress startup-failure reports for cancelled agent jobs - #72405
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
β Design Decision Gate ποΈ completed the design decision gate check. See the comment below for the result and any generated ADR draft. Design Decision Gate ποΈOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
β PR Code Quality Reviewer completed the code quality review.
|
|
β Test Quality Sentinel completed test quality analysis. Test Quality SentinelOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
π§ Matt Pocock Skills Reviewer has completed the skills-based review. β
|
|
β Ponytail Reviewer completed successfully! Ponytail ReviewerOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
There was a problem hiding this comment.
π‘ Changes recommended
The exemption also suppresses genuine setup failures caused by job-level timeouts.
1 open issue
What changed in this PR
This PR extends gh-awβs conclusion-stage failure handling to suppress collector-reported startup failures when agent jobs are cancelled before execution, addressing #72367.
Changes:
- Applies the cancellation exemption to
agent_startup_failure, including mixed-output diagnostics. - Expands regression cases for cancellation suppression and preserved failure reporting.
| File | Description |
|---|---|
| actions/βsetup/βjs/βhandle_agent_failure.test.cjs | Extends cancellation and failure-classification test cases. |
| actions/βsetup/βjs/βhandle_agent_failure.cjs | Adds startup failures to the collector-backed cancellation exemption. |
Review effort: Max
Comment MemoryPeek at saved memory (pr-code-quality-reviewer)Note This comment is managed by comment memory.Expand the saved memory block to view or edit the persistent context for this thread.
|
There was a problem hiding this comment.
Review
One medium-severity classification regression needs attention; the inline comment explains how cancelled startup failures combined with model configuration errors can lose their startup diagnostic. The remaining changes and tests are otherwise covered by the existing behavior.
π Code quality review by PR Code Quality Reviewer Β· copilot Β· gpt50 Β· ~2 AIC Β· β ~1 AIC Β· β 1.6K
Comment /review to run again
There was a problem hiding this comment.
Skills-Based Review π§
Applied /diagnosing-bugs β this is a clean, well-targeted fix.
π Analysis
Root cause match: The fix exactly matches the root cause in the linked issue (#72367): the cancellation exemption only covered collectorEmptyOutputCause === "missing_terminal_safe_output", missing the agent_startup_failure case when cancellation happens before the engine starts (e.g. during custom steps:). Extending the check to an array (["missing_terminal_safe_output", "agent_startup_failure"]) and renaming isCancelledMissingTerminalOutput β isCancelledEmptyOutput is a minimal, surgical change.
Consistency check: I traced all 5 usages of the renamed flag (lines 4238, 4282, 4503, 4505, 4510) plus downstream consumers (failureCategories via emptyOutputCause, buildFailureDiagnosticsContext's isGenericFailure check, and getFailedAgentDiagnostics({ startupFailure })). All remain correctly derived and unaffected by the rename β no stale references to the old name remain.
Regression coverage: The it.each parameterization is a textbook example of /tdd edge-case coverage β it symmetrically extends the cancellation-exemption tests, the agent-authored (non-corroborated) test, the mixed-output diagnostics-suppression test, and (importantly) the negative case: non-cancelled startup failures (success, failure, timed_out conclusions with agent_startup_failure reason) still correctly produce failure issues. This guards against over-broadly suppressing legitimate startup-failure reports.
No gaps found: No doc updates needed (the cancellation-exemption mechanism is an internal implementation detail, not part of the public failure-category reference table). No other files needed the same fix (empty_output_outcome.cjs only defines cause labels, not the cancellation exemption logic).
No actionable issues found β approving.
π§ Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer Β· copilot Β· sonnet50 Β· ~69 AIC Β· β ~16 AIC Β· β 10.2K
Comment /matt to run again
|
π This pull request is included in a new release. Release: |

When concurrency cancellation occurs before the engine starts, the collector reports
agent_startup_failure, causing a failure issue for a superseded run.missing_terminal_safe_outputexemption to collector-reportedagent_startup_failure, excluding synthetic diagnostics from mixed-output reports.engine.concurrency.cancel-in-progressbefore the engine starts are reported asagent_startup_failureΒ #72367