Skip to content

Skip every Pass during a Quota wait or below the quota reserve #1996

Closed

Description

@JacobStephens2

Parent

#1994

What to build

Every Pass checks the quota before any GitHub work and is skipped during a Quota wait or below the reserve, and the operator can see why. This covers Pickup, Architect, Security, Triage, Review with --author, Fix with no pull request, and a Custom process started with no issue, whether cron or a person starts it.

  • Admission, beside the existing Command-limit admission and before the Sweep or any other GitHub read: consult the Quota wait record, then gh api rate_limit. Skip when either resource (REST core, GraphQL) is in a Quota wait or below 500, recording the low resource as a Quota wait. A skipped Pass takes no Command-limit slot.
  • If the quota check fails for a reason other than exhaustion, the Pass goes ahead as it does today.
  • A skip exits 0, prints nothing on stdout and sends no Run notification. The Activity log gets skipped: GitHub Quota wait until <time> (<resource>: <n> left) only when the reason changes from the last one recorded for that kind.
  • status and the Console Inbox show GitHub Quota wait until <time> beside the Pickup last fired lines while the machine's record holds one.
  • docs/guide.md: describe the skip with the other Pass skips, and add scheduling guidance that every host authenticated as the same GitHub user shares one quota, so Pass frequency should be budgeted per user across hosts, not per host or repository. Regenerate the user manual. Check the hand-written site pages for the Pass skip lists and update them in the same pull request.

Acceptance criteria

  • Each kind of Pass listed above is skipped, exit 0, with no GitHub call beyond the quota check, while either resource is in a Quota wait.
  • Each is skipped while either resource is below 500, and that records a Quota wait.
  • A Pass proceeds normally when gh api rate_limit fails for a non-quota reason.
  • A long Quota wait leaves one Activity log line per kind, not one per Pass.
  • A skipped Pass sends no email, even with Run notifications on.
  • status and the Console Inbox show the machine's Quota wait; neither shows one after the reset.
  • Tests run the binary against the fake gh, using rate_limits/next_rate_limits and rate-limited failures.
  • docs/guide.md and the generated manual describe the skip and the per-user budget; npm run docs:check --prefix site passes.
  • scripts/affected-tests main passes.

Activity

  1. JacobStephens2 commented on Nov 11, 2026

    @JacobStephens2
    OwnerAuthor

    Closed by #2006, merged into issue-1994 by a thirdshift Ticket run with Self-merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions