Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP - Inbox Model Improvements #74

Draft
wants to merge 9 commits into
base: master
Choose a base branch
from
Draft

WIP - Inbox Model Improvements #74

wants to merge 9 commits into from

Conversation

prolic
Copy link
Collaborator

@prolic prolic commented Feb 5, 2025

  • Reduce maxRelaysPerContact from 3 to 2
  • Improve relay selection logic to better balance between shared and unique relays
  • When both shared and unique relays exist, select 1 shared + remaining unique
  • Maintain maxRelaysPerContact limit while prioritizing relay diversity
  • optimize relay selection for contacts

should resolve #66 when done

major subscription and relay management overhaul

  • Move subscription handling to dedicated SubscriptionHandler module
  • Add pagination support for subscriptions
  • Improve relay connection reliability with fallbacks and rebalancing
  • Refactor subscription state management and event processing
  • Add random relay selection from default pools
  • Fix PTag parsing to handle all tag variants
  • Move Main.hs to app/ directory

@prolic prolic changed the title optimize relay selection for contacts WIP - Inbox Model Improvements Feb 6, 2025
- Reduce maxRelaysPerContact from 3 to 2
- Improve relay selection logic to better balance between shared and unique relays
- When both shared and unique relays exist, select 1 shared + remaining unique
- Maintain maxRelaysPerContact limit while prioritizing relay diversity
Giftwrap events (encrypted DMs) should only be subscribed to on DM relays,
not inbox relays. Replace with appropriate subscriptions for mentions and
profile/post data.
- excludes failed relays within last N days
- Add connectWithFallback helper to handle relay connection failures
- Cache relay lists to reduce LMDB calls using getRelayListsForPubkeys
- Simplify buildRelayPubkeyMap to only use inbox relays as last resort
- Move subscription handling to dedicated SubscriptionHandler module
- Add pagination support for subscriptions
- Improve relay connection reliability with fallbacks and rebalancing
- Refactor subscription state management and event processing
- Add random relay selection from default pools
- Fix PTag parsing to handle all tag variants
- Move Main.hs to app/ directory
- Simplify subscription handling by removing redundant parameters
- Add pagination limits based on number of pubkeys
- Fix subscription cleanup to prevent premature state removal
- Use maximum timestamp instead of minimum for better event ordering
- Add proper handling of subscription state during relay updates
- Fix hasOtherSubs check in DM subscriptions
… type:

- Replace Tag constructors (ETag, PTag, etc) with list-based tags per NIP-01
- Move types into dedicated modules (Event, Profile, Relay)
- Update tag parsing/generation throughout codebase
- Simplify root/reply reference handling in UI
Improve relay connection state management, fix parsing of OK messages,
update follow list and DM relay parsing, and add proper nevent links
to quote reposts.
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.

User's feed is incomplete
1 participant