Repository navigation
Wait out GitHub quota exhaustion in running Commands - #2007
Merged
Merged
Conversation
JacobStephens2
marked this pull request as ready for review
November 11, 2026 05:20
Preserve Pass admission alongside running Command quota recovery. Keep admission probes from waiting, reconcile quota and Security privacy fixtures with admission, and wait for the asynchronous Inbox refresh in its quota-resume test.
Keep the quota-reset regression synchronized with the observed GitHub state and preserve the Activity log Kind interface alongside named Process quota history. Validated with cargo check, focused Console and recording tests, cargo fmt --check, all 190 Console browser tests, and scripts/affected-tests origin/issue-1994 (site and full Rust suites).
This was referenced Nov 11, 2026
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
Ordinary waits stop on interruption; completion work retains its existing interruption policy. Child Ticket runs share the Command budget and one notification total. Preflight waits are visible and stoppable, and skipped Passes finish their provisional records.
Closes #1997
Seams under test: GitHub adapter and injected-clock wait planner; shared Command budget across child processes; Ticket Delivery/CI watch/Stop/notifications against fake
gh; Command recording and the readers behindstatus,showand the Console.Evidence
Execution evidence
890be3c3:PLAYWRIGHT_BROWSERS_PATH="$PWD/.affected-tests/playwright" scripts/affected-tests origin/issue-1994passed: all 68 site checks (81.14s) and the full Rustcargo testsuite across 102 binaries (4,214 passed, 0 failed, 99 existing ignored tests; 1,799.46s with a warm build cache, compilation included). No source or check changes were required.target/debug/deps/quota_wait-0ece3cefb6364f52 --exact delivery_write_waits_for_primary_quota_and_notifies_once, against the preserved Base binary: exit 101;gh pr ready 1 --repo acme/widgets failed: GraphQL: API rate limit exceeded (HTTP 403); expected exit 0, got 1.After: same command:
1 passed; 0 failed..thirdshift-review-ijm3DU/preflight_wait: exit 101,0 active runs, Stop failedno Command matches widgets#7.After: same command: exit 0,
1 active run,Quota wait until ..., Stop exit 0. Regression retained intests/quota_wait.rs..thirdshift-review-ijm3DU/quota_skip: exit 101; successful Pickup skip appeared asDied.After: same command: exit 0; Command appears in Done as
skipped. Regression retained intests/quota_wait.rs.cargo test --test quota_wait: 8 passed; 1 ignored subprocess entry point. Covers primary reads/writes, Stop and completion cleanup, cap, secondary limits, child accounting, preflight and skipped Passes.cargo check --bin thirdshift, formatting and manual regeneration checks passed.scripts/affected-tests main: passed, 4892.66s total. Go, Console/core Python, TypeScript typechecking and 62 tests, 68 site tests, Console browser tests, the full Rust suite, and release-generator checks all passed. The full Rustcargo testtook 4077.91s with compilation included and 3 test threads; nextest was unavailable. The Security privacy fixture was rebuilt before its full-suite invocation and also passed its exact targeted test.b0caa96200d0821bb21efcc8d647d11f68c6e2bf: Rust/lint checks, site and Console browser checks, plus both Linux release builds.Visual evidence
Manual, Delivery — 1440×900
Manual, Delivery — 390×844
How it works, Delivery — 1440×900
How it works, Delivery — 390×844
Review
Fixed point:
refs/remotes/origin/issue-1994(f55519a7105ebd45631dc92bdfca15b3b05a6fd3), three-dot diff. Independent Standards and Spec reviewers raised 1 and 2 findings respectively; all addressed. Reports and counts are retained in.thirdshift-review-ijm3DU/beside the Session evidence.Coverage: Spec read all 22 paths preceding the final compiler-required test-adapter match arm in
src/run.rsand the cap-boundary privacy fixture intests/security_run.rs; those final hunks were left unread by both reviewers (Spec had readsrc/run.rsas supporting context). The exact Security privacy test passed. Standards also leftsrc/command.rsunread after the later Spec fix; other paths were read during its initial review/refactor follow-up. The later preflight fix received the Spec follow-up. Neither axis excluded generated output.Unaddressed findings
Standards
None.
Spec
None.
Security
None.
Security review outcome
No unaddressed introduced findings.
Merge Danger
Door: two-way
Reversible code and documentation changes; existing Command records remain readable.
Blast Radius: factory
GitHub adapter calls can now wait within the shared cap. Stop remains interruptible; completion operations retain their existing policy. Agent sessions' own
ghcalls are unaffected.CI notes
test, run 43006727793: unrelated intermittent false positive in unchangedtests/experiments/process.rs:111; the raw JSON check for421matched CI’s generated Experiment directory hash942154523413c43b6c6ce84ec2d5b25318812d888504e51a7750c8f3a6d1c7ad.TMPDIR=<temporary directory containing 421> cargo test --test experiments process::process_session_evidence_check_all_private_fix_identifiers_and_abbreviated_commits -- --exact --nocapturereproduced the same assertion (exit 101) on bothissue-1994(63a64ad4) andissue-1997(890be3c3); the test, fixture and Experiments execution code are identical between those branches. The ordinary test and all affected checks passed locally.Built with codex codex-cli 0.167.1 · gpt-6.1-sol · xhigh