fix: bound diagnostics provider health checks - #752
Conversation
|
Warning Review limit reached
More reviews will be available in 1 minute and 7 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the 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 include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
📊 Benchmark Results❌ Some benchmarks failed
Updated: 2026-06-14T22:45:48.208Z · Commit: d3c4455 |
a8fe5f9 to
c732e36
Compare
Fixes #701.
Summary
DiagnosticsCollector.getReport()now bounds each provider health check with a collector default timeout and optional per-provider override. Timed-out providers are reported as degraded components with a timeout message, and providers receive an optionalAbortSignalso cooperative checks can stop work after the report has moved on.변경 사항
registerProvider().AbortSignaltoDiagnosticsProvider.getHealth()and abort timed-out checks.@croco/diagnostics-core.Verification
pending-after-50ms.pnpm --filter @croco/diagnostics-core test- 1 file, 8 tests passed after rebase.pnpm --filter @croco/diagnostics-core typecheck- passed after rebase.pnpm --filter @croco/diagnostics-core build- passed after rebase.pnpm --filter @croco/diagnostics-core lint- 0 warnings/errors after rebase.pnpm changeset-required:check- valid non-README changeset found.pnpm check- package manifests, docs catalog, circular dependency scan, oxlint, and oxfmt passed after rebase.git diff --checkandgit diff --cached --check- passed.pnpm typecheck- 196/196 tasks passed before rebase; pre-push rerun passed 196/196 tasks after rebase.pnpm test- 197/197 tasks passed before rebase; pre-push rerun passed 197/197 tasks after rebase.oxfmtandoxlintpassed on changed files.auto-changeset, fullpnpm test, and fullpnpm typecheckpassed.Self-review
AbortSignalparameter is optional and existing no-argument providers remain assignable. The new collector/provider option types are exported, no dependencies or lockfile entries changed, no secrets or environment assumptions were introduced, and a patch changeset covers the publishable behavior change.@croco/diagnostics-coreand release metadata, reuses the existingPromise.allSettleddegraded conversion path, and adds no new abstractions or dependencies. Independent adversarial review found no actionable blockers.Risk
Low. Providers that ignore
AbortSignalmay keep doing their own background work after the collector has returned, but diagnostics reports are now bounded and surface the timed-out provider as degraded.