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.