Refactor subscription & request management#9
Merged
Conversation
…iting - Add message queuing in Relay (ConcurrentLinkedQueue, cap 50) so messages sent during reconnect windows are delivered on reconnection instead of silently dropped - Replace Thread.sleep in Relay.reconnect() with coroutine delay via injected CoroutineScope - Add RelayPool.awaitAnyConnected() and replace hardcoded delay(2000) in onAppResume() for adaptive reconnection timing - Combine separate reaction (kind 7), zap (kind 9735), and reply count (kind 1) subscriptions into single per-chunk engagement subscription, reducing ~14 subs to ~2 per feed load - Unify quote resolution: fetchQuotedEvents() now routes through requestQuotedEvent() for cross-event dedup, increased debounce to 300ms with flush threshold of 20, and failedQuoteFetches set prevents infinite retries - Add SubscriptionTracker with per-relay soft cap of 10 subs (priority subs bypass), integrated into RelayPool send methods
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.
Summary
Thread.sleepwith coroutinedelayin Relay, addedawaitAnyConnected()to RelayPool replacing hardcodeddelay(2000)inonAppResume()SubscriptionTrackerenforces soft cap of 10 subs per relay (priority subs like feed/dms/notif bypass), integrated into all RelayPool send methodsTest plan