Skip to content

Avoid empty Base branch CI repair pull requests - #2057

Merged
JacobStephens2 merged 7 commits into
mainfrom
issue-2042
Nov 12, 2026
Merged

JacobStephens2 merged 7 commits into
mainfrom
issue-2042

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

A Base branch CI-fix session that commits nothing now succeeds before publication, logs the Base branch and commit, and remembers the attempt locally.

Base branch maintenance
  recorded unchanged attempt → skip CI re-run and session; continue PR selection
  CI-fix session
    unchanged head → record Base branch + full commit → succeed without push or PR
    changed head   → push repair branch → repair PR → Delivery

No further Check re-run is requested after an unchanged session. The manual and all three hand-written site pages describe this behavior. This continuation preserves the existing fix, merges current main, and fixes the review-discovered re-run ordering edge.

Closes #2042

Test seams

  • Public thirdshift fix base <branch> CLI against real fixture Git repositories and fake gh/Harness: publication, exit status, stderr, Activity log, repeated Passes, Base branch/full-commit scoping, and refused Check re-run recovery.

Evidence

Execution evidence

  • Before, at supplied merge base 3beacb7f03fa45053914763a5d8a8668ea8cc93c with only the retained regression tests copied in:
    cargo test --test fix_base_ci unchanged_base_ci_fix_publishes_nothing_and_is_not_repeated -- --exact --nocapture
    failed with A CI-fix session that committed nothing tried to open a PR, pushing fix-main-2e4fc0b, and opening a draft pull request into main; 0 passed; 1 failed.
    After: the same command passed: 1 passed; 0 failed.

  • Confirmed cause: the opening Base branch CI-fix session unconditionally entered push and PR creation. Delivery now compares HEAD before and after the session and returns a successful unchanged outcome before either operation. A local Git ref records the Base branch/full commit under the existing CI reservation.

  • Spec review regression, before the follow-up fix:
    cargo test --test fix_base_ci unchanged_base_attempt_does_not_rerun_after_refusal -- --exact --nocapture
    failed with A later Pass re-ran checks after the unchanged repair, re-running failed jobs of run 900 on main, left: 2, right: 1.
    After: the same command passed: 1 passed; 0 failed (1.11s). The local marker is now consulted before fix_base_tip, so a previously refused re-run cannot be requested again after an unchanged session. The regression remains in the branch.

  • cargo test --test fix_base_ci -- --test-threads=3 passed after upstream reconciliation: 19 passed; 0 failed; 1 ignored (39.63s), before adding the Spec regression above.

  • cargo fmt --check and npm run docs:check --prefix site passed.

  • Final CI passed on published head f8e6e7af5a9d88c889ed012ee0c139f71d5f8e95: all 4,341 Rust tests passed across the four partitions (1,065 + 1,100 + 1,066 + 1,110), with the exact-coverage check and stable test gate green. Tooling checks, Clippy, Console browser tests and site browser tests also passed. The Release workflow passed on the same head.

  • Final local selection: NEXTEST_TEST_THREADS=3 CARGO_BUILD_JOBS=2 /usr/bin/time -p scripts/affected-tests refs/remotes/origin/main. Its site suite passed 68 tests in 110.61s; Rust test compilation took 5m 06s. Following docs/testing.md, the duplicate local Rust run was interrupted by its session ID once exact-head CI completed successfully: 142 tests passed; 3 in-flight tests were interrupted. The wrapper measured 594.54s through cancellation, including compilation and site checks; this is not a completed local full-suite timing. Successful CI supplies final full-suite evidence.

Visual evidence

Paired documentation captures at the same section state, at 1440×900 desktop and 390×844 mobile. Captures are retained in a secret Gist; all four pages fit both viewports.

Home page — 1440×900

Before

After

How it works — 1440×900

Before

After

Architecture — 1440×900

Before

After

User manual — 1440×900

Before

After

Home page — 390×844

Before

After

How it works — 390×844

Before

After

Architecture — 390×844

Before

After

User manual — 390×844

Before

After

Unaddressed findings

Standards

None. The reviewer raised 0 findings.

Spec

None. The reviewer raised 1 finding; its command reproduced the unwanted second Check re-run, and the ordering fix plus retained regression addresses it. No finding was declined or deferred to the Day shift.

Security

None.

Security review outcome

No unaddressed introduced findings.

Review coverage

Independent Standards and Spec reviewers inspected all 11 changed files against refs/remotes/origin/main (b9b164abd3f72244f321354afda87afbf598a089), including changed generated site/docs/index.html hunks. Both also reviewed the final edits to src/fix/base_ci.rs and tests/fix_base_ci.rs. No changed file was left unread on either axis, and neither used generated-output exclusions.

Reports, combined final files-read lists and counts are saved beside the Session trace in .thirdshift-review-QwZei6/standards.md, .thirdshift-review-QwZei6/spec.md and .thirdshift-review-QwZei6/summary.json ({"standards":0,"spec":1}).

Merge Danger

Door: two-way

Blast Radius: Fix

Changes Base branch maintenance's unchanged-session ending and its later-Pass gate. Attempt records stay local to the Launch repository; other clones retain their own attempt history. Sessions that commit still follow normal Delivery.

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

…/actions/runs?head_sha=d460cf0f7dd7d5de6ba1e8a7809c83cfc79a8147&per_page=100 failed: gh: API rate limit exceeded for user ID 53905376. If you reach out to GitHub Support for help, please include the request ID 946E:2BE5FB:8D505A:1BCBDA6:6AF4CAEF and timestamp 2026-11-11 20:07:11 UTC. For more on scraping GitHub and how it may affect your rights, please review our Terms of Service (https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) (HTTP 403))

2026-11-11T20:07:12Z, host orchestrate.etadventures.com. Uncommitted work at the time of failure is included in this commit.
@JacobStephens2
JacobStephens2 marked this pull request as ready for review November 12, 2026 05:29
@JacobStephens2
JacobStephens2 merged commit 0ab4647 into main Nov 12, 2026
24 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-2042 branch November 12, 2026 05:44
@JacobStephens2 JacobStephens2 mentioned this pull request Nov 12, 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 Base branch CI-fix that commits nothing still pushes its branch and fails creating an empty pull request

1 participant