Skip to content

refactor(config)!: finish ciphernode configuration ownership - #2409

Merged
neogiacomo merged 1 commit into
refactor/2383-node-config-ownerfrom
refactor/2383-config-final-owner
Nov 4, 2026
Merged

neogiacomo merged 1 commit into
refactor/2383-node-config-ownerfrom
refactor/2383-config-final-owner

Conversation

@neogiacomo

@neogiacomo neogiacomo commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Part of #2383; stacked on #2407. Next: #2410.

Move network/release configuration and protocol-release.toml into crates/ciphernode/config,
migrate Rust and contract-tooling readers, then delete e3-config. No facade or old-import aliases.

Deliberate Rust API/import changes; no protocol, wire, or schema change relative to current main.

November 4 rebase and verification evidence
  • Rebased onto main 2da6f43cd (fix(zk-prover): validate ZK readiness #2231), through the preceding stack PR. Head: e6af8daa4.
  • Preserves .dev.3, advisory lockfiles, deployment/docs updates, and main's CI layout. Obsolete a5b09c342 remains absent.
  • Review size: 51 old/new paths / 48 rename-folded files.
  • All non-README files are byte-identical to the locally verified tree. The tip inherits main's seven-file ZK-readiness fix plus the contributor workflow's README block, preserved once at the foundation. Reviewed implementation patches are unchanged apart from refactor(config)!: assign settings to capability owners #2406's combined import.
  • At the complete tip: 127 selected Rust tests passed, zero ignored (config 33, ZK backend 23, CLI 66, layout 1, P2P delivery/replay 4); 86 tooling/release tests passed. Normal pre-push hooks pass with pinned nargo available.
  • No e3-config facade, aliases, duplicate ownership, or counter change. The canonical release writer and four release-file tests pass; identity is unchanged:
version          0.20.0-dev.3
protocol_version 9
node_generation  2
releaseId        0x87fdef2c1214c77afb1c3933cf0235f9cce2ecef20623287786347f4ea6e6df5
  • Fresh CI: passed; Repository Checks: passed, for this exact head. Earlier heads' green runs are historical.
  • No protocol, wire/schema, durable-location, circuit/verifier, or counter change relative to current main. Review references: persistence/replay, network delivery, upgrades, repository testing.
  • Local builds use the documented fixture-build skip, not skipped assertions. No exhaustive real-proof, historical/mixed-fleet, scaffolding, or rollout qualification is claimed. This rebase session performed no merge, release, or rollout.
  • GitHub subsequently reports this PR merged by the owner; CI above applies to its reviewed pre-merge head, not a separate run on the squash commit.

@vercel

vercel Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
interfold-dashboard Ready Ready Preview Nov 4, 2026 10:12am UTC
interfold-docs Ready Ready Preview Nov 4, 2026 10:12am UTC

Request Review

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
Commits

Reviewing files that changed from the base of the PR and between 6e943d7 and e6af8da.

Files ignored due to path filters: 1
  • Cargo.lock is excluded by !**/*.lock
Files selected for processing: 47
  • CONTRIBUTING.md
  • Cargo.toml
  • crates/Dockerfile
  • crates/ciphernode/README.md
  • crates/ciphernode/builder/Cargo.toml
  • crates/ciphernode/builder/src/lib.rs
  • crates/ciphernode/builder/src/net.rs
  • crates/ciphernode/config/AGENTS.md
  • crates/ciphernode/config/Cargo.toml
  • crates/ciphernode/config/README.md
  • crates/ciphernode/config/protocol-release.toml
  • crates/ciphernode/config/src/lib.rs
  • crates/ciphernode/config/src/network.rs
  • crates/ciphernode/config/src/node_config.rs
  • crates/ciphernode/config/src/node_release.rs
  • crates/cli/Cargo.toml
  • crates/cli/src/config_setup.rs
  • crates/config/AGENTS.md
  • crates/config/Cargo.toml
  • crates/config/README.md
  • crates/config/src/lib.rs
  • crates/data/Cargo.toml
  • crates/evm/runtime/Cargo.toml
  • crates/evm/runtime/src/node_release.rs
  • crates/keyshare/Cargo.toml
  • crates/layout-lock/src/lib.rs
  • crates/net/Cargo.toml
  • crates/net/src/network.rs
  • crates/net/src/network_sync/tests.rs
  • crates/net/src/network_sync/wire.rs
  • crates/net/tests/network_isolation.rs
  • crates/request/Cargo.toml
  • crates/sortition/Cargo.toml
  • crates/sync/Cargo.toml
  • crates/tests/Cargo.toml
  • docs/architecture/upgrades.md
  • docs/pages/operate/upgrades.mdx
  • packages/interfold-contracts/scripts/protocol/nodeRelease.ts
  • packages/interfold-contracts/test/Deployment/NodeReleaseFiles.spec.ts
  • scripts/blueprint/facts/01-entry.json
  • scripts/blueprint/facts/03-request-sortition-slashing.json
  • scripts/blueprint/facts/04-keyshare-aggregator.json
  • scripts/blueprint/facts/06-evm-da.json
  • scripts/blueprint/facts/07-net-sync.json
  • scripts/blueprint/facts/08-events-data-config.json
  • scripts/blueprint/lib/data.mjs
  • scripts/blueprint/lib/inventory.mjs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Architecture change

From 489ef47db to e6af8daa4. The page was removed when this pull request closed.

Before After New Removed
Crates 61 60 1
Crate dependencies 259 252 3 10
Every change (14)
  • Removed crate e3-config
  • e3-ciphernode-builder now depends on e3-ciphernode-config
  • e3-evm now depends on e3-ciphernode-config
  • e3-net now depends on e3-ciphernode-config
  • e3-ciphernode-builder no longer depends on e3-config
  • e3-ciphernode-config no longer depends on e3-config
  • e3-config no longer depends on e3-evm-config
  • e3-data no longer depends on e3-config
  • e3-evm no longer depends on e3-config
  • e3-keyshare no longer depends on e3-config
  • e3-net no longer depends on e3-config
  • e3-request no longer depends on e3-config
  • e3-sortition no longer depends on e3-config
  • e3-sync no longer depends on e3-config

Experimental. The page goes away when the pull request closes. scripts/blueprint/diff/README.md says how to turn it off or remove it.

@neogiacomo
neogiacomo added this pull request to stack #2408 November 2, 2026 14:52
@neogiacomo
neogiacomo marked this pull request as ready for review November 2, 2026 16:23
@neogiacomo
neogiacomo force-pushed the refactor/2383-config-final-owner branch from 2063240 to 660747e Compare November 2, 2026 16:55
neogiacomo added a commit that referenced this pull request Nov 2, 2026
Move e3-entrypoint to crates/ciphernode/entrypoint with workspace, Docker,
production guard, documentation, and blueprint references updated together.
Keep the unified CLI and CLI-owned initializer at their standalone roots.

Remove the unused empty config module and flatten the peer-ID and startup
implementations into their module roots, migrating CLI callers directly.
Preserve operation bodies, tests, fixtures, package identity, features,
configuration behavior, durable locations, and protocol/runtime behavior.

Part of #2383; stacked on #2409. The owner approved the atomic whole-crate
exception: 115 old/new review paths and 69 rename-folded files.

BREAKING CHANGE: e3_entrypoint::net::get_peer_id::execute becomes
e3_entrypoint::net::execute; start::start::{execute,
ingestion_heartbeat_dir, write_ingestion_expectation} moves directly under
e3_entrypoint::start. The unused config export is removed. No aliases,
operator reset/resync, protocol change, or release-counter change.
@neogiacomo
neogiacomo force-pushed the refactor/2383-config-final-owner branch from 660747e to 3ac906b Compare November 3, 2026 13:09
neogiacomo added a commit that referenced this pull request Nov 3, 2026
Move e3-entrypoint to crates/ciphernode/entrypoint with workspace, Docker,
production guard, documentation, and blueprint references updated together.
Keep the unified CLI and CLI-owned initializer at their standalone roots.

Remove the unused empty config module and flatten the peer-ID and startup
implementations into their module roots, migrating CLI callers directly.
Preserve operation bodies, tests, fixtures, package identity, features,
configuration behavior, durable locations, and protocol/runtime behavior.

Part of #2383; stacked on #2409. The owner approved the atomic whole-crate
exception: 115 old/new review paths and 69 rename-folded files.

BREAKING CHANGE: e3_entrypoint::net::get_peer_id::execute becomes
e3_entrypoint::net::execute; start::start::{execute,
ingestion_heartbeat_dir, write_ingestion_expectation} moves directly under
e3_entrypoint::start. The unused config export is removed. No aliases,
operator reset/resync, protocol change, or release-counter change.
@neogiacomo
neogiacomo force-pushed the refactor/2383-config-final-owner branch from 3ac906b to b7c157f Compare November 3, 2026 13:40
neogiacomo added a commit that referenced this pull request Nov 3, 2026
Move e3-entrypoint to crates/ciphernode/entrypoint with workspace, Docker,
production guard, documentation, and blueprint references updated together.
Keep the unified CLI and CLI-owned initializer at their standalone roots.

Remove the unused empty config module and flatten the peer-ID and startup
implementations into their module roots, migrating CLI callers directly.
Preserve operation bodies, tests, fixtures, package identity, features,
configuration behavior, durable locations, and protocol/runtime behavior.

Part of #2383; stacked on #2409. The owner approved the atomic whole-crate
exception: 115 old/new review paths and 69 rename-folded files.

BREAKING CHANGE: e3_entrypoint::net::get_peer_id::execute becomes
e3_entrypoint::net::execute; start::start::{execute,
ingestion_heartbeat_dir, write_ingestion_expectation} moves directly under
e3_entrypoint::start. The unused config export is removed. No aliases,
operator reset/resync, protocol change, or release-counter change.
neogiacomo added a commit that referenced this pull request Nov 4, 2026
Move e3-entrypoint to crates/ciphernode/entrypoint with workspace, Docker,
production guard, documentation, and blueprint references updated together.
Keep the unified CLI and CLI-owned initializer at their standalone roots.

Remove the unused empty config module and flatten the peer-ID and startup
implementations into their module roots, migrating CLI callers directly.
Preserve operation bodies, tests, fixtures, package identity, features,
configuration behavior, durable locations, and protocol/runtime behavior.

Part of #2383; stacked on #2409. The owner approved the atomic whole-crate
exception: 115 old/new review paths and 69 rename-folded files.

BREAKING CHANGE: e3_entrypoint::net::get_peer_id::execute becomes
e3_entrypoint::net::execute; start::start::{execute,
ingestion_heartbeat_dir, write_ingestion_expectation} moves directly under
e3_entrypoint::start. The unused config export is removed. No aliases,
operator reset/resync, protocol change, or release-counter change.
Move network/bootstrap policy and compiled release identity into
e3-ciphernode-config with their unchanged release manifest and tests.
Migrate direct consumers and the contract-tooling reader, remove unused
dependencies, and delete e3-config without a compatibility facade.

Preserve configuration behavior, exact release identity, counters, durable
locations, P2P protocol names, and runtime admission policy. Update owner
guidance, Docker/workspace inputs, diagnostics, and blueprint references.

Part of #2383; stacked on #2407.

BREAKING CHANGE: network and release imports now use
e3_ciphernode_config; e3-config is removed. The release manifest now lives
at crates/ciphernode/config/protocol-release.toml. No operator reset or
resync is required.
neogiacomo added a commit that referenced this pull request Nov 4, 2026
Move e3-entrypoint to crates/ciphernode/entrypoint with workspace, Docker,
production guard, documentation, and blueprint references updated together.
Keep the unified CLI and CLI-owned initializer at their standalone roots.

Remove the unused empty config module and flatten the peer-ID and startup
implementations into their module roots, migrating CLI callers directly.
Preserve operation bodies, tests, fixtures, package identity, features,
configuration behavior, durable locations, and protocol/runtime behavior.

Part of #2383; stacked on #2409. The owner approved the atomic whole-crate
exception: 115 old/new review paths and 69 rename-folded files.

BREAKING CHANGE: e3_entrypoint::net::get_peer_id::execute becomes
e3_entrypoint::net::execute; start::start::{execute,
ingestion_heartbeat_dir, write_ingestion_expectation} moves directly under
e3_entrypoint::start. The unused config export is removed. No aliases,
operator reset/resync, protocol change, or release-counter change.
@neogiacomo
neogiacomo force-pushed the refactor/2383-config-final-owner branch from c39b240 to e6af8da Compare November 4, 2026 10:11
@neogiacomo
neogiacomo merged commit 39299d5 into main Nov 4, 2026
44 checks passed
@neogiacomo
neogiacomo deleted the refactor/2383-config-final-owner branch November 4, 2026 10:32

This branch was successfully deployed

2 active and 1 inactive deployments
github-pages — e6af8daa Deployed Nov 4, 2026 by neogiacomo via Publish the previews #607
Preview – interfold-docs — e6af8daa Deployed Nov 4, 2026 by vercel[bot]
Preview – interfold-dashboard — e6af8daa Deployed Nov 4, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant