chore: bump saorsa-core to 0.14.0 and set NodeMode::Client in CLI#18
chore: bump saorsa-core to 0.14.0 and set NodeMode::Client in CLI#18
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the node project’s dependency on saorsa-core and adjusts the CLI’s core node configuration to run in client mode, aligning the CLI binary with the newer core API expectations.
Changes:
- Bump
saorsa-corefrom0.13.0to0.14.0. - Set
core_config.mode = saorsa_core::NodeMode::Clientwhen creating the CLI client node.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
Cargo.toml |
Updates the saorsa-core dependency version to 0.14.0. |
src/bin/saorsa-cli/main.rs |
Configures the CLI-created node to run with NodeMode::Client. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| [dependencies] | ||
| # Core (provides EVERYTHING: networking, DHT, security, trust, storage) | ||
| saorsa-core = "0.13.0" | ||
| saorsa-core = "0.14.0" |
There was a problem hiding this comment.
The PR description lists several large features (BLAKE3 hashing, EVM payments, JSON logging, E2E tests, etc.), but the changes in this PR only show a saorsa-core version bump and setting NodeMode::Client for the CLI. Please either update the PR description to match the actual diff, or include the missing commits/files so reviewers can validate the full scope.
Greptile SummaryThis PR upgrades Changes:
No issues found. The changes are minimal, well-placed, and consistent with the stated goal of aligning the node binary with the updated Confidence Score: 5/5
|
| Filename | Overview |
|---|---|
| Cargo.toml | Minor version bump of saorsa-core from 0.13.0 to 0.14.0, aligning the dependency with the new PeerId API and BLAKE3 hashing additions described in the PR. |
| src/bin/saorsa-cli/main.rs | Single line added to create_client_node() setting core_config.mode = NodeMode::Client, correctly preventing the CLI from acting as a full DHT routing participant. |
Sequence Diagram
sequenceDiagram
participant User
participant CLI as saorsa-cli
participant Factory as create_client_node
participant Node as P2PNode
participant Bootstrap as BootstrapPeer
User->>CLI: run command (upload/download/chunk)
CLI->>Factory: bootstrap addrs
Factory->>Factory: NodeConfig::new()
Factory->>Factory: listen_addr = 0.0.0.0:0
Factory->>Factory: set bootstrap_peers
Factory->>Factory: mode = NodeMode::Client (NEW)
Factory->>Node: P2PNode::new(config)
Node->>Bootstrap: connect as client only (no routing duties)
Node-->>Factory: Arc<P2PNode>
Factory->>Node: node.start()
Node-->>Factory: Ok
Factory-->>CLI: Arc<P2PNode>
CLI->>CLI: QuantumClient with node + wallet
CLI->>CLI: execute command
Last reviewed commit: 74cc589
|
@claude please approve this PR 👀 |
|
Claude finished @mickvandijke's task —— View job PR #18 Review CompleteNote: I cannot formally approve PRs in GitHub (security restriction), but I can provide a thorough code review. SummaryThis PR makes two minimal, well-scoped changes:
Code Review✅ Changes Look Safe to MergePositive findings:
Alignment with automated reviews:
Architecture impact:
Instead, the CLI will:
|
Add unit and e2e tests covering the remaining Section 18 scenarios: Unit tests (32 new): - Quorum: #4 fail→abandoned, #16 timeout→inconclusive, #27 single-round dual-evidence, #28 dynamic threshold undersized, #33 batched per-key, #34 partial response unresolved, #42 quorum-derived paid-list auth - Admission: #5 unauthorized peer, #7 out-of-range rejected - Config: #18 invalid config rejected, #26 dynamic paid threshold - Scheduling: #8 dedup safety, #8 replica/paid collapse - Neighbor sync: #35 round-robin cooldown skip, #36 cycle completion, #38 snapshot stability mid-join, #39 unreachable removal + slot fill, #40 cooldown peer removed, #41 cycle termination guarantee, consecutive rounds, cycle preserves sync times - Pruning: #50 hysteresis prevents premature delete, #51 timestamp reset on heal, #52 paid/record timestamps independent, #23 entry removal - Audit: #19/#53 partial failure mixed responsibility, #54 all pass, #55 empty failure discard, #56 repair opportunity filter, response count validation, digest uses full record bytes - Types: #13 bootstrap drain, repair opportunity edge cases, terminal state variants - Bootstrap claims: #46 first-seen recorded, #49 cleared on normal E2e tests (4 new): - #2 fresh offer with empty PoP rejected - #5/#37 neighbor sync request returns response - #11 audit challenge multi-key (present + absent) - Fetch not-found for non-existent key Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add unit and e2e tests covering the remaining Section 18 scenarios: Unit tests (32 new): - Quorum: #4 fail→abandoned, #16 timeout→inconclusive, #27 single-round dual-evidence, #28 dynamic threshold undersized, #33 batched per-key, #34 partial response unresolved, #42 quorum-derived paid-list auth - Admission: #5 unauthorized peer, #7 out-of-range rejected - Config: #18 invalid config rejected, #26 dynamic paid threshold - Scheduling: #8 dedup safety, #8 replica/paid collapse - Neighbor sync: #35 round-robin cooldown skip, #36 cycle completion, #38 snapshot stability mid-join, #39 unreachable removal + slot fill, #40 cooldown peer removed, #41 cycle termination guarantee, consecutive rounds, cycle preserves sync times - Pruning: #50 hysteresis prevents premature delete, #51 timestamp reset on heal, #52 paid/record timestamps independent, #23 entry removal - Audit: #19/#53 partial failure mixed responsibility, #54 all pass, #55 empty failure discard, #56 repair opportunity filter, response count validation, digest uses full record bytes - Types: #13 bootstrap drain, repair opportunity edge cases, terminal state variants - Bootstrap claims: #46 first-seen recorded, #49 cleared on normal E2e tests (4 new): - #2 fresh offer with empty PoP rejected - #5/#37 neighbor sync request returns response - #11 audit challenge multi-key (present + absent) - Fetch not-found for non-existent key Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
saorsa-coredependency from 0.13.0 to 0.14.0NodeMode::Clienton the core config insaorsa-cliso the node identifies as a client rather than a full nodeTest plan
cargo build --releasesucceeds with saorsa-core 0.14.0cargo testpassesNodeMode::Client🤖 Generated with Claude Code