Repository navigation
fix(poll): add adaptive PR backfill splitting, enrichment cache, and 3-tier error surfacing - #173
Merged
wgordon17 merged 24 commits intoOct 30, 2026
Conversation
wgordon17
force-pushed
the
fix/poll-backfill-resilience
branch
from
October 29, 2026 13:45
4670c64 to
da53403
Compare
…ial/stale backfill
…tracked config on targeted refresh
…eckStatus fallback
Compose the caller's signal with the per-attempt timeout via manual listener wiring on browsers without AbortSignal.any (Safari < 17.4, Chrome < 116, Firefox < 124) instead of throwing a TypeError on every signalled request.
Add archived:false to the repo-scoped PR, issue, and summary searches so MCP lists and counts match the dashboard once a selected repository is archived.
…che, and UI
- Bound backfill split amplification with a per-call suppression breaker
(splits still cover CORS-masked "Failed to fetch" gateway timeouts),
salvage partial hot-poll nodes, and hot-poll in 25-node batches
- Derive the settled-PR enrichment cache TTL from the refresh interval
(interval + 60s, min 3m) and fold fetchIssuesAndPullRequests' optional
parameters into an options object
- Exclude archived repositories from repo-scoped searches
- Hide Approve while CI check status is unverified (checkStatusStale),
suppress the Checking status flash while enrichment is pending, keep the
degraded-enrichment warning only while PRs are degraded, and make the
Partial sync tooltip keyboard-focusable
- Validate the persisted dashboard-body cache with Zod, extract shared
revision/degraded-enrichment helpers, drop the dead commits{} rollup
fallback, and update USER_GUIDE.md and tests
wgordon17
force-pushed
the
fix/poll-backfill-resilience
branch
from
October 30, 2026 00:10
b631554 to
12a1335
Compare
Fork PRs whose CI runs only in the fork report a null PR-level
statusCheckRollup, so the hot poll overwrote their pending or stale
status with null ("no CI"), re-showing Approve and counting them as
Mergeable until the next full refresh. HOT_PR_STATUS_QUERY now also
reads isCrossRepository and the head ref commit's rollup, and uses it
when the PR-level rollup is null on a cross-repository PR.
Set minimumReleaseAge to 7 days so lockfile maintenance cannot pin versions newer than local supply-chain cooldowns allow, and regenerate the lockfile under that policy (12 packages step back one patch/minor; security floors for qs, hono, and ip-address still hold).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Failed to fetchgateway timeouts, with split suppression during broad outages), queryPullRequest.statusCheckRollupdirectly with partial-node recovery, carrycheckStatusforward only when the PR's revision is unchanged, hot-poll in 25-node batches (reading fork head-commit CI for fork-only-CI PRs), and cache settled-PR enrichment for the refresh interval plus one minute.AbortSignal.anyfallback), aborted-signal checks for queued requests, and a 15s inline rate-limit retry cap, plus post-wake/offline poll guards and 3-tier error surfacing (silentToastdrawer warnings, 3-failure hysteresis, 15m toast cooldown, and aPartial syncindicator that clears once no PR is degraded), and require a 7-dayminimumReleaseAgefor pnpm resolution.checkStatusStale) as unknown in the UI by hiding Approve, excluding the PR from Mergeable, and showing aChecking statusbadge; exclude archived repositories from dashboard and MCP searches; and persist parsed Renovate Dependency Dashboard bodies tolocalStoragewith Zod validation and cross-identity cleanup.