Saphan StudioDocs
Working with git

Bringing work home

The delivery boundary: what proof it prints, what it refuses, and what a partial return still owes.

Bringing work home

Work performed on a machine is not yours until it has crossed the delivery boundary. One verb is that boundary:

saphan return <stream>

For a stream whose last run used a remote machine, it brings home two things:

  • the stream's status document, from the far working directory into the stream's local channel;
  • the committed branch, from that same far checkout — the shared clone, never the admission mirror. An agent never pushes to the mirror and the mirror may not carry the reference under that name at all.

Both land in your own repository, so the closing gate and saphan merge resolve without any hand-copied file.

The proof it prints

  • sha256 of the status document on both sides — far and local.
  • the branch object on both sides — far and local.

Equal, or the verb refuses and says why. It also reports what your local reference named before the import, read before anything was fetched, and which of three shapes the import took: new (no local reference existed) or fast-forward (your previous object is an ancestor of the far one, including the case where they were already equal). There is no third accepted shape: a non-fast-forward far branch stops the verb rather than landing a rewind.

What it refuses

  • the far status document is absent;
  • a digest mismatch, naming which side diverged;
  • a partial return — one half landed and the other did not. The verb exits non-zero and names what is still owed.

Nothing is written for a half that did not verify. A partial return is a stated debt, not a silent success.

Reviews cross the same boundary

For a review run — on a machine or on this host, it makes no difference — the same verb is the mandatory delivery boundary. It reads the reviewer's own verdict document and the artifacts that document declares, leaves the reviewer's record untouched, and writes copies into the reviewed stream's worktree plus content-addressed copies into engine state. The review gate refuses until this delivery has happened and the bytes still verify. A verdict nobody delivered gates nothing.

On this page