fix: emit self:peer:update on observed address removal#3483
Merged
tabcat merged 4 commits intolibp2p:mainfrom Apr 29, 2026
Merged
fix: emit self:peer:update on observed address removal#3483tabcat merged 4 commits intolibp2p:mainfrom
tabcat merged 4 commits intolibp2p:mainfrom
Conversation
Demonstrates that removeObservedAddr does not invoke _updatePeerStoreAddresses, so self:peer:update never fires when an address becomes unreachable. Fix follows in a separate commit. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Mirrors the pattern in confirmObservedAddr so _updatePeerStoreAddresses runs when a previously verified address is removed, allowing self:peer:update to fire. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
dozyio
reviewed
Apr 28, 2026
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
dozyio
approved these changes
Apr 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
AddressManager.removeObservedAddrhad inverted polarity vs.confirmObservedAddr:startingConfidencewas initialised tofalse,the inner guards used the wrong sign, and the final check was negated.
_updatePeerStoreAddresses()was never invoked from the removal path.Effect: callers that mark an address unreachable —
packages/protocol-autonat-v2/src/client.ts,packages/protocol-autonat/src/autonat.ts,packages/transport-circuit-relay-v2/src/transport/listener.ts—removed the address from internal state but never patched the peer
store, so
self:peer:updatedid not fire and downstream consumers(DHT mode switching, identify-push, application subscribers) could not
react.
Fix mirrors the polarity used by
confirmObservedAddr.Notes & open questions
Change checklist