Commit Graph

110 Commits (2.7.1)

Author SHA1 Message Date
Morgan Pretty 2032dafc74 Merge remote-tracking branch 'upstream/dev' into feature/swift-package-manager
# Conflicts:
#	SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+ExpirationTimers.swift
#	SessionMessagingKit/Sending & Receiving/MessageReceiver.swift
#	SessionSnodeKit/Networking/SnodeAPI.swift
#	SessionUtilitiesKit/Media/DataSource.h
#	SessionUtilitiesKit/Media/DataSource.m
8 months ago
Morgan Pretty 25c1fb6b45 Fixed the unit tests 8 months ago
Morgan Pretty ce01f128f3 Replaced Cocoapods with Swift Package Manager for dependency management 8 months ago
Morgan Pretty 2098cb32dd Number of fixes and tweaks related to the deadlock issue
• Fixed some cases where errors weren't being displayed correctly
• Tweaked the "nodeNotFound" error to be a bit more human readable
• Tweaked the BackgroundPoller timeout to have a 5 second buffer instead of a 1 second buffer
• Moved the lastHash pruning into the GarbageCollectionJob instead of the pre-poll fetching to avoid needing to use a write query before polling
• Reworked the Pollers to make their database queries part of the polling stream (and as such, cancellable)
8 months ago
Morgan Pretty d4e66dde14 Fixed a few more issues found during testing
• Fixed an issue where the conversation 'created' timestamp wasn't correctly getting set when creating a group
• Fixed an issue where sending a message to 'Note to Self' may not show the conversation in the conversation list
• Fixed an issue where sharing a message with an attachment might not include the attachment
• Fixed an issue where list paging wouldn't work in some cases after values were inserted into the database after the currently loaded pages
• Added some handling for invalid 'joinedAt' values for groups (seems like we can have an incorrect resolution)
8 months ago
Morgan Pretty 1fd65230b7 Fixed the broken unit tests
• Added a method to customise mock parameter summaries for unit tests
• Pulled across the updated libSession cache logic
9 months ago
Morgan Pretty a5095b5965 Fixed remaining broken unit tests 10 months ago
Morgan Pretty 999ddfe50e Made a couple of tweaks to make the build process easier
• Added a script to extract the app group during the build and load it in at runtime (fallback to the current one)
• Updated the 'App Store Release' scheme to 'App_Store_Release' to fix build issues on some machines
• Fixed some broken unit tests
10 months ago
Morgan Pretty a91024f0bb Separate streams for attachment upload/download and bug fixes
• Updated the code to stop sending legacy PNs outside of legacy group conversations
• Updated the logger logic to clean things up and use the local date/time (with time zone info) to ease debugging user reports
• Fixed an issue where messages in a community could incorrectly accept disappearing message settings
• Fixed an issue where duplicate messages could be sent in some cases
• Fixed an issue where the conversation might not scroll to the bottom after sending an attachment
• Fixed an issue where attachment encryption was happening in a db write thread
10 months ago
Morgan Pretty f2299b74f4 Tweak for a test which behaves inconsistently 10 months ago
Morgan Pretty b0eec5a4c2 Updated to the latest libSession and updated it's error handling 10 months ago
Morgan Pretty f9d9954cf5 Attempts to fix more crashes and fix unit tests
• Fixed an index out of bounds issue with the mnemonic
• Attempt to fix a crash due to failing to hash SignalAttachment
• Attempt to fix a crash due to list data change inconsistencies
• Ensuring we are shutting down the network when resetting app data
• Updated the broken unit tests
11 months ago
Morgan Pretty dd5716e831 Initial work on 2.6.0 issues
• Fixed an issue where voice messages wouldn't stop playing when deleting a message or leaving a conversation
• Fixed an issue where the notification extension was handling errors and finishing while within a database transaction
• Fixed an issue where the ShareExtension may not have been able to send LinkPreviews
• Fixed an issue where displaying or logging the paths weren't maintaining the correct order
• Tweaked some of the logging behaviours
11 months ago
Morgan Pretty 4b4c69a533 Fixed broken unit tests, tweak to CI script 11 months ago
Morgan Pretty 9491b4a97b Fixed a crash and config issue
• Fixed a bad memory crash which could occur when returning from the background
• Fixed an issue where config messages were incorrectly getting double wrapped in protobuf wrappers
11 months ago
Morgan Pretty c6c2881338 Reworked the libSession network to be instance based
• 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
• 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
• Cleaned up some warnings
• Updated the app versioning to be at the project level instead of target level
• Added the ability to define a unique hash for a job for deduplication
12 months ago
Morgan Pretty c065abc584 Cleaned up a bunch of warnings, renamed a couple of folders 1 year ago
Morgan Pretty 097f9c2903 Fixed scheme and SessionSnodeKitTest runs 1 year ago
Morgan Pretty 9833ac91de Fixed the broken unit tests 1 year ago
Morgan Pretty 7eb7eda74e [WIP] Cleaned up interface, error handling and redundant code 1 year ago
Morgan Pretty 1ee4c29a16 [WIP] Pulling in a bunch of changes around request management 1 year ago
Morgan Pretty 756e256d9a Moving libSession into SessionUtilitiesKit to expose it to other targets 1 year ago
Morgan Pretty 661720a988 Merge remote-tracking branch 'upstream/dev' into disappearing-message-redesign
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Meta/Translations/ar.lproj/Localizable.strings
#	Session/Meta/Translations/be.lproj/Localizable.strings
#	Session/Meta/Translations/bg.lproj/Localizable.strings
#	Session/Meta/Translations/bn.lproj/Localizable.strings
#	Session/Meta/Translations/cs.lproj/Localizable.strings
#	Session/Meta/Translations/da.lproj/Localizable.strings
#	Session/Meta/Translations/de.lproj/Localizable.strings
#	Session/Meta/Translations/el.lproj/Localizable.strings
#	Session/Meta/Translations/en.lproj/Localizable.strings
#	Session/Meta/Translations/eo.lproj/Localizable.strings
#	Session/Meta/Translations/es-ES.lproj/Localizable.strings
#	Session/Meta/Translations/fa.lproj/Localizable.strings
#	Session/Meta/Translations/fi.lproj/Localizable.strings
#	Session/Meta/Translations/fil.lproj/Localizable.strings
#	Session/Meta/Translations/fr.lproj/Localizable.strings
#	Session/Meta/Translations/hi.lproj/Localizable.strings
#	Session/Meta/Translations/hr.lproj/Localizable.strings
#	Session/Meta/Translations/hu.lproj/Localizable.strings
#	Session/Meta/Translations/id.lproj/Localizable.strings
#	Session/Meta/Translations/it.lproj/Localizable.strings
#	Session/Meta/Translations/ja.lproj/Localizable.strings
#	Session/Meta/Translations/ko.lproj/Localizable.strings
#	Session/Meta/Translations/ku.lproj/Localizable.strings
#	Session/Meta/Translations/lt.lproj/Localizable.strings
#	Session/Meta/Translations/lv.lproj/Localizable.strings
#	Session/Meta/Translations/ne-NP.lproj/Localizable.strings
#	Session/Meta/Translations/nl.lproj/Localizable.strings
#	Session/Meta/Translations/no.lproj/Localizable.strings
#	Session/Meta/Translations/pl.lproj/Localizable.strings
#	Session/Meta/Translations/pt-BR.lproj/Localizable.strings
#	Session/Meta/Translations/pt-PT.lproj/Localizable.strings
#	Session/Meta/Translations/ro.lproj/Localizable.strings
#	Session/Meta/Translations/ru.lproj/Localizable.strings
#	Session/Meta/Translations/si-LK.lproj/Localizable.strings
#	Session/Meta/Translations/sk.lproj/Localizable.strings
#	Session/Meta/Translations/sl.lproj/Localizable.strings
#	Session/Meta/Translations/sv-SE.lproj/Localizable.strings
#	Session/Meta/Translations/th.lproj/Localizable.strings
#	Session/Meta/Translations/tr.lproj/Localizable.strings
#	Session/Meta/Translations/uk.lproj/Localizable.strings
#	Session/Meta/Translations/vi.lproj/Localizable.strings
#	Session/Meta/Translations/zh-CN.lproj/Localizable.strings
#	Session/Meta/Translations/zh-TW.lproj/Localizable.strings
#	SessionMessagingKit/Configuration.swift
#	SessionUtilitiesKit/Database/Storage.swift
1 year ago
Morgan Pretty c74d9a89f5 Fixed broken tests 1 year ago
Morgan Pretty 90cd3fb5e0 Merge remote-tracking branch 'upstream/dev' into disappearing-message-redesign
# Conflicts:
#	_SharedTestUtilities/MockJobRunner.swift
2 years ago
Morgan Pretty 42b49e0227 Added unit tests to verify migrations between all versions work
Fixed a busted test import
2 years ago
Morgan Pretty 5b7c9d866c Updated the 'MessageReceiverDisappearingMessagesSpec' to the updated pattern 2 years ago
Morgan Pretty c4aadaff1c Fixed the broken tests and updated test dependencies
Properly fixed the busted migration issue
Updated to the latest version of Quick and Nimble (unit testing libraries)
Updated the tests based on the above
2 years ago
Morgan Pretty 9c9fb09254 Merge remote-tracking branch 'upstream/dev' into feature/blinded-message-request-setting
# Conflicts:
#	SessionMessagingKit/Configuration.swift
2 years ago
Morgan Pretty d863004e6d Added a setting to control community message request polling
Added logic to broadcast the community message request acceptance to SOGS so we can communicate it to message request senders
Fixed an issue where database setting changes wouldn't trigger a live update on a settings screen
Fixed an issue where some setting toggles wouldn't animate the state change
Fixed a rarw force-unwrap crash
2 years ago
Morgan Pretty a41f1c1366 Fixed the broken tests
Cleaned up the Dependencies so that tests can run synchronously without having to custom set queues as much
Sorted out the crypto and network dependencies to avoid needing weird dependency inheritance
Fixed the flaky tests so they are no longer flaky
Fixed some unexpected JobRunner behaviours
Updated the CI config to use a local build directory for derivedData (now works with build tweaks)
2 years ago
Morgan Pretty e768bebe6d Merge remote-tracking branch 'upstream/dev' into feature/job-runner-unit-tests
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Meta/Session-Prefix.pch
#	Session/Notifications/SyncPushTokensJob.swift
#	Session/Utilities/BackgroundPoller.swift
#	SessionMessagingKit/Configuration.swift
#	SessionMessagingKit/Database/Models/Profile.swift
#	SessionMessagingKit/Jobs/Types/AttachmentDownloadJob.swift
#	SessionMessagingKit/Jobs/Types/AttachmentUploadJob.swift
#	SessionMessagingKit/Jobs/Types/DisappearingMessagesJob.swift
#	SessionMessagingKit/Jobs/Types/FailedAttachmentDownloadsJob.swift
#	SessionMessagingKit/Jobs/Types/FailedMessageSendsJob.swift
#	SessionMessagingKit/Jobs/Types/GroupLeavingJob.swift
#	SessionMessagingKit/Jobs/Types/MessageReceiveJob.swift
#	SessionMessagingKit/Jobs/Types/MessageSendJob.swift
#	SessionMessagingKit/Jobs/Types/NotifyPushServerJob.swift
#	SessionMessagingKit/Jobs/Types/RetrieveDefaultOpenGroupRoomsJob.swift
#	SessionMessagingKit/Jobs/Types/SendReadReceiptsJob.swift
#	SessionMessagingKit/Jobs/Types/UpdateProfilePictureJob.swift
#	SessionMessagingKit/Sending & Receiving/MessageSender.swift
#	SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift
#	SessionMessagingKit/Utilities/AppReadiness.m
#	SessionMessagingKitTests/Open Groups/OpenGroupManagerSpec.swift
#	SessionMessagingKitTests/_TestUtilities/TestOnionRequestAPI.swift
#	SessionShareExtension/ShareNavController.swift
#	SessionSnodeKit/Jobs/GetSnodePoolJob.swift
#	SessionUtilitiesKit/Configuration.swift
#	SessionUtilitiesKit/Database/Utilities/Database+Utilities.swift
#	SessionUtilitiesKit/JobRunner/JobRunner.swift
#	SignalUtilitiesKit/Meta/SignalUtilitiesKit.h
#	SignalUtilitiesKit/Utilities/SSKAsserts.h
2 years ago
Morgan Pretty 703b1d9788 CI tweaks and tweak for initial UX issue with 'blinded25' id
Added parallelisation for the unit tests
Added the SSH_KEY env variable for the 'Upload artifacts' step
Disabled xcbeautify for the prod build (as I expect it's suppressing the build error)
Disabled support for starting a conversation with a 'blinded25' id (would be invalid at this stage)
Fixed a broken unit test
2 years ago
Morgan Pretty c86cc0ed9c CI tweaks and incremented build number
Added the XCBeautify pod (so the CI doesn't need to separately install something)
Updated the CI build script to use XCBeautify
Fixed some broken unit tests
2 years ago
Morgan Pretty 43b2aaf8bb Trying to progress on the CI builds
Reworked the way libSession-util builds to use a static library and be less hacky
Updated to the latest version of WebRTC-lib (no longer includes bitcode)
Removed the 'skip_web_rtc_re_rsync' patch as it's no longer an issue since the bitcode was removed so the framework is much smaller
2 years ago
Morgan Pretty 6f4bdcdccb Moved some logic outside of DBWrite closures to prevent hangs
Updated the SessionApp.presentConversation function from using the DBWrite thread if it didn't need to
Updated the PagedDatabaseObserver to process database commits async on a serial queue to avoid holding up the DBWrite thread
Moved another Atomic mutation outside of a DBWrite closure
Refactored the PagedDatabaseObserver 'databaseDidCommit' logic to be much more straightforward
Tweaked a couple of flaky unit tests
2 years ago
Morgan Pretty 0225f436bd Podfile tweaks to speed up sim builds, unit tests & minor bug fix
Added a patch to the Podfile to avoid rsync'ing and signing WebRTC-lib for simulator builds shaving off 10+ seconds of build time per target due to the sheer size of the WebRTC debug framework
Added some basic unit tests to validate the current search behaviour
Fixed some buggy search behaviours
2 years ago
Morgan Pretty 5e2e103ee1 Resolved the remaining known internal testing issues
Removed the 'immediatelyOnMain' extensions as they would break in some cases (eg. upstream errors with multiple 'receive(on:)' calls) resulting in logic running on unexpected threads
Updated the ReplaySubject to add subscribers in an Atomic just to be safe
Updated the code to remove the invalid open group when the user receives an error after joining
Fixed a bug with editing closed group members
Fixed broken unit tests
2 years ago
Morgan Pretty 6cf7cc42ab Fixed up the remaining reported internal testing issues
Removed the 'readPublisherFlatMap/writePublisherFlatMap' functions as they easily resulted in behaviours which held up database threads
Tweaked the logic around starting the open group pollers to avoid an unlikely atomic lock blocks
Updated some logic to avoid accessing database read threads for longer than needed
Updated the OpenGroupManager to only update the 'seqNo' value for valid messages
Cleaned up some double Atomic wrapped instances which had some weird access behaviours
Fixed an issue where a database read thread could have been started within a database write thread
Fixed an issue where the ReplaySubject might not emit values in some cases
2 years ago
Morgan Pretty d8ae9669c8 Fixed a breaking issue and a few other minor bugs
Fixed a busted version comparison
Fixed an issue where the config dump population wasn't setting the 'created' timestamp for contacts
Fixed an issue where the 'SyncPushTokensJob' could run logic on the wrong thread
Fixed a bug where the 'scroll to bottom' button wouldn't initial be visible in some cases
Fixed a bug where the 'scroll to bottom' button would fade out when there were subsequent pages
Fixed a bug where an open group image might not get downloaded in some cases
Fixed an issue where we would incorrectly append a wildcard character to the end of a search term that ended in a quotation mark
Finished refactoring the OpenGroupAPI to use PreparedSendData
2 years ago
Morgan Pretty 53a5db0ea5 Fixed a number of issues found during internal testing
Added copy for an unrecoverable startup case
Added some additional logs to better debug ValueObservation query errors
Increased the pageSize to 20 on iPad devices (to prevent it immediately loading a second page)
Cleaned up a bunch of threading logic (try to avoid overriding subscribe/receive threads specified at subscription)
Consolidated the 'sendMessage' and 'sendAttachments' functions
Updated the various frameworks to use 'DAWRF with DSYM' to allow for better debugging during debug mode (at the cost of a longer build time)
Updated the logic to optimistically insert messages when sending to avoid any database write delays
Updated the logic to avoid sending notifications for messages which are already marked as read by the config
Fixed an issue where multiple paths could incorrectly get built at the same time in some cases
Fixed an issue where other job queues could be started before the blockingQueue finishes
Fixed a potential bug with the snode version comparison (was just a string comparison which would fail when getting to double-digit values)
Fixed a bug where you couldn't remove the last reaction on a message
Fixed the broken media message zoom animations
Fixed a bug where the last message read in a conversation wouldn't be correctly detected as already read
Fixed a bug where the QuoteView had no line limits (resulting in the '@You' mention background highlight being incorrectly positioned in the quote preview)
Fixed a bug where a large number of configSyncJobs could be scheduled (only one would run at a time but this could result in performance impacts)
2 years ago
Morgan Pretty 5db254303a Removed the wip pruning logic (no longer needed)
Fixed broken unit tests
2 years ago
Morgan Pretty f07313c7ac Fixed a number of bugs found during internal testing
Updated to the latest libSession to increase the available size for config message content (size check now happens after compression rather than before)
Added some additional logs for config size info
Fixed a bug where the database could be accessed before the migrations ran which could result in unexpected behaviours
Fixed a bug where you couldn't mark a non one-to-one thread as read/unread
Fixed a bug where a database initialization failure wouldn't result in a migration failure (user would be stuck on the splash screen indefinitely)
Fixed a bug where if a message was too large for the screen the conversation would open it centered on the screen (now it will be positioned to the top)
Started looking at broken unit tests
Increased the build number
2 years ago
Morgan Pretty d2c82cb915 Started working on some config contact pruning logic
Added support for a ConfirmationModal with an input field
Added a mechanism on Debug builds to export the database and it's key
Added logic to catch exceptions thrown within libSession (need to actually plug it in)
Added a debug-only mechanism to export the users database and (encrypted) database key
Added a few unit tests to check the CONTACTS config message size constraints
2 years ago
Morgan Pretty 8c8453d922 Updated to the latest libSession, fixed remaining items
Updated to the latest libSession version
Updated the 'hidden' logic to be based on a negative 'priority' value
Added an index on the Quote table to speed up conversation query
Fixed an odd behaviour with GRDB and Combine (simplified the interface as well)
Fixed an issue where migrations could fail
2 years ago
Morgan Pretty ffdc59b704 Fixed a few issues with the JobRunner
Updated the JobRunner to support dependency injection
Updated the DataExtractionNotification to take a 'sentTimestamp' when created to reduce the chance for duplicates being sent
Fixed an issue where checking current and pending jobs wasn't including blocking jobs
Fixed an issue where the 'hasPendingOrRunningJob' check didn't actually include running jobs
Fixed some odd behaviours with job dependencies
Fixed an incorrect failure count check
2 years ago
Morgan Pretty 1334a64031 Removed usages of Box.KeyPair, removed a TODO 2 years ago
Morgan Pretty 7ee84fe0d3 Cleaned up a bunch of code, added pinned and hidden handling
Added in logic to handle the 'hidden' state
Replaced the 'Group Created' message with an empty state
Cleaned up a bunch of boilerplate code
2 years ago
Morgan Pretty 8eed08b5b4 Updated to the latest lib, started handling UserGroups
Added unit tests for the UserGroup config type
Updated the logic to use the 'pinnedPriority' and deprecated 'isPinned' (not sorting yet but using the value)
Updated the code to use the libSession community url parsing instead of custom parsing
Fixed an issue where initialising Data with a libSession value wasn't returning null when the data had no actual value
Fixed an issue where the OpenGroupPoller could user an incorrect failure could when handling poll responses
Fixed the UpdateExpiryRequest signature
2 years ago
Morgan Pretty c8a199a8ba Fixed the remaining broken tests 2 years ago