Skip to content

fix: Record no-changes bugs as SKIPPED_NO_CHANGES instead of null#9

Open
Senna46 wants to merge 6 commits intofeat/github-app-and-renamefrom
fix/no-changes-state-tracking
Open

fix: Record no-changes bugs as SKIPPED_NO_CHANGES instead of null#9
Senna46 wants to merge 6 commits intofeat/github-app-and-renamefrom
fix/no-changes-state-tracking

Conversation

@Senna46
Copy link
Owner

@Senna46 Senna46 commented Mar 20, 2026

Summary

  • When fixBugsOnPrBranch returns null (Claude made no code changes), bugs were recorded with fix_commit_sha=null
  • isBugProcessed() treats null as "successfully processed", so these bugs were never retried and silently blocked detection of new comments on the same PR
  • Changed to record "SKIPPED_NO_CHANGES" which is correctly treated as a terminal state

Test plan

  • Verified fix with d6e-ai/d6e-construction-frontend PR #13 — bug was re-detected and processed after the fix

🤖 Generated with Claude Code


Note

Medium Risk
Medium risk because it changes bug processing state semantics and alters repo scanning behavior by disabling the since filter when retryable records exist, which can affect what bugs are discovered and retried.

Overview
Fixooly now records bug runs that produce no code changes as SKIPPED_NO_CHANGES (instead of null) and logs them as skipped.

It posts a dedicated, de-duplicated “no changes needed” issue comment on the PR (using new GitHubClient.hasIssueCommentContaining with an HTML marker) to avoid spamming.

Repo scanning tweaks the since filtering logic to skip the time filter when a repo has retryable bugs (renaming hasFailedBugsForRepo to hasRetryableBugsForRepo and updating messaging) so missed/failed items can be reprocessed.

Written by Cursor Bugbot for commit 8b6b938. This will update automatically on new commits. Configure here.

Senna46 and others added 2 commits March 20, 2026 12:43
When Claude analyzes a bug but makes no code changes, the bug was
recorded with fix_commit_sha=null. Since isBugProcessed treats null
as "processed successfully", these bugs were never retried, silently
preventing detection of new comments on the same PR.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fixooly now posts a summary comment listing the analyzed bugs even when
Claude determines no changes are needed, so users can confirm the daemon
ran and see which bugs were skipped.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ocessed state

- Change from null to string doesn't alter behavior

Applied via Fixooly
@senna-fixooly
Copy link

senna-fixooly bot commented Mar 20, 2026

Fixooly committed fixes for 1 bug(s). (42b8c8555e)

  • ✅ Fixed: Change from null to string doesn't alter behavior
    • Updated isBugProcessed() to treat SKIPPED_NO_CHANGES as non-terminal (retryable), and renamed hasFailedBugsForRepo to hasRetryableBugsForRepo to also skip the time filter for repos with skipped bugs

…yable SKIPPED_NO_CHANGES bugs

- Retryable skipped bugs cause infinite comment spam

Applied via Fixooly
@senna-fixooly
Copy link

senna-fixooly bot commented Mar 20, 2026

Fixooly committed fixes for 1 bug(s). (37d3bc8231)

  • ✅ Fixed: Retryable skipped bugs cause infinite comment spam
    • Added hasIssueCommentContaining() to GitHubClient and a distinct AUTOFIX_NO_CHANGES_MARKER; postNoChangesComment now checks for an existing marker comment before posting, preventing duplicate comments on each poll cycle

…prevent infinite retries

- SKIPPED_NO_CHANGES bugs retried infinitely despite being "terminal"

Applied via Fixooly
@senna-fixooly
Copy link

senna-fixooly bot commented Mar 20, 2026

Fixooly committed fixes for 1 bug(s). (a8f0741b56)

  • ✅ Fixed: SKIPPED_NO_CHANGES bugs retried infinitely despite being "terminal"
    • Removed SKIPPED_NO_CHANGES from the retry exclusion in isBugProcessed() so it returns true (processed/terminal), while keeping it in hasRetryableBugsForRepo() for the since filter bypass

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

… prevent permanent since-filter bypass

- `hasRetryableBugsForRepo` incorrectly includes terminal `SKIPPED_NO_CHANGES` state

Applied via Fixooly
@senna-fixooly
Copy link

senna-fixooly bot commented Mar 20, 2026

Fixooly committed fixes for 1 bug(s). (8b6b938bd0)

  • ✅ Fixed: hasRetryableBugsForRepo incorrectly includes terminal SKIPPED_NO_CHANGES state
    • Changed SQL query in hasRetryableBugsForRepo from IN ('FAILED', 'SKIPPED_NO_CHANGES') to = 'FAILED' so that repos with only skipped (terminal) bugs no longer bypass the time filter in computeSinceForRepo

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