soft3/cybernode/audit/the move out of soft3 — receipt.md

the move out of soft3 — receipt, 2026-10-27

what: soft3/proposals/cybernode.md C2–C3. the node leaves the soft3 crate for this repository, with history (git filter-repo, 144 commits kept), carved from soft3 release/phase1 at 5ab03f6 (the integration branch, not main: 12 of the moved files differ between the two).

what moved: crate/src/{chain,genesis,node,wallet,node.rs,network.rs,lib.rs,bin} → rs/src/…; crate/tests → rs/tests; deploy/ → deploy/; specs/{chain,chain-wire,chain-conformance,chain-economy,genesis,native-node,routing}.md → specs/; audit/chain/ → audit/chain/.

what changed, and nothing else (diff of the carved tree against soft3 release/phase1, 2026-10-27):

path difference
rs/src/chain/ (61 files), genesis/, node/, wallet/, node.rs, network.rs byte-identical
rs/src/lib.rs crate doc, identity() → "cybernode", pub mod cli;, the stack re-export of cyb removed
rs/src/bin/soft3.rs → rs/src/cli.rs + rs/src/bin/cybernode.rs soft3:: → crate::; fn main → pub fn run(args); the verb run as an alias of node; user-facing command names in help and errors say cybernode; the binary is one call
rs/tests/*.rs soft3:: → cybernode::
rs/Cargo.toml name, version 0.1.0, description, repository, homepage, keywords; the stack/cyb facade feature dropped; every dependency and feature otherwise as in soft3
deploy/chain/ unit and script names: cybernode@.service, cybernode-check, journald-cybernode.conf, logrotate-cybernode; ExecStart … cybernode node; data paths, env names and ports unchanged
specs/chain.md, specs/chain-conformance.md, deploy/chain/README.md link paths soft3/specs/… → cybernode/specs/…, soft3/audit/chain → cybernode/audit/chain, cybernode/servers → apparatus/servers

unchanged by design: the wire identifiers soft3/chain/…/v1, soft3/spacepussy-test/v1, the genesis files, the home directories (~/.soft3/…), the env names — a change to any of them is a consensus change and is not this move.

the compile proof is not in this receipt. on 2026-10-27 no sibling set on origin resolves the node's dependencies — neither for this crate nor for the soft3 crate it came from, which fails identically on the same set: the stack is mid-way through the hemera 0.4 / bbg 0.3 tier. found while trying (each sibling at its port/l4-*-phase1, release/*, pin and head in turn):

sibling state on origin
cybergraph local-storage only on port/l4-cybergraph3-phase1 (PR #23), not on release/phase1 or master
bbg 0.3 with hemera ^0.4 on port/l4-bbg9-phase1; release/phase1 and the pin lack vendor/fjall
foculus bbg ^0.3 + hemera ^0.4 only on port/l4-foculus5-phase1; release/phase1 wants bbg ^0.2
mudra hemera ^0.4 only on feat/hemera-0.4
zheng hemera ^0.4 only on chore/l5a-tade-rename
tok no branch requires hemera ^0.4 — the stop
lens gpu/ only on release/0.2
hemera 0.4.0 on release/0.4; main is 0.3.1

the chain fleet and the conformance vectors run the day the integration set lands (the director's queue, soft3#376 and the port PRs); the byte-identity above is what makes that run a formality. the layout used: ~/.cache/cyber/stack-0.4/ (clones of every sibling, switchable), sources.json from train.py snapshot.

Graph