session-ios icon indicating copy to clipboard operation
session-ios copied to clipboard

libQuic integration via libSession

Open mpretty-cyro opened this issue 10 months ago • 1 comments

The main changes in the PR are around reworking the majority of the networking to be run via libQuic:

  • Updated the code to use libQuic for network requests
  • Moved the snode cache and path building into libSession (deleted associated logic)
  • Moved reachability detection into libSession (remove Reachability dependency)

But it also includes a number of general fixes:

  • Added logic to include logs from the Notification & Share extension within the device logs to help debugging when they are shared
  • Added the ability to define a unique hash for a job for deduplication
  • Updated CI scripts to more properly clean up simulator
  • Updated a number of errors to be more easily converted to strings
  • Updated the app versioning to be at the project level instead of target level
  • Updated GRDB and SQLCipher
  • Reworked the keyboard avoidance in ConversationVC to fix some bugs and simplify the behaviour
  • Tweaked the polling logic to split the user, groups and community pollers into separate queues
  • Tweaked the logic to restart the open group poller immediately after joining a community (to avoid an edge-case where there could be a long delay before the initial poll is made)
  • Tweaked the logic for checking if PNs are susceptible to failure to only dispatch to the main thread once
  • Moved the message request footer UI into it's own view
  • Moved the ThreadSettingsViewModel code into a separate function to fix a compilation issue
  • Removed the session id from the message snippet in the conversation list
  • Cleaned up some warnings
  • Fixed an issue where the DisappearingMessagesJob was getting run for every individual message process instead of just once after processing all messages from a poll
  • Fixed a bug where community invite messages have the wrong author
  • Fixed a bug where the title on the disappearing messages settings screen was clipping vertically
  • Fixed a bug where tapping on the disappearing messages setting subtitle could incorrectly appear in read-only state for admins
  • Fixed a log which contained notification content
  • Fixed a log that could be thrown incorrectly for a unique constraint failure
  • Fixed an annoying startup warning due to thread priorities
  • Fixed an issue where the message status wouldn't update to the failed state if the MessageSendJob timed-out
  • Fixed an issue where network issues could result in a backlog of TypingIndicator messages that failed to send (don't bother retrying them)
  • Fixed an issue where concurrent jobs might not retry correctly if other jobs don't complete or the retry was triggered from the wrong queue
  • Fixed an issue where the input view could disappear in some cases

mpretty-cyro avatar Apr 04 '24 02:04 mpretty-cyro

Codecov Report

Attention: Patch coverage is 32.35294% with 2139 lines in your changes are missing coverage. Please review.

Project coverage is 12.28%. Comparing base (5735d48) to head (021d05d). Report is 14 commits behind head on dev.

:exclamation: Current head 021d05d differs from pull request most recent head 444655f. Consider uploading reports for the commit 444655f to get more accurate results

Files Patch % Lines
...ionSnodeKit/LibSession/LibSession+Networking.swift 25.82% 224 Missing :warning:
... Receiving/Notifications/PushNotificationAPI.swift 0.00% 139 Missing :warning:
...sagingKit/Sending & Receiving/Pollers/Poller.swift 0.00% 128 Missing :warning:
...nversations/Settings/ThreadSettingsViewModel.swift 70.39% 127 Missing :warning:
...ions/Views & Modals/MessageRequestFooterView.swift 0.00% 112 Missing :warning:
Session/Conversations/ConversationVC.swift 0.00% 110 Missing :warning:
...erviceExtension/NotificationServiceExtension.swift 0.00% 99 Missing :warning:
...agingKit/Sending & Receiving/MessageReceiver.swift 46.75% 82 Missing :warning:
...it/LibSession/LibSession+SessionMessagingKit.swift 14.60% 76 Missing :warning:
...eKit/Networking/PreparedRequest+OnionRequest.swift 32.00% 68 Missing :warning:
... and 98 more
Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #960      +/-   ##
==========================================
+ Coverage   11.62%   12.28%   +0.65%     
==========================================
  Files         649      651       +2     
  Lines       96950    96623     -327     
==========================================
+ Hits        11268    11866     +598     
+ Misses      85682    84757     -925     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Apr 07 '24 23:04 codecov[bot]