Skip to content

Monitor and repair Base branch CI in unscoped Fix Passes - #1807

Merged
JacobStephens2 merged 4 commits into
issue-1784from
issue-1796
Nov 6, 2026
Merged

JacobStephens2 merged 4 commits into
issue-1784from
issue-1796

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 6, 2026 •

Copy link
Copy Markdown
Owner

Summary

fix Pass (without --author)
  inspect Base branch origin tip
    first failed push attempt → re-run failed jobs, skip
    persistent/non-rerunnable failure → fix-<base>-<short-sha>
      CI-fix session → repair PR → Delivery → ready or Self-merge
    existing repair PR → skip duplicate
  otherwise select an eligible waiting PR

Merge and email flags/config apply to Base branch repairs. Self-merge closes matching CI-red reports and Base fix issues. Author-scoped Passes retain PR-only selection.

Closes #1796

Evidence

Execution evidence

  • Before: cargo test --test fix_base_ci first_failed_base_attempt -- --nocapture failed: expected one re-run, observed zero; stderr said no eligible pull request targeting main on acme/widgets.
    After: same command passed (1 passed; 0 failed).

  • Before: cargo test --test spec_1796 failed_push_with_no_jobs_is_repaired_despite_an_unrelated_green_status -- --exact --nocapture failed: expected one repair session, observed zero when an unrelated status was green.
    After: same command passed (1 passed; 0 failed); regression test retained.

  • cargo test --test fix_base_ci --test fix_pass --test fix_run --test spec_1796: 30 passed, 4 fixture entries ignored. Covers re-run/skip, persistent and non-rerunnable failures, selected Base branch, duplicate PR states, all-red ownership, merge/email flags and config, and issue cleanup.

  • UPDATE_PROMPTS=1 cargo test --bin thirdshift prompts_page, then cargo test --bin thirdshift prompts_page: 14 passed; existing generated prompts unchanged.

  • cargo fmt --check and cargo clippy --all-targets -- -D warnings: passed.

  • CARGO_BUILD_JOBS=3 NEXTEST_TEST_THREADS=3 RUST_TEST_THREADS=3 /usr/bin/time -p scripts/affected-tests origin/issue-1784: site checks passed (62 tests, 62.01s). The older local Rust run was intentionally stopped with SIGTERM after 1924.38s, compilation included, once successful CI covered the final head; it was not a completed local full-suite pass.

  • The full Rust suite (cargo nextest run) passed in CI on final head 2c73015f. All applicable PR checks are green; the successful final-head CI was reused instead of repeating the full suite locally.

Visual evidence

Paired documentation captures use the same page state and viewport: desktop 1440×900, mobile 390×844. Commit-pinned images are hosted in a secret Gist.

Home desktop (1440×900)

Before

After

Home mobile (390×844)

Before

After

How it works desktop (1440×900)

Before

After

How it works mobile (390×844)

Before

After

Architecture desktop (1440×900)

Before

After

Architecture mobile (390×844)

Before

After

Manual desktop (1440×900)

Before

After

Manual mobile (390×844)

Before

After

Test seams

  • Public thirdshift fix CLI, real Git repositories, and fake GitHub, Harness and email adapters: Base branch re-run/repair selection, Delivery, duplicate suppression, merge/email policy and issue cleanup.

Review

Independent Standards and Spec reviewers used the fetched issue-1784 origin tip, af2cc4c5df97d26785a17a21e9186d8291e59a66, as the fixed point. The local issue-1784 ref is stale and checked out in another Worktree, so it was left untouched.

Standards raised 3 design judgement calls: consolidated Delivery scaffolding and latest-push reads; retained the scoped repository anchor described below. Spec raised 1 behavioral finding: reproduced with its exact command, fixed, and kept its test.

Both reviewers completed their one coverage follow-up against 2c73015f. All 18 changed files were read on each axis. Unread changed files: none. Generated-output exclusions: none; generated manual HTML was inspected directly. Reports and {"standards":3,"spec":1} summary are retained in .thirdshift-review-CpZ8qB/ beside the Session trace.

Unaddressed findings

Standards

  • S2 — Possible Primitive Obsession: repository anchor with IssueUrl.number = 0 (src/fix/base_ci.rs:29–36). Plan decision: retain the existing Delivery, PullRequest and CI transport contracts for this ticket rather than broaden their issue-based interfaces. This anchor supplies repository fields only. The explicit RepairContext::BaseBranch arm in src/delivery.rs bypasses issue handover, and Base branch completion closes real issues returned by close_base_ci_issues, never the anchor. The public delivery_repairs_checks_also_red_on_base_and_self_merges_with_issue_cleanup test exercises CI Repair, Self-merge and real issue cleanup. This is a scoped compatibility choice, not a request for a Spec or Day shift decision.

Spec

None.

Security

None.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

Reverting restores PR-only selection for unscoped Fix Passes.

Blast Radius: repository

Unscoped scheduled Fix Passes can now author Base branch repair PRs; configured Self-merge and email policy determine delivery.

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

Preserve Base branch CI repair documentation alongside Inbox pull-request hand-off and Copy fix command. Regenerate the user manual from the merged source.

Validation: scripts/affected-tests origin/issue-1784 passed (site, Console, full Rust suite). Rust suite: 2360.94s including compilation. cargo clippy --all-targets -- -D warnings and cargo fmt --check passed.
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.

1 participant