Skip to content

Continue Fix Pass after skipped Base branch CI maintenance - #1999

Merged
JacobStephens2 merged 6 commits into
mainfrom
issue-1958
Nov 11, 2026
Merged

JacobStephens2 merged 6 commits into
mainfrom
issue-1958

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

Closes #1958.

Unscoped Fix Pass
  Base branch CI maintenance
    reservation held / pending / re-run requested / repair exists
      log maintenance-step skip → select, reserve and repair an eligible PR
    persistent red CI
      run the existing Base branch repair → end the Pass

The cause was a shared Ending::Skipped: the maintenance function returned it to the Pass, which exited before querying PR candidates. Maintenance now returns its own outcome, and only a completed repair ends the Pass. Skip diagnostics use the repository Activity log before any Run starts, including when no eligible PR exists. Author-scoped Passes, Command-limit admission, Delivery checks, operational errors and reservation ownership retain their existing behavior.

Evidence

Execution evidence

  • Before: cargo test --test fix_base_ci held_ci_reservation_still_repairs_a_conflicting_pr -- --exact --nocapture
    failed against unpatched production code: Base branch CI is reserved on origin; Repair session count left: 0, right: 1; 0 passed; 1 failed.
    After: the same command passed: 1 passed; 0 failed. The regression creates a real Merge conflict, asserts the PR reservation and in-progress label inside its Repair, verifies ready-for-review publication and confirms the other owner's exact CI reservation SHA remains unchanged.
  • CLI/fake-gh coverage also exercises pending external checks, an in-progress push attempt, a newly requested re-run (exactly once), existing repair branches, repair PRs in open/draft/busy/closed/merged states, no eligible PR, author-scoped selection, persistent-red repair priority and CI-read errors.
  • npm run docs:check --prefix site: passed. The manual was regenerated with npm run docs --prefix site.
  • CI on the final head d3356ce3: cargo nextest run passed — 4190 tests run: 4190 passed (3 slow), 97 skipped in 1487.821 seconds, after 1m35s compilation. Formatting, Clippy with -D warnings, site and Console checks, and both Linux release builds also passed.
  • cargo test --test fix_base_ci --test fix_pass --test review_1784_spec -- --test-threads=3: 30 passed, 3 ignored. This includes the older Spec: Fix run #1784 regression, updated to assert PR CI repair proceeds while Base CI is pending and a failed Repair still fails normally.
  • Final local affected selection: /usr/bin/time -p env PATH="$(cat /tmp/issue1958-nextest-bin):$PATH" PLAYWRIGHT_BROWSERS_PATH="$(cat /tmp/issue1958-browser-cache)" CARGO_BUILD_JOBS=3 NEXTEST_TEST_THREADS=3 RUST_TEST_THREADS=3 scripts/affected-tests refs/remotes/origin/main. All 68 site checks passed. Following docs/testing.md's instruction to reuse successful CI for the exact head, the duplicate local Rust run was stopped by its task ID after CI passed; 1,238 local Rust cases had passed before cancellation. Wall time: 1658.44 seconds, including a warm build check of 0.35 seconds. Its three SIGINT results came from that intentional cancellation.
  • Local main is stale (27f54795): scripts/affected-tests main selected unrelated Go prototype work and stopped because Go is absent. Final selection used the actual PR base refs/remotes/origin/main (960513a9).

Test seams: the public thirdshift fix CLI through Scenario, with real Git fixture repositories and fake gh; stderr, the repository Activity log, PR readiness and origin reservation refs provide observable results.

Visual evidence

Matched Before/After captures cover the updated homepage, How it works, Architecture and generated manual at 1440×900 and 390×844. Captures use the same reading location and expanded state. Browser checks use the installed Chromium revision 1247 through an isolated browser cache; the package's revision 1248 installer did not complete within its bounded attempt.

Homepage: desktop and mobile

1440×900:

Before

After

390×844:

Before

After

How it works: desktop and mobile

1440×900:

Before

After

390×844:

Before

After

Architecture: desktop and mobile

1440×900:

Before

After

390×844:

Before

After

User manual: desktop and mobile

1440×900:

Before

After

390×844:

Before

After

Review

Independent thirdshift-code-review axes compared against refs/remotes/origin/main (960513a9), including one final follow-up through 07f9b661:

  • Standards: 0 findings; worst issue: none.
  • Spec: 0 findings; worst issue: none.
  • Both reviewers read the original 11 changed files, including generated site/docs/index.html. After their one permitted follow-up, CI exposed an older regression requiring the behavior A held CI-red reservation skips the whole Fix run Pass, not just its Base branch CI step #1958 removes. The subsequent test-only commit d3356ce3 updates tests/review_1784_spec.rs to assert PR CI repair proceeds and its failed Repair still fails normally. Unread by both Standards and Spec: tests/review_1784_spec.rs. Generated-output exclusions: none. The coordinator inspected and ran that file; it passed (4 tests, 1 ignored).
  • Reports and counts: .thirdshift-review-TwTSd9/standards.md, spec.md, summary.json (retained with the Session trace).

Unaddressed findings

Standards

None.

Spec

None.

Security

No unaddressed introduced findings.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

Blast Radius: Fix

Unscoped Fix Passes may now repair an eligible PR while Base branch maintenance is unavailable or already underway. Existing PR eligibility, CI checks and Delivery gates still apply.

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

@JacobStephens2
JacobStephens2 merged commit d7f9f18 into main Nov 11, 2026
16 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-1958 branch November 11, 2026 03:13
This was referenced Nov 11, 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 held CI-red reservation skips the whole Fix run Pass, not just its Base branch CI step

1 participant