v3.13.8
v3.13.8 — GraphQL exhaustion resilience + framework-validation fix
This patch release bundles three P0 framework stability fixes that protect the dispatch pipeline under GraphQL rate-limit exhaustion and unblock the entire CI pipeline.
Fixes
- t3025: Guard
jq startswith()against null inputs in pulse-merge gates (#21597) - t3027 (sibling): Idle backoff state machine + telemetry repair + budget-aware prefetch + canonical-recovery (#21596)
- t3027 (wrapper-routing): Route
dispatch_with_dedupissue metadata fetch through thegh_issue_viewwrapper so REST fallback fires under GraphQL exhaustion (#21606) - t3032: Repoint
MERGE_SCRIPTintest-pulse-merge-approve-collaborator-guard.shtopulse-merge-gates.shafter the recent split — restored Framework Validation gate (#21609)
Impact
Under GraphQL=0/5000 conditions, the per-candidate dispatch ceremony (claim acquisition, advisory comments, dedup checks) previously failed identically with "unable to load issue metadata" for 100+ candidates per cycle, burning REST/search budget for zero dispatches. After this release:
- Dispatch dedup checks transparently route to REST when GraphQL ≤ 1500 points remaining
- The pulse cycle skips dispatch entirely when GraphQL is below the floor (<5%) instead of attempting and failing
- All workers can resume dispatching as soon as REST budget recovers
Upgrade
aidevops updatePulse will auto-restart on update. Linux machines: same command.