saphan return
Bring a stream's status, branch, and review artifacts home, with proof
saphan return
Bring a stream's status, branch, and review artifacts home, with proof
For a stream whose registry row's last spawned run used transport=ssh,
fetch _EXEC_STATUS.md from the far workdir into the stream's LOCAL channel
and the committed branch from that SAME far checkout ("the CLONE" — never an
admission bare mirror, which a leg never pushes to and may not carry the
ref by name) into this workspace's own repo, so the CLOSE gate and
saphan merge resolve without any hand scp.
Prints sha256 for both sides of the status file and the branch SHA pair, far vs local, once both land — equal, or the verb refuses and says why. Refuses named, never silent: the far file absent, a sha mismatch (naming which side diverged), or a partial return (naming what is still owed) all exit non-zero. Nothing is written for a half that did not verify.
For a review run, local or ssh, the same verb is the mandatory delivery boundary: it reads the reviewer's own _REVIEW_STATUS.md and declared artifacts, keeps that source record untouched, writes basename projections into the reviewed stream's worktree, and writes content-addressed copies under engine state. The projected review ref names that durable copy; the review gate refuses until this delivery has happened and the bytes still verify.