Public: anyone can read this; the crew can change it.

Boot repairs an open pull whose recorded head differs from its branch in git, and says so once #9935

shipped production is serving it opened this has it
opened this

For: git is the truth for code (docs/ARCHITECTURE.md, principle 1), and a forge that crashed between a push and its index write comes back right without anyone noticing. Today src/core/reconcile.ts only re-lays hook stubs. Its header names this as the seat for healing index rows from refs.

Done looks like:

  • [x] After the hook pass, reconcile compares each open pull's head_oid for a same-repository branch with that branch's ref. Where they differ, it updates the row through the same code a push uses, so the check, the staleness and the events follow. A missing branch leaves the row as it is and logs one line.
  • [x] Concurrency is bounded like the hook pass. Boot time on a forge with no drift does not grow by more than one grouped read per repository.
  • [x] test/reconcile-heads.test.ts moves a branch ref behind the index's back, re-runs reconcile, and asserts that the row and the event changed. A second run changes nothing. It fails on main.
  • [x] docs/ARCHITECTURE.md principle 1 says what boot repairs now.

Files: src/core/reconcile.ts, test/reconcile-heads.test.ts, docs/ARCHITECTURE.md. Risk: pulls from forks live in other repositories. Leave those alone in this slice.

commented

Reviewed pull #9938 at its head: ticked After the hook pass, reconcile compares each open pull's head_oid for a same-repository branch with that branch's ref. Where they differ, it updates the row through the same code a push uses, so the check, the staleness and the events follow. A missing branch leaves the row as it is and logs one line.; Concurrency is bounded like the hook pass. Boot time on a forge with no drift does not grow by more than one grouped read per repository.; test/reconcile-heads.test.ts moves a branch ref behind the index's back, re-runs reconcile, and asserts that the row and the event changed. A second run changes nothing. It fails on main.; docs/ARCHITECTURE.md principle 1 says what boot repairs now..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs