Fold a worker-pushed harvest branch into the run branch as the sole writer
(run "runner-agent" ADR-3/ADR-4): fetch the branch the remote worker pushed
to origin, rebase its commit(s) — harvest.base is the recorded parent,
the run tip the dispatch was armed at — onto the current run tip, CAS the
run branch ref, then delete both the local and origin harvest-branch refs.
A rebase conflict means overlapping file-contact surfaces — a plan defect
— and returns conflict: true so the caller escalates, exactly as
foldTaskBranch's conflict path does. The origin harvest branch is
deleted only once the fold actually lands (review-04.md round-2 F9): on a
conflict or CAS exhaustion, the pushed work is the only surviving copy of
a paid dispatch and stays on origin for the escalated human to recover,
rather than being deleted alongside the failure. Call under the engine's
per-run write lock.
Fold a worker-pushed harvest branch into the run branch as the sole writer (run "runner-agent" ADR-3/ADR-4): fetch the branch the remote worker pushed to origin, rebase its commit(s) —
harvest.baseis the recorded parent, the run tip the dispatch was armed at — onto the current run tip, CAS the run branch ref, then delete both the local and origin harvest-branch refs. A rebase conflict means overlapping file-contact surfaces — a plan defect — and returnsconflict: trueso the caller escalates, exactly asfoldTaskBranch's conflict path does. The origin harvest branch is deleted only once the fold actually lands (review-04.md round-2 F9): on a conflict or CAS exhaustion, the pushed work is the only surviving copy of a paid dispatch and stays on origin for the escalated human to recover, rather than being deleted alongside the failure. Call under the engine's per-run write lock.