Repository navigation
fix(mobile): keep relay sessions stable during push lease updates (upstream #7745) - #208
Merged
Merged
Conversation
…ock#7745) Enabling push notifications could repeatedly reset the relay session: reserving a lease generation updates community metadata, which rebuilt the relay configuration even though the connection identity was unchanged. This made the avatar and inbox flash and prevented the new lease from publishing. Select only the community ID, relay URL, and signing identity as configuration dependencies. Push bookkeeping keeps the session intact; real community, URL, and identity changes still notify listeners. ### Validation The production-provider regression test failed before the fix and passes afterward; 48 focused mobile tests and static analysis pass. A personal signed profile build on a physical iPhone published a fresh lease and received a background notification with the actual message text. The user confirmed the flashing stopped and tapping the notification opened the correct community/channel and highlighted the exact message. Signed-off-by: Tom Brow <[email protected]> (cherry picked from commit 4af2324)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
RossHartmann
pushed a commit
that referenced
this pull request
Oct 17, 2026
…am-60de1db0 Conflict resolutions: - iOS Xcode 27 picks (#199) and the block#7745 backport (#208) are upstream commits already in the 97e1f6a snapshot: take the sync side for every #199 path and drop both drop/upstream-present deltas. - deny.toml: keep upstream's ignores and main's RUSTSEC-2026-0367/0368/0369; the sync tree pulls zip 8.6.0 via mesh-llm v0.76.2, re-audited: plugin manager and autoupdate still never call extract() and write plain files. - Message Details (#205): desktop composes the host ref with the right-click root ref; mobile adds Details to upstream's grouped action sheet (the popover was removed upstream in block#8280) with a Tabler info-circle icon; retired-notice filtering passes agentPubkeys at upstream's new formatTimeline call sites. - Hosted agents (#201): Lucide icons -> BuzzIcons (lucide removed upstream). - Inventory: sync inventory plus main's new deltas (remote signer, guest alert Review, Message Details) and the merged hosted-agents delta paths. Co-Authored-By: Claude Opus 5.5 <[email protected]>
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.
Backports upstream block/buzz 4af2324 (block#7745) unchanged, with the original authorship kept and
-xattribution.Problem seen in production (2026-10-17): After Ross turned on push in TestFlight build 1, his relay session went into a reconnect loop: connect, NIP-42 auth, close about 1.5s later, roughly every 2s. The kind-30350 lease never reached the relay, so
push_leaseshas 0 rows. This happens because reserving a lease generation updates the community, andRelayConfigNotifierwatched the whole active community, so every update rebuilt the relay session and killed the publish that was in flight.Fix (upstream): The relay config now selects only the community's id, relay URL and nsec. Upstream's regression test comes with it.
Fork inventory: Adds a
drop/upstream-presentdelta covering both paths, plus the budget amendmentupstream-7745-relay-session-stable: modified upstream files go from 275 to 276, and the production-source budgets are unchanged.scripts/check-kiingo-fork-boundary.mjspasses.Tests run in CI only.
🤖 Generated with Claude Code