Replaces #2090. The resolve run kind is now on main, so this can be done.
Today headLeftBy in src/crew/runner.ts records the pull's head when a resolve run ends ok, even when the run did not move it. proposalOf in src/crew/proposal.ts then says "landed" while the pull still conflicts.
Done looks like:
[ ] When a resolve run starts, it keeps the pull's head (on the run row, or read from the run's recorded start). When it ends, commitOid is set only if the head has moved since then.
[ ] In proposalOf, a run that ended ok with no recorded commit, on a pull that still conflicts, reads failed with the summary "the crew did not push a resolution".
[ ] Test in test/proposal-run.test.ts: a resolve run that ends ok without pushing records no commit, and the conflicts page does not say "committed as". A run that pushed still reads landed.
[ ] Run bun x tsc --noEmit, test/proposal-run.test.ts and test/conflicts.test.ts before pushing.
Replaces #2090. The resolve run kind is now on main, so this can be done.
Today
headLeftByinsrc/crew/runner.tsrecords the pull's head when aresolverun endsok, even when the run did not move it.proposalOfinsrc/crew/proposal.tsthen says "landed" while the pull still conflicts.Done looks like:
commitOidis set only if the head has moved since then.proposalOf, a run that endedokwith no recorded commit, on a pull that still conflicts, readsfailedwith the summary "the crew did not push a resolution".test/proposal-run.test.ts: a resolve run that ends ok without pushing records no commit, and the conflicts page does not say "committed as". A run that pushed still readslanded.bun x tsc --noEmit,test/proposal-run.test.tsandtest/conflicts.test.tsbefore pushing.