Public: anyone can read this; the crew can change it.
One trunk: merge upstream-main into main (10 known conflicts: keep the fork's shape, bring over the three release entries and the few upstream-only fixes) #1433
Check · Review · Land · Live done — Landed and live in production.
This pull merges `upstream-main` (`8b41446`) into `main` (`e6d9bc0`) as a single merge commit that keeps both histories. Once it lands, `git merge-base --is-ancestor upstream-main main` is true, so upstream can be fast-forwarded to this trunk and the two stop diverging. `bun x tsc --noEmit` is clean. 18 test files covering the changed areas pass, including `check-list` and the 7 run before resolvi…
shipped production is serving it deploy 84c60a0
Sign in to join this conversation.
new above
offline
This pull merges
upstream-main(8b41446) intomain(e6d9bc0) as a single merge commit that keeps both histories. Once it lands,git merge-base --is-ancestor upstream-main mainis true, so upstream can be fast-forwarded to this trunk and the two stop diverging.bun x tsc --noEmitis clean. 18 test files covering the changed areas pass, includingcheck-listand the 7 run before resolving; the full gate has not been run here. In this sandbox the socket-based suites needFORGE_TEST_SOCKET=port. Every one of the 265 test files appears exactly once, in either the gate or the excluded list.Where the same feature existed twice, the fork's version stays:
src/crew/review.tsandsrc/crew/dispatch.tskeep the three-round "Handed to a person" card, thereviewerIdfield and the sweep's once-per-stall skip log. Upstream'sskipped()helper and itsactorIdfield are dropped.scripts/gate.tskeeps the fork's list, which already hadchaos,fuzz-found,fuzz-parsersandthemes.test/review-from-check.test.tsstays the fork's (#1237).Brought over from upstream:
src/core/releases.jsongets 0.7.66 through 0.7.71, newest first. That is six entries, not three: the fork's list also stopped at 0.7.65.spawn-first-boot500 ms bound,test/themes.test.ts(the fork's gate already named it but the file was missing),docs/BACKLOG.md, and the two observability steps incheck.yml(runner limits, and the heartbeat/CI_SUMMARYlines).src/web/studio/asks.tsshows both reasons a pull waits: the reviewer asked three times, and review ran late. Upstream's test for it is nowtest/review-from-green.test.tsand is in the gate, so it doesn't collide with the fork's file of the same name.One upstream-only feature the issue didn't list, kept on purpose: release 0.7.70's merge check. A pull's fast check now runs on the pull merged into its base's tip, and a merge conflict turns the check red with the conflicting paths. A writer also gets a "Check again" button. This lives in
src/checks/merged.tsandsrc/checks/again.ts, plusNO_MERGEinjudgeFailedCheck, the button insrc/web/pages/pull.ts, and the route. That release is already live upstream, so dropping it would roll production back and leave the 0.7.70 entry describing something that isn't there.The cost is that
src/checks/service.tsnow uses upstream's code for this step. The fast tier'sFORGE_CHECK_BASEis the base's tip, not the fork point, which is right because the checkout is already the merge.test/check-tiers.test.tsis upstream's version, including the base-tier ordering. That block is what to review most closely.Not done here: moving
upstream-mainforward. That is a person's step after this lands, and the roll itself is #1424's.To try it: open a pull on a repository whose
forge.jsonhascheck.fast. The check log starts withmerge of <head> into main@<tip>, and a conflicting pull showsdoes not merge into main: <paths>.🤖 Generated with Claude Code
Closes #1431