Skip to content

Back off unchanged GitHub waits and reuse PR observations - #2142

Merged
JacobStephens2 merged 6 commits into
mainfrom
issue-2138
Nov 12, 2026
Merged

JacobStephens2 merged 6 commits into
mainfrom
issue-2138

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

Summary

GitHub wait unchanged:
  first minute       → ask every 10s
  through minute four → ask every 30s
  thereafter         → ask every 60s
observed change      → restart at 10s
CI poll              → observe PR once; gate re-runs again before writing

Applies to CI, PR mergeability and existing Base fix waits. The existing test override scales the schedule. The manual describes the cadence.

Closes #2138

Evidence

Execution evidence

  • Before: cargo test --test ci polling::thirty_minutes -- --nocapture failed: 47 CI polls over 30 simulated minutes.
    After: the same command passed (1 passed; 0 failed), enforcing at most 40 polls and a reported green result.
  • Before: cargo test --test ci polling::a_pending -- --nocapture failed: PR observations between pending CI reads, left: 2, right: 1.
    After: the same command passed (1 passed; 0 failed).
  • Spec review regression: the reviewer's exact append/run/restore command failed: head move was observed, but the next CI poll waited 1524101us; expected the 250ms shortest step. After retaining the test and including the observed head in backoff, cargo test --test ci polling::an_observed_head_move_resets_the_pending_ci_pause -- --exact --nocapture passed (1 passed; 0 failed). Its final timing uses a 1s shortest step, 6s maximum and 4s assertion to leave several seconds for subprocess work, addressing Standards' deadline finding.
  • The final timing version of that exact focused Cargo command also passed (1 passed; 0 failed, 39.35s).
  • cargo fmt --check passed. CARGO_BUILD_JOBS=2 scripts/affected-tests main selected site checks and the full Rust suite: site checks passed in 107.10s; the duplicate local Rust run was stopped without reported failures after CI completed successfully on the exact same head, reusing that coverage per docs/testing.md.
  • Full CI passed on 9a28b50fbd2d3b8aea7ead73d2a74c1b84c9d3c8, including all four Rust partitions, their coverage gate, formatting/typechecking and site/Console checks.

Visual evidence

Manual waiting cadence, desktop 1440×900:

Before
After

Manual waiting cadence, mobile 390×844:

Before
After

Test seams

  • The Command binary against fake GitHub, with the existing shortened poll interval for long waits.
  • The poll module's schedule at explicit elapsed durations.

Review coverage

Reviewed against refs/remotes/origin/main, pinned at 943166dea1ef448c2a50e345bedc6b3ef6257bd4. Standards raised one finding and Spec raised one; both were addressed.

Both axes read all eleven changed source/test/documentation files. site/docs/index.html was intentionally excluded from source reading by both axes: docs/guide.md and site/generate-docs.mjs were reviewed, npm run docs:check --prefix site passed, and the rendered desktop/mobile captures were inspected. No other changed files were left unread.

Unaddressed findings

Standards

None.

Spec

None.

Security

None.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

Blast Radius: Commands

Unchanged GitHub waits can take up to sixty seconds to notice completion. Stop and interruption keep the existing 100ms sleep checks.

Built with codex codex-cli 0.167.1 · gpt-6.1-sol · xhigh

@JacobStephens2
JacobStephens2 merged commit b6c3e1d into main Nov 12, 2026
24 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-2138 branch November 12, 2026 20:23
@JacobStephens2 JacobStephens2 mentioned this pull request Nov 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A Command waiting on GitHub asks every 10 seconds and reads the PR twice per CI poll

1 participant