Fix peer recommendation to use full skip_connections set #1906
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When handling
FindOptimalPeerrequests in small networks, the gateway was only skipping the joiner peer when recommending connections:This caused the gateway to repeatedly recommend itself or peers that the joiner was already connected to, preventing proper peer-to-peer mesh formation.
Example failure scenario:
FindOptimalPeerto GatewaySolution
Use the full
skip_connectionsset that includes all peers the joiner is already connected to:Location:
crates/core/src/operations/connect.rs:199This ensures the gateway only recommends NEW peers that the joiner isn't already connected to.
Background
This fix was originally implemented in commit 24a6b7c (branch
fix/connection-maintenance-skip-list) but was never merged to main. This PR reapplies that critical fix.Testing
✅ All existing connectivity tests pass:
test_gateway_reconnectiontest_basic_gateway_connectivityThe fix enables proper peer discovery in multi-peer networks by ensuring gateways provide useful peer recommendations.
Related Issues
🤖 Generated with Claude Code
[AI-assisted debugging and comment]