Refresh visible reviews automatically and stop settled merged polling (#25788)

Refresh only actual on-screen review cards and the selected visible review panel, with a single metadata owner per execution host. Open reviews refresh every 60 seconds when selected and 120 seconds otherwise. Settled merged reviews stop automatic refresh; pending merged checks continue, hidden rows stop, and work changes or stale re-exposure discover fresh state.

Remove the polling setting. Preserve provider/SSH/runtime ownership, mixed-version cache behavior, failure backoff, bounded foreground admission, request coalescing, and mutation invalidation. Cover older persisted caches and unknown HEADs.

Validated with 1,628 focused tests, typechecking, lint/code-quality gates, hidden Electron viewport checks, and parallel Codex/Claude Opus 5.5 adversarial reviews. Measurements and policy details are in PR #25788.

Fixes #25746

Co-authored-by: ggbdpq <ggbdpq@gmail.com>
This commit is contained in:
Neil
2026-10-06 00:53:49 -07:00
committed by GitHub
co-authored by ggbdpq
parent 9905765e3b
commit a2f197fde7
100 changed files with 5190 additions and 1795 deletions
@@ -68,6 +68,8 @@ export type GitHubPRRefreshCandidate = GitHubPRRefreshAlias & {
connectionId?: string | null
executionHostId?: string | null
connectionState?: 'connected' | 'disconnected' | 'unknown'
isSelected?: boolean
cachedHeadOid?: string | null
cachedFetchedAt?: number | null
cachedHasPR?: boolean | null
cachedPRState?: PRState | null