# Pull Request quota proof

Target: [#20093](https://github.com/pingdotgg/t3code/pull/20093). Service validation: [88087307f6](https://github.com/pingdotgg/t3code/commit/88087307f6fdc8702fc12cc2fc6c116856f9e9f5). The live query was measured at [ce7cfc75e5](https://github.com/pingdotgg/t3code/commit/ce7cfc75e5b839c2e070a340978a9b6ef2129ed8); the generated query documents and aliased batch bound are unchanged; adapter error recovery narrowed and main was integrated with a one-line web fixture correction in the validated head.

## Live github.com measurement, 2026-10-19

| Current generated operation | Repositories | GraphQL cost |
| --- | ---: | ---: |
| PullRequestSearchCoverage through GraphQLResolver.aliased | 25 | 1 point, actual request |
| PullRequestList, first=100, stats=false, stacks=false | 1 | 4 points, GitHub dry-run estimate |

GitHub accepted search(first:0){issueCount} in all 25 aliases. One deliberately missing public repository produced NOT_FOUND at _24_repository while the operation still returned its rate-limit result. The generated resolver completed its per-repository recovery before the comparison query. No private repositories, credentials, or user state appear in this evidence.

The first comparison attempt inserted the measurement field into a trailing fragment and GitHub rejected it. The corrected request inserted it in the operation root; the coverage measurement was not repeated. This was proof tooling, with no source change.

## Observable before/after regression proof

| Behavior | Fix disabled or before follow-up | Verified head |
| --- | --- | --- |
| Interrupted listing reader reattaches | 2 paid host reads | 1 paid host read |
| Coverage adapter batches four repositories | 4 requests with batching disabled | 1 request, including isolated refused alias |
| Turn inside the thirty-second global window | A third host read occurs immediately on base | Stays at 2; trailing refresh produces read 4 at t=30 after an explicit refresh at t=10 |
| User push ten seconds after a turn | 2 reads; new PR remains hidden | Immediate third read returns PR 42 through the real push helper |
| Recovery after whole probe failure | No third probe after transient failure; both silent repos still fall back | Next invalidated read probes again; covered repo skips fallback and missing answer remains cached false |
| HTTP200 whole-query timeout | Adapter returned negative answers for all aliases | Typed read failure reaches the service; a later listing can retry |
| Coverage lifetime | Extended TTL mutation misses re-probe | Cached at t=599; re-probed at t=601, including safe failure fallback |

The test stage kept the original five distinct PR regressions and added one case for the review-discovered user-push regression and one whole-query timeout case. Existing service/API files: 361 → 365 (two added on main) cases. Final focused selection: 532/532 cases across nine existing files. Server/core/GitHub scoped typechecks, targeted lint/formatting, generated-query consistency, and scoped unused-export checks passed in the relevant rounds. Two full independent review rounds ended with no blockers after fixing delayed push refresh. The fourth full review round returned no findings from either Opus or Sol after completing whole-query error recovery.

Wire/API proof and integrated service tests were exercised; a full running-client agent workload was not measured. No visual layout changed. macOS, Windows, Electron, iOS, Android, and a live GHES account were not exercised. Macroscope's human approval gate remains. Listing reads intentionally finish in the service scope after their last reader leaves, avoiding duplicate paid work on reattachment.

Tests: Codex gpt-6-astra. Implementation: Codex gpt-6.1-sol. Reviews: Claude Opus 5.5 and Codex gpt-6-sol. Harness: T3 Code.
