Person-to-person network
The network moves native software as inspectable source plus narrow public evidence. It skips App Store submission and review for this direct path; it does not skip Xcode, Apple signing, provisioning, Trust, Developer Mode, or physical device verification.
Publish deliberately
Section titled “Publish deliberately”tohseno init [path] non-destructively prepares an ordinary Xcode project as a public candidate with a stable random ShotID. tohseno deploy --legacy-registry is the explicit historical Ship/Update command. Private creation and evolution do not publish automatically.
The Mac creates a deterministic sanitized snapshot in a temporary owner-only directory. It excludes VCS internals, build output, DerivedData, user data, caches, environment files, private Menlo state, pairing/log state, Apple signing material, and known secrets. .gitignore is not used as the security boundary.
Companion approval
Section titled “Companion approval”The catalog release binds active generation and witness, ShotID, BuilderID, immutable release ID, publication time, display metadata, artifact digest and byte length, source-tree commitment, Xcode recipe, platform facts, safety classification, permissions, optional exact parent release, expected checkpoint, and public-checkpoint digest.
Companion recomputes that manifest and the RegisterShot or AppendCheckpoint action. It approves only that exact release and required account bootstrap. The DeviceKey never leaves the phone.
Public agreement
Section titled “Public agreement”A release becomes discoverable only when these agree:
- manifest DeviceKey signature;
- current BuilderAccount authority;
- activated generation, chain, and Registry;
- canonical transaction receipt and block;
- current Registry head and checkpoint sequence;
- manifest public-checkpoint digest;
- staged source bytes and declared SHA-256.
The chain witnesses Builder-controlled continuity. The signed catalog binds that continuity to one release. Content addressing binds the release to the fetched bytes.
Recipient safety
Section titled “Recipient safety”Paths are normalized, ordered, relative, bounded, and collision-checked. Symlinks, hard links, special files, traversal, oversized content, archive ambiguity, and high-confidence secrets fail.
Only a narrow Green Install Profile may build automatically: an ordinary native iOS app with pinned dependencies and no arbitrary Run Script, custom executable, unsafe build rule/plugin, unsupported entitlement, or unsafe archive. Review-classified source requires explicit I Reviewed the Source — Build. Unsupported source does not build.
The recipient signs locally. Forking fixes the exact parent release, assigns new private/project and Shot identities, and records the parent relation. It never borrows parent authority.