diff --git a/Changelog.md b/Changelog.md index c92d664d..6f70d9d6 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,8 +3,18 @@ Changelog [format](http://keepachangelog.com/en/1.0.0/) +## Trift Bridge 3.4.1 + +### Fixed +* GODT-2859: Trigger user resync while updating from 3.4.0 to 3.4.1. +* GODT-2833: Fix migration of message flags. +* GODT-2759: Use examine rather than select for fetching. + + ## Trift Bridge 3.4.0 +### Added + ### Changed * Test: Add require.Eventually to TestBridge_UserAgentFromSMTPClient. * Test: Add smtp-send utility. @@ -12,32 +22,14 @@ Changelog [format](http://keepachangelog.com/en/1.0.0/) * GODT-2759: Add prompt to download missing messages for analysis. * GODT-2759: CLI debug commands. * Remove gRPC auto-generated C++ source files. -* GODT-2709: Remove the config status file when user is removed. -* GODT-2749: Manual test-windows again. -* GODT-2712: Feed config_status with user action while pending. -* GODT-2715: Add Unitary test for configStatus event. -* GODT-2715: Add Functional test for configStatus telemetry event. -* GODT-2714: Apply PR comments. -* GODT-2714: Set Configuration Status to Failure and send Recovery event when issue is solved. -* GODT-2713: Send config_progress event once a day if the configuration is stucked in pending for more than a day. -* GODT-2711: Send config_abort event on User removal. -* GODT-2710: Send config success on IMAP/SMTP connection.. -* GODT-2716: Make Configuration Statistics persistent. -* GODT-2709: Init Configuration status. -* GODT-2750: Disable raise on main window when a notification is clicked on Linux. -* GODT-2748: Log calls that cause main window to show, with reason. * Test: Force all unit test to use minimum sync spec. * Test: Force sync limits to minimum with env variable. -* GODT-2749: Manual windows-test. * GODT-2691: Close logrus output file on exit. * GODT-2522: New Gluon database layout. -* GODT-2728: Remove the sentry report for gRPC event stream interruptions in bridge-gui. * GODT-2678: When internet is off, do not display status dot icon for the user in the context menu. * GODT-2686: Change the orientation of the expand/collapse arrow for Advanced settings. * Test(GODT-2636): Add step for sending from EML. -* GODT-2707: Set bridge-gui default log level to 'debug'. * Log failed message ids during sync. -* GODT-2705: Added log entries for focus service on client and server sides. * GODT-2510: Remove Ent. * Test(GODT-2600): Changing state (read/unread, starred/unstarred) of a message in integration tests. * GODT-2703: Got rid of account details dialog with Apple Mail autoconf. @@ -45,35 +37,22 @@ Changelog [format](http://keepachangelog.com/en/1.0.0/) * GODT-2690: Update sentry reporting in GUI for new log file naming. * GODT-2668: Implemented new log retention policy. * Test(GODT-2683): Save Draft without "Date" & "From" in headers. -* Merge branch release/stone to devel. * GODT-2666: Feat(GODT-2667): introduce sessionID in bridge. -* Fix linter errors. -* GODT-2653: Log API error details on Message import and send. -* GODT-2674: Add more logs to failed update. * GODT-2660: Calculate bridge coverage and refactor CI yaml file. -* GODT-2674: Add more logs during update failed. * Fix dependency_license script to handle dot formated version. -* Add error logs when messages fail to build during sync. -* GODT-2673: Use NoClient as UserAgent without any client connected and... -* GODT-2655: Display internal build time tag in log and GUI. ### Fixed +* GODT-2812: Fix rare sync deadlock. +* GODT-2822: Better handling 429 during sync and event loop. * GODT-2763: Missing Answered flag on Sync and Message Create. -* GODT-2774: Only check telemetry availability for the current user. -* GODT-2774: Add external context to telemetry tasks. * GODT-2758: Fix panic in SetFlagsOnMessages. -* GODT-2708: Fix dimensions event format + handling of ReportClicked event. * GODT-2578: Refresh literals appended to Sent folder. -* GODT-2756: Fix for 'Settings' context menu opening the 'Help' page. * GODT-2753: Vault test now check that value auto-assigned is first available port. * GODT-2522: Handle migration with unreferenced db values. * GODT-2693: Allow missing whitespace after header field colon. -* GODT-2726: Fix Parsing of Details field in GPA error message. * GODT-2653: Only log when err is not nil. * GODT-2680: Fix for C++ debugger not working on ARM64 because of OpenSSL 3.1. * GODT-2675: Update GPA to applye togin-gonic/gin patch + update COPYING_NOTES. -* GODT-2672: Fix context cancelled when IMAP/SMTP parameters change is in progress. -* GODT-2669: Display sentry ID in bridge init log. ## Stone Bridge 3.3.2 diff --git a/Makefile b/Makefile index d69b53cb..9f44b492 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) .PHONY: build build-gui build-nogui build-launcher versioner hasher # Keep version hardcoded so app build works also without Git repository. -BRIDGE_APP_VERSION?=3.4.0+git +BRIDGE_APP_VERSION?=3.4.1+git APP_VERSION:=${BRIDGE_APP_VERSION} APP_FULL_NAME:=Proton Mail Bridge APP_VENDOR:=Proton AG diff --git a/go.mod b/go.mod index 9c561565..35019c27 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/Masterminds/semver/v3 v3.2.0 github.com/ProtonMail/gluon v0.17.1-0.20230814075013-2bbedb1b61ff github.com/ProtonMail/go-autostart v0.0.0-20210130080809-00ed301c8e9a - github.com/ProtonMail/go-proton-api v0.4.1-0.20230724135423-b7d785347afe + github.com/ProtonMail/go-proton-api v0.4.1-0.20230727082146-c761773c5126 github.com/ProtonMail/gopenpgp/v2 v2.7.1-proton github.com/PuerkitoBio/goquery v1.8.1 github.com/abiosoft/ishell v2.0.0+incompatible diff --git a/go.sum b/go.sum index 859c66d6..23aa2521 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,8 @@ github.com/ProtonMail/go-message v0.13.1-0.20230526094639-b62c999c85b7 h1:+j+Kd/ github.com/ProtonMail/go-message v0.13.1-0.20230526094639-b62c999c85b7/go.mod h1:NBAn21zgCJ/52WLDyed18YvYFm5tEoeDauubFqLokM4= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw= -github.com/ProtonMail/go-proton-api v0.4.1-0.20230724135423-b7d785347afe h1:7gAKAb9qg0ejDc8AAD8+hPozk8+DX2W9zfoZ7Ucmqd0= -github.com/ProtonMail/go-proton-api v0.4.1-0.20230724135423-b7d785347afe/go.mod h1:nS8hMGjJLgC0Iej0JMYbsI388LesEkM1Hj/jCCxQeaQ= +github.com/ProtonMail/go-proton-api v0.4.1-0.20230727082146-c761773c5126 h1:H9/7F5A8IBHIAIYpxLtaD4PeMCnC+f32Wt7bPL9EGcU= +github.com/ProtonMail/go-proton-api v0.4.1-0.20230727082146-c761773c5126/go.mod h1:nS8hMGjJLgC0Iej0JMYbsI388LesEkM1Hj/jCCxQeaQ= github.com/ProtonMail/go-srp v0.0.7 h1:Sos3Qk+th4tQR64vsxGIxYpN3rdnG9Wf9K4ZloC1JrI= github.com/ProtonMail/go-srp v0.0.7/go.mod h1:giCp+7qRnMIcCvI6V6U3S1lDDXDQYx2ewJ6F/9wdlJk= github.com/ProtonMail/gopenpgp/v2 v2.7.1-proton h1:YS6M20yvjCJPR1r4ADW5TPn6rahs4iAyZaACei86bEc= diff --git a/internal/services/imapservice/api_client.go b/internal/services/imapservice/api_client.go index c3b3dbc8..54b3de99 100644 --- a/internal/services/imapservice/api_client.go +++ b/internal/services/imapservice/api_client.go @@ -37,7 +37,7 @@ type APIClient interface { GetMessage(ctx context.Context, messageID string) (proton.Message, error) GetMessageMetadataPage(ctx context.Context, page, pageSize int, filter proton.MessageFilter) ([]proton.MessageMetadata, error) - GetMessageIDs(ctx context.Context, afterID string) ([]string, error) + GetAllMessageIDs(ctx context.Context, afterID string) ([]string, error) CreateDraft(ctx context.Context, addrKR *crypto.KeyRing, req proton.CreateDraftReq) (proton.Message, error) UploadAttachment(ctx context.Context, addrKR *crypto.KeyRing, req proton.CreateAttachmentReq) (proton.Attachment, error) ImportMessages(ctx context.Context, addrKR *crypto.KeyRing, workers, buffer int, req ...proton.ImportReq) (stream.Stream[proton.ImportRes], error) diff --git a/internal/services/imapservice/sync.go b/internal/services/imapservice/sync.go index b92cc9ee..254294ae 100644 --- a/internal/services/imapservice/sync.go +++ b/internal/services/imapservice/sync.go @@ -162,7 +162,7 @@ func (s *syncJob) sync(ctx context.Context) error { s.log.Info("Syncing messages") // Determine which messages to sync. - messageIDs, err := s.client.GetMessageIDs(ctx, "") + messageIDs, err := s.client.GetAllMessageIDs(ctx, "") if err != nil { return fmt.Errorf("failed to get message IDs to sync: %w", err) } diff --git a/internal/user/debug.go b/internal/user/debug.go index 831a2e10..a5f733c2 100644 --- a/internal/user/debug.go +++ b/internal/user/debug.go @@ -140,7 +140,7 @@ func (apm DiagnosticMetadata) BuildMailboxToMessageMap(ctx context.Context, user func (user *User) GetDiagnosticMetadata(ctx context.Context) (DiagnosticMetadata, error) { failedMessages := xmaps.SetFromSlice(user.vault.SyncStatus().FailedMessageIDs) - messageIDs, err := user.client.GetMessageIDs(ctx, "") + messageIDs, err := user.client.GetAllMessageIDs(ctx, "") if err != nil { return DiagnosticMetadata{}, err }