A health refresh interval of 0 turns background provider refreshes off, but the inconclusive-probe retry only checked refreshOnInterval, so a provider whose probe kept timing out was still probed four times in the first five minutes. The retry now decides under the refresh semaphore right before probing: it checks the effective interval (including a setting changed while it slept), and uses the failure count as a probe generation so a manual refresh that ran meanwhile makes the queued retry a no-op instead of a redundant probe. Also corrects the comment on the retry delay: 30s is shorter than the staged Claude probe and the ACP probe deadlines; overlap is prevented by the semaphore, not the delay. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Julius Marminge committed on 10/21/2026, 10:00:59 AMparent76db76f
Checks
- SuccessfulCodeRabbitGitHub
Review skipped: draft pull request
- Successful
Skipped - Not affected
- SuccessfulCheckGitHub
- SkippedRustGitHub
- Skipped
- SkippedRelease SmokeGitHub
- SuccessfulBuild and TypecheckGitHub
- SuccessfulTest WebGitHub
- SuccessfulTestGitHub
- SuccessfulLabel PR 22794GitHub
- Skipped
- SuccessfulLabel PR sizeGitHub
- SuccessfulTest Server 3GitHub
- SkippedDeploy web previewGitHub
- SkippedEAS PreviewGitHub
- SuccessfulTest Server 6GitHub
- SuccessfulTest Server 7GitHub
- SuccessfulTest Server 2GitHub
- SuccessfulTest Server 8GitHub
- SuccessfulTest Server 1GitHub
- SuccessfulChangesGitHub
- SuccessfulTest Server 4GitHub
- SuccessfulTest Server 5GitHub
- SuccessfulLintGitHub
- SuccessfulNative fingerprint diffGitHub
- SuccessfulPrepare PR size configGitHub
- SuccessfulCollect PR targetsGitHub
2 files changedLine totals unavailable