Skip to content

fix: update to saorsa-core 0.17.2 with peer_addrs API change#31

Closed
mickvandijke wants to merge 3 commits intomainfrom
fix/saorsa-core-0.17.2
Closed

fix: update to saorsa-core 0.17.2 with peer_addrs API change#31
mickvandijke wants to merge 3 commits intomainfrom
fix/saorsa-core-0.17.2

Conversation

@mickvandijke
Copy link
Copy Markdown
Collaborator

@mickvandijke mickvandijke commented Mar 18, 2026

Summary

  • Pin saorsa-core dependency to 0.17.2 (from 0.17)
  • Update all send_message calls to include the new peer_addrs parameter added in saorsa-core 0.17.2
  • Bump saorsa-node version to 0.4.1

Test plan

  • CI passes (build + tests)
  • Verify node connects to bootstrap peers correctly with new send_message signature

🤖 Generated with Claude Code

mickvandijke and others added 2 commits March 18, 2026 20:34
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 18, 2026 19:36
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the crate’s release metadata and dependency constraint to align saorsa-node with a newer saorsa-core patch release.

Changes:

  • Bump saorsa-node package version from 0.4.0 to 0.4.1.
  • Update the saorsa-core dependency requirement from 0.17 to 0.17.2.

💡 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.

Comment thread Cargo.toml
Comment on lines 30 to 32
# Core (provides EVERYTHING: networking, DHT, security, trust, storage)
saorsa-core = "0.17"
saorsa-core = "0.17.2"
saorsa-pqc = "0.5"
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Mar 18, 2026

Greptile Summary

This PR bumps the saorsa-node package version from 0.4.0 to 0.4.1 and narrows the saorsa-core dependency constraint from "0.17" to "0.17.2", aiming to ensure a specific minimum patch release is used.

Key observations:

  • The Cargo version specifier "0.17.2" is equivalent to ^0.17.2 (>=0.17.2, <0.18.0). This sets a minimum version, not an exact pin — future patch releases such as 0.17.3 can still be resolved.
  • Cargo.lock is explicitly excluded via .gitignore, which means no lockfile is committed to enforce a specific resolved version. Without a lockfile, the dependency is effectively not pinned across builds.
  • If the goal is truly a hard pin to 0.17.2, the correct Cargo syntax is "=0.17.2" (note the leading =).
  • The version bump from 0.4.00.4.1 is appropriate for a patch-level change like narrowing a dependency range.

Confidence Score: 3/5

  • Safe to merge if the intent is only to set a minimum version floor on saorsa-core; needs "=0.17.2" if a true exact pin is required.
  • The change is minimal and low-risk, but the stated goal of "pinning" the dependency is not fully achieved by the current Cargo version specifier "0.17.2". Combined with the absence of a committed Cargo.lock, builds remain non-deterministic with respect to saorsa-core patch versions.
  • Cargo.toml — verify whether "0.17.2" or "=0.17.2" is the intended constraint.

Important Files Changed

Filename Overview
Cargo.toml Bumps package version from 0.4.0 to 0.4.1 and changes saorsa-core from "0.17" to "0.17.2"; however, because Cargo.lock is gitignored, the constraint "0.17.2" (equivalent to ^0.17.2) does not truly pin the dependency — future patch releases like 0.17.3 can still be resolved.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[cargo build] --> B{Resolve saorsa-core}
    B -->|"Cargo.toml: &quot;0.17.2&quot; = ^0.17.2"| C{Latest matching version?}
    C -->|0.17.2 available| D[Use 0.17.2]
    C -->|0.17.3 available| E[Use 0.17.3]
    C -->|0.17.4 available| F[Use 0.17.4 ...]
    D --> G[Build succeeds]
    E --> G
    F --> G
    H{True pin: &quot;=0.17.2&quot;}
    H -->|Only allows| D
    I[No Cargo.lock committed] --> B
    style E fill:#f9a825
    style F fill:#f9a825
    style H fill:#4caf50,color:#fff
Loading
Prompt To Fix All With AI
This is a comment left during a code review.
Path: Cargo.toml
Line: 31

Comment:
**Version constraint does not truly pin the dependency**

The PR title and description claim to "pin" `saorsa-core` to `0.17.2`, but the Cargo version constraint `"0.17.2"` is shorthand for `^0.17.2`, which resolves to `>=0.17.2, <0.18.0`. This means future patch releases such as `0.17.3` or `0.17.4` can still be resolved by Cargo.

Additionally, `Cargo.lock` is explicitly listed in `.gitignore` (line 66), so there is no lockfile in the repository to enforce the resolved version across builds. Each `cargo build` run could resolve a different patch version, making the dependency effectively unpinned.

