Skip to content

feat: pulse CI self-healing — re-run stale checks after workflow fixes merge#2981

Merged
marcusquinn merged 1 commit intomainfrom
feature/pulse-ci-self-healing
Mar 6, 2026
Merged

feat: pulse CI self-healing — re-run stale checks after workflow fixes merge#2981
marcusquinn merged 1 commit intomainfrom
feature/pulse-ci-self-healing

Conversation

@marcusquinn
Copy link
Owner

Summary

Completes the detect-fix-heal cycle for systemic CI failures by adding self-healing to the pulse's CI pattern detection section.

Problem

PR #2976 added detection (identify systemic CI patterns) and PR #2974 fixed the specific bugs. But existing PRs retained stale failed/cancelled check results because the new workflow code only runs on new events. Without manual intervention (gh run rerun), those PRs stay UNSTABLE indefinitely — the pulse could detect the pattern was fixed but couldn't heal the affected PRs.

Fix

After detecting a systemic CI failure pattern AND confirming the fix has merged (closed issue with merged PR, or the check passes on recently-created PRs), the pulse now re-runs the stale failed workflow runs on affected PRs using gh run rerun <run_id>.

Guard rails:

  • Only re-run when fix is confirmed on main
  • Only the specific failed run, not all checks
  • If a re-run still fails, file a new issue instead of retrying
  • Max 10 re-runs per pulse cycle (API rate limit protection)
  • Each re-run is logged

The complete cycle

Level What PR
Prevent Fix workflow bugs so new PRs aren't affected #2974
Detect Pulse correlates CI failures across PRs to find systemic patterns #2976
Heal Pulse re-runs stale checks on existing PRs after fix merges This PR

Testing

This is agent guidance (markdown), not executable code. Validated by reviewing the logic against the GH#2973 scenario — the pulse would have detected the pattern, filed an issue, a worker would fix the workflow, and on the next cycle the pulse would re-run the 9 stale checks automatically.

…ow fixes merge

The previous CI pattern detection (GH#2975) could detect systemic failures
and file issues, but existing PRs retained stale failed/cancelled checks
even after the workflow bug was fixed on main. New workflow code only runs
on new events, so pre-fix PRs stay UNSTABLE indefinitely.

Added self-healing logic: after detecting a systemic pattern AND confirming
the fix has merged (closed issue with merged PR, or the check passes on
recent PRs), the pulse re-runs the stale failed workflow runs on affected
PRs. This completes the detect-fix-heal cycle.

Guard rails: only re-run when fix is confirmed on main, only the specific
failed run (not all checks), max 10 re-runs per cycle, don't re-run if
the re-run itself fails.
@gemini-code-assist
Copy link

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@github-actions github-actions bot added the enhancement Auto-created from TODO.md tag label Mar 6, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 6, 2026

Warning

Rate limit exceeded

@marcusquinn has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 14 minutes and 27 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d9150088-7e64-4082-b856-d33c1d31f488

📥 Commits

Reviewing files that changed from the base of the PR and between b09208b and e958e27.

📒 Files selected for processing (1)
  • .agents/scripts/commands/pulse.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/pulse-ci-self-healing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Mar 6, 2026

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 108 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Fri Mar 6 05:02:38 UTC 2026: Code review monitoring started
Fri Mar 6 05:02:38 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 108

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 108
  • VULNERABILITIES: 0

Generated on: Fri Mar 6 05:02:41 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 6, 2026

@marcusquinn marcusquinn merged commit 4b4adeb into main Mar 6, 2026
18 of 19 checks passed
@marcusquinn marcusquinn deleted the feature/pulse-ci-self-healing branch March 6, 2026 05:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Auto-created from TODO.md tag

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant