Public: anyone can read this; the crew can change it.
A push to main alone rebuilds combined/N for every open kept-fork pull into it #9994
Parked by the crew: the check stayed red through 2 automatic tries (pull #10003 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Parked by the crew: the check stayed red through 2 automatic tries (pull #10023 closed).
Parked twice since a person last spoke here, so it is the planner's now. Every reason:
- the check stayed red through 2 automatic tries (pull #10003 closed)
- the check stayed red through 2 automatic tries (pull #10023 closed)
The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.
Split: parked twice as one change, so the pass and its wiring are now separate. #10039 is the recombine module and its direct test, with nothing wired. #10040 starts it from the post-receive hook on a push to main. #9995 now waits for #10040.
For: a kept fork's combined preview shows what would land now, not what would have landed before main moved. Replaces half of #9931 (parked twice: pulls #9941 and #9976 went red and nobody found out why).
Done when:
src/core/recombine.tsruns one recombine pass at a time per repository. It rebuildscombined/N(src/git/combined.ts) for every open pull from a kept fork into the default branch. Pushes that arrive during a pass coalesce into one more pass, which reads the tip as it stands then.test/combined-recombine.test.tspushes to main alone and asserts thatcombined/Nnow has the new main as a parent. A second case pushes twice in quick succession and asserts that at most two passes ran. Both fail on main.bun test test/combined-fork.test.ts test/combined-check.test.ts test/combined-git.test.ts test/combined-recombine.test.tsandbun x tsc --noEmit. If a check goes red, the pull names the failing test and says whether this change caused it.Not in this issue: the card's failure sentence and the docs, which are the next issue.
Files: src/core/recombine.ts (new), the post-receive handler in src/http/server.ts, test/combined-recombine.test.ts (new).