To truly pin to exactly `0.17.2`, use the exact version specifier:

```suggestion
saorsa-core = "=0.17.2"
```

If the intent is only to establish `0.17.2` as the *minimum* accepted version (allowing future compatible patches), the current syntax is correct — but the PR description should clarify this distinction to avoid confusion.

How can I resolve this? If you propose a fix, please make it concise.

Last reviewed commit: "chore: bump version ..."

Comment thread Cargo.toml
[dependencies]
# Core (provides EVERYTHING: networking, DHT, security, trust, storage)
saorsa-core = "0.17"
saorsa-core = "0.17.2"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Version constraint does not truly pin the dependency

The PR title and description claim to "pin" saorsa-core to 0.17.2, but the Cargo version constraint "0.17.2" is shorthand for ^0.17.2, which resolves to >=0.17.2, <0.18.0. This means future patch releases such as 0.17.3 or 0.17.4 can still be resolved by Cargo.

Additionally, Cargo.lock is explicitly listed in .gitignore (line 66), so there is no lockfile in the repository to enforce the resolved version across builds. Each cargo build run could resolve a different patch version, making the dependency effectively unpinned.

To truly pin to exactly 0.17.2, use the exact version specifier:

Suggested change
saorsa-core = "0.17.2"
saorsa-core = "=0.17.2"

If the intent is only to establish 0.17.2 as the minimum accepted version (allowing future compatible patches), the current syntax is correct — but the PR description should clarify this distinction to avoid confusion.

Prompt To Fix With AI
This is a comment left during a code review.
Path: Cargo.toml
Line: 31

Comment:
**Version constraint does not truly pin the dependency**

The PR title and description claim to "pin" `saorsa-core` to `0.17.2`, but the Cargo version constraint `"0.17.2"` is shorthand for `^0.17.2`, which resolves to `>=0.17.2, <0.18.0`. This means future patch releases such as `0.17.3` or `0.17.4` can still be resolved by Cargo.

Additionally, `Cargo.lock` is explicitly listed in `.gitignore` (line 66), so there is no lockfile in the repository to enforce the resolved version across builds. Each `cargo build` run could resolve a different patch version, making the dependency effectively unpinned.

To truly pin to exactly `0.17.2`, use the exact version specifier:

```suggestion
saorsa-core = "=0.17.2"
```

If the intent is only to establish `0.17.2` as the *minimum* accepted version (allowing future compatible patches), the current syntax is correct — but the PR description should clarify this distinction to avoid confusion.

How can I resolve this? If you propose a fix, please make it concise.

Conforms to updated `send_message` signature across the codebase to pass an empty peer addresses slice where required.
@mickvandijke mickvandijke marked this pull request as draft March 19, 2026 10:57
@mickvandijke mickvandijke changed the title fix: pin saorsa-core to 0.17.2 fix: update to saorsa-core 0.17.2 with peer_addrs API change Mar 19, 2026
@mickvandijke
Copy link
Copy Markdown
Collaborator Author

Reopening with renamed branch fix/stale-connections

@mickvandijke mickvandijke deleted the fix/saorsa-core-0.17.2 branch March 19, 2026 11:01
mickvandijke added a commit that referenced this pull request Apr 1, 2026
Implements the remaining untested scenarios from REPLICATION_DESIGN.md
Section 18, bringing coverage from 47/56 to 56/56:

- #20: paid-list local hit bypasses presence quorum (quorum.rs)
- #22: paid-list rejection below threshold (quorum.rs)
- #29: audit start gate during bootstrap (audit.rs)
- #30: audit peer selection from sampled keys (audit.rs)
- #31: audit periodic cadence with jitter bounds (config.rs)
- #32: dynamic challenge size equals PeerKeySet (audit.rs)
- #47: bootstrap claim grace period in audit path (audit.rs)
- #48: bootstrap claim abuse after grace period (paid_list.rs)
- #53: audit partial per-key failure with mixed responsibility (audit.rs)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
mickvandijke added a commit that referenced this pull request Apr 1, 2026
Implements the remaining untested scenarios from REPLICATION_DESIGN.md
Section 18, bringing coverage from 47/56 to 56/56:

- #20: paid-list local hit bypasses presence quorum (quorum.rs)
- #22: paid-list rejection below threshold (quorum.rs)
- #29: audit start gate during bootstrap (audit.rs)
- #30: audit peer selection from sampled keys (audit.rs)
- #31: audit periodic cadence with jitter bounds (config.rs)
- #32: dynamic challenge size equals PeerKeySet (audit.rs)
- #47: bootstrap claim grace period in audit path (audit.rs)
- #48: bootstrap claim abuse after grace period (paid_list.rs)
- #53: audit partial per-key failure with mixed responsibility (audit.rs)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants