Skip to content

Treat cancelled check conclusions as non-failures - #341

Merged
jwbron merged 2 commits into
mainfrom
egg/fix-cancelled-check-conclusion
Feb 8, 2026
Merged

Treat cancelled check conclusions as non-failures#341
jwbron merged 2 commits into
mainfrom
egg/fix-cancelled-check-conclusion

Conversation

@james-in-a-box

@james-in-a-box james-in-a-box Bot commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

Fix SDLC pipeline and reusable-review failing when check runs are cancelled

When autofix workflows (e.g., Address Review Feedback) push new commits,
the previous workflow run on the old SHA gets cancelled by GitHub. The
wait-for-checks step counted these cancelled runs as failures, preventing
the finalize-pr job from marking the PR as ready for review.

This was observed on PR #336, where the "Address Review Feedback" check
was cancelled on the original SHA after it pushed a new commit, causing
the wait-for-checks job to treat it as a failure.

The fix adds cancelled to the list of allowed check conclusions
(alongside success, skipped, and neutral) in the jq filter
locations within the wait-for-checks polling logic in both:

  • sdlc-pipeline.yml (2 locations)
  • reusable-review.yml (2 locations)

Issue: none

Test plan:

  • Trigger an SDLC pipeline run that generates review feedback
  • Verify that when Address Review Feedback cancels its old run, the
    wait-for-checks step does not count it as a failure
  • Confirm the PR is properly marked as ready for review

Authored-by: egg

The wait-for-checks step counted cancelled check runs as failures,
which prevented PR finalization. This happens when autofix workflows
push new commits, cancelling the previous run on the old SHA.

Add 'cancelled' alongside 'skipped' and 'neutral' in the allowed
conclusions list so cancelled checks don't block the pipeline.

@james-in-a-box james-in-a-box Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No agent-mode design concerns.

This is a CI workflow fix that correctly excludes cancelled checks from the failure count — not related to agent design patterns.

(Unable to approve due to GitHub's self-approval restriction — this PR was authored by the same GitHub App identity.)

— Authored by egg

@james-in-a-box

james-in-a-box Bot commented Feb 8, 2026

Copy link
Copy Markdown
Contributor Author

egg agent-mode-design completed. View run logs

@james-in-a-box

This comment has been minimized.

@james-in-a-box

james-in-a-box Bot commented Feb 8, 2026

Copy link
Copy Markdown
Contributor Author

I checked all feedback channels for this PR:

  • Formal reviews: Only automated agent-mode-design review with no concerns
  • Line-level comments: None
  • Issue comments: Only automated bot messages

No actionable review feedback was found to address. The PR is ready for human review.

— Authored by egg

@james-in-a-box james-in-a-box Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

The fix is correct and necessary. When autofix workflows push new commits, GitHub cancels the previous run on the old SHA, and treating cancelled as a failure incorrectly blocks the pipeline.

Issues Found

1. PR Description Inaccuracy (Minor)

The description states "all three jq filter locations" but the diff only modifies two locations (lines 591 and 621). This is a documentation-only issue—the code changes are correct.

2. Inconsistent Fix Across Workflows (Advisory)

The same pattern exists in reusable-review.yml (lines 139 and 146) without the cancelled fix:

# reusable-review.yml:139
failed=$(echo "$checks" | jq '[.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped" and .conclusion != "neutral")] | length')

This means the reusable review workflow may still treat cancelled checks as failures. Depending on whether that workflow faces the same cancellation scenario, this could need a follow-up PR.

Verification

Confirmed via GitHub Docs that cancelled is a valid check run conclusion value, alongside success, failure, neutral, skipped, timed_out, and action_required.

Verdict

Approve. The fix correctly addresses the described issue. The inconsistency with reusable-review.yml is noted but doesn't block this PR.

— Authored by egg

@james-in-a-box

james-in-a-box Bot commented Feb 8, 2026

Copy link
Copy Markdown
Contributor Author

egg review completed. View run logs

@james-in-a-box

This comment has been minimized.

Address review feedback noting that reusable-review.yml has the same
pattern for counting failed checks but was not updated to exclude
cancelled conclusions. This ensures consistency across all workflows.

Authored-by: egg
@james-in-a-box

This comment has been minimized.

@james-in-a-box james-in-a-box Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No agent-mode design concerns.

Re-review summary: Checked changes since commit a68d79ffbe06b865206687abfe9a268b630fc1ee.

  1. Previous feedback addressed: The cancelled check conclusion fix has been applied to reusable-review.yml (lines 139 and 146), addressing the inconsistency I noted in my prior review.

  2. Additional changes: The workflow_owner feature has been removed entirely (from contract schema, models, workflows, and tests). This is unrelated to agent-mode design — it's a workflow simplification that removes the auto-reviewer-assignment feature.

Neither change raises agent-mode design concerns. The PR remains focused on CI/CD workflow logic without impacting how agents operate or constraining their flexibility.

(Unable to approve due to GitHub's self-approval restriction — this PR was authored by the same GitHub App identity.)

— Authored by egg

@james-in-a-box james-in-a-box Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-Review Summary

The new commit (ba52783) addresses the advisory feedback from the previous review.

Previous Feedback Status

Issue Status
PR description said "three" locations but only modified two Fixed — Description now correctly states "2 locations" in each file
reusable-review.yml had same pattern without the fix Fixed — Both jq filters now include cancelled exclusion

New Changes Review

The changes to reusable-review.yml are correct and mirror the pattern in sdlc-pipeline.yml:

  • Line 139: Failed check count filter now excludes cancelled
  • Line 146: Failed check display filter now excludes cancelled

Both filters remain consistent with each other (they use the same selection criteria), which is important for accurate logging.

Verification

All four jq filter locations across both workflows now correctly exclude cancelled:

  • sdlc-pipeline.yml:591
  • sdlc-pipeline.yml:621
  • reusable-review.yml:139
  • reusable-review.yml:146

Verdict

Approve. The feedback has been properly addressed and the fix is now complete and consistent across all workflows.

— Authored by egg

@james-in-a-box

james-in-a-box Bot commented Feb 8, 2026

Copy link
Copy Markdown
Contributor Author

egg agent-mode-design completed. View run logs

@james-in-a-box

james-in-a-box Bot commented Feb 8, 2026

Copy link
Copy Markdown
Contributor Author
egg is addressing review feedback...

@james-in-a-box

james-in-a-box Bot commented Feb 8, 2026

Copy link
Copy Markdown
Contributor Author

egg review completed. View run logs

@jwbron
jwbron merged commit f17f406 into main Feb 8, 2026
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant