proton-bridge/Changelog.md

112 KiB

Proton Mail Bridge Changelog

Changelog format

Zaehringen Bridge 3.10.0

Added

  • GODT-3199: Add package log field.
  • GODT-3220: Add more test scenarios.

Changed

  • GODT-3193: Preserve attachment encoding.
  • GODT-3214: Encrypt only with primary key.
  • GODT-2662: Use tart runner for darwin jobs.
  • GODT-1602: Test: run integration tests against black 🖤.
  • GODT-3257: Test: quad9 provider test not working on CI.

Fixed

  • GODT-3290: Fix test failing because of leap day.

Ypsilon Bridge 3.9.1

Fixed

  • GODT-3235: Update bridge update key.

Ypsilon Bridge 3.9.0

Added

  • GODT-3230: Scripts for removing Bridge from device.
  • GODT-3195: Add OS info to the log.
  • GODT-3156: Add time zone info to the bridge log.
  • GODT-3162: Test: Add test scenarios for KB article suggestions.
  • Test: Add scenarios for checking messages sent from Web Client.
  • GODT-3162: Test: Add step definition for checking KB article suggestions.

Changed

  • GODT-3160: Bump version Go 1.21.6.
  • GODT-3160: Load pipeline env from bridge internal.
  • GODT-3052: Test: Replace attachments and inline content in feature tests with the smallest valid versions.
  • GODT-3155: Customize log formatter for easier parsing.
  • GODT-3172: Detect missing keychain item.
  • GODT-3172: Do not list, just retrieve vault key.
  • Log the message received time when handling message creation event.
  • Set log as artefact for all integration test.
  • Get better logging arround keychain list initialisation.

Fixed

  • GODT-3229: Escape reserved XML characters in Apple configuration profile.
  • GODT-3228: Get rid of fork of docker-credential-helpers.
  • GODT-3176: Assume inline if content id is present.
  • GODT-3160: Ignore non-called vulnerabilities.
  • GODT-3160: Updated external dependencies reported by govulncheck.
  • GODT-3203: Crash in chunkDivide.
  • Fix for SMTP connection mode toggle in bridge-gui-tester.
  • GODT-3183: Fix database indices.
  • GODT-3187: Fix numberOfDay computation when changing year and day.
  • GODT-3188: Happy new year.

Xikou Bridge 3.8.2

Fixed

  • GODT-3235: Update bridge update key.

Xikou Bridge 3.8.1

Added

  • GODT-3121: Suggest relevant KB articles in the in-app bug report form.
  • GODT-2001: Add govulncheck to scan for vulnerabilities.

Changed

  • Keep nighlty-job log as artifact.
  • Test: Improve TestMetadata_JobCorrectlyFinishesAfterCancel.

Fixed

  • GODT-3153: Do not take into account full address when hasing messages.

Xikou Bridge 3.8.0

Added

  • Test: Add test scenarios to add an /Answered flag to a replied message and revert.
  • GODT-3046: Added links to KB in error messages.
  • Test(GODT-3113): Inline HTML message and HTML attachment is getting altered.
  • Test(GODT-3124): Attempt to fix 401 during login.

Changed

  • GODT-3134: Br tag triggers installer.
  • Added update events to bridge GUI tester.

Fixed

  • GODT-3142: Pass br tag if available.
  • GODT-3151: Fix feature test with non modified HTML part.
  • GODT-3151: Only modify HTML Meta content if UTF-8 charset override is needed.
  • GODT-2851: Add empty text part if no text part when importing multipart.
  • GODT-3102: Distinguish Vault Decryption from Serialization Errors.
  • GODT-3124: Handling of sync child jobs.
  • GODT-3148: Bump go-sysinfo to get rid of linker warning on macOS Sonoma.
  • GODT-3124: Flaky tests.
  • GODT-3022: Handle multipart/related on fake server.
  • GODT-3133: Fix GetSystemLanguage.
  • GODT-3124: Race condition in sync task waiter.
  • GODT-3124: Race conditions reported by race check.
  • GODT-2797: Encode attached key name and use same pubkey name as web-app.
  • Fix case of IMAP login error.
  • GODT-3132: Do not allow sending on disabled accounts.
  • GODT-3046: fix typo spotted during KB article review.
  • GODT-3129: Bad Event during after address order change.
  • GODT-3117: Improve GetAllContacts and GetAllContactsEmail.

Wakato Bridge 3.7.1

Added

  • Test(GODT-2740): Sending Plain text messages to internal recipient.
  • Test(GODT-2892): Create fake log file.
  • GODT-3122: Added test, changed interface for accessing display name.

Changed

  • Remove debug prints.
  • GODT-2576: Forward and $Forward Flag Support.
  • GODT-3053: Use smaller bridge window on small screens.
  • GODT-3113: Only force UTF-8 charset for HTML part when needed.
  • GODT-3113: Do not render HTML for attachment.
  • GODT-3112: Replaced error message when bridge exists prematurely. Added a link to support form.
  • GODT-2947: Remove 'blame it on the weather' error part from go-smtp.
  • GODT-3010: Log MimeType parsing issue.
  • GODT-3104: Added log entry for cert install status on startup on macOS.
  • GODT-2277: Move Keychain helpers creation in main.

Fixed

  • GODT-3054: Only delete drafts after message has been Sent.
  • GODT-2576: Correctly handle Forwarded messages from Thunderbird.
  • GODT-3122: Use display name as 'Email Account Name' in macOS profile.
  • GODT-3125: Heartbeat crash on exit.
  • GODT-2617: Validate user can send from the SMTP sender address.
  • GODT-3123: Trigger bad event on empty EventID on existing accounts.
  • GODT-3118: Do not reset EventID when migrating sync settings.
  • GODT-3116: Panic on closed channel.
  • GODT-1623: Throttle SMTP failed requests.
  • GODT-3047: Fixed 'disk full' error message.
  • GODT-3054: Delete draft create from reply.
  • GODT-3048: WKD Policy behavior.

Wakato Bridge 3.7.0

Added

  • Test(GODT-1224): Add testing around package creation.
  • Add debug_assemble binary.
  • Test(GODT-2723): Add importing a message with remote content.
  • Test(GODT-2737): Sending HTML messages to internal.
  • Test(GODT-3036): Keep inline attachment order on GPA Fake Server.
  • GODT-3015: Add simple algorithm to deal with multiple attachment for bug report.
  • Test: make message structure check more verbose.
  • Test: Add test around account settings.

Changed

  • GODT-3097: Warn about PGPInline encryption scheme which will be deprecated.
  • Test: Support multiple users when waiting for sync event.
  • Test: Update fake server with defautl draft content-type and test it.
  • Test: be less aggressive while checking for message structure.
  • GODT-2996: Set password fields to hidden when resetting the login form.
  • GODT-2990: Change runner tags.
  • GODT-2835: Bump GPA adding support for AsyncAttachments for BugReport +...
  • GODT-2940: Allow 3 attempts for mailbox password.
  • GODT-3095: Update GOpenPGP.

Fixed

  • GODT-3106: Broken import route.
  • GODT-3041: Fix Invalid Or Missing message signature during send.
  • GODT-3087: Exclude attachment content-disposition part when determining...
  • GODT-2887: Inline images with Apple Mail.
  • GODT-3100: Fix issue where a fatal error that bubble up to cli.Run() is not written in the log file.
  • GODT-3094: Clean up old update files on bridge startup.
  • GODT-3012: Fix multipart request retries.
  • GODT-2935: Do not allow parentID into drafts.
  • GODT-2935: Correct error message when draft fails to create.
  • GODT-2970: Correctly handle rename of Inbox.
  • GODT-2969: Prevent duration corruption for config status event.
  • Fixed type in QA installer CI job name.
  • GODT-3019: Fix title of main window when no account is connected.
  • GODT-3013: IMAP service getting "stuck".
  • GODT-2966: Allow permissive parsing of MediaType parameters for import.
  • GODT-2966: Add more test regarding quoted/unquoted filename in attachment.
  • GODT-2490: Fix sync progress not being reset when toggling split mode.
  • GODT-2515: Customized notification of unavailable keychain on macOS.

Vasco da Gama Bridge 3.6.1

Fixed

  • GODT-3033: Unable to receive new mail.

Umshiang Bridge 3.5.4

Fixed

  • GODT-3033: Unable to receive new mail.

Vasco da Gama Bridge 3.6.0

Added

  • GODT-2762: Setup wizard.
  • GODT-2772: Setup wizard content.
  • GODT-2769: Setup Wizard architecture.
  • GODT-2767: Setup Wizard foundations.
  • GODT-2725: Implement receive message step with expected structure exposed.

Changed

  • GODT-2960: Added content in empty view when there is no account.
  • GODT-2771: Cert related tools for macOS.
  • GODT-2770: Proof of concept for web view as a tool window and overlay (not used).
  • GODT-2916: Split Decryption from Message Building.
  • GODT-2597: Implement contact specific settings in integration tests.
  • GODT-2664: Trigger QA installer.

Fixed

  • GODT-2992: Fix link in 'no account view' in main window after 2FA or TOTP are cancelled.
  • GODT-2989: Allow to send bug report when no account connected.
  • GODT-2988: Fix setup wizard KB links.
  • GODT-2968: Use proper base64 encoded string even for bad password test.
  • GODT-2965: Fix multipart/mixed testdata + structure parsing steps related to this.
  • GODT-2932: Fix syncing not being reported in GUI.
  • GODT-2967: Tray menu entries close the setup wizard when needed.
  • GODT-2212: Preserver Header order in message building.
  • Fixed missing GoOs gRPC call in bridge-gui-tester.
  • GODT-2929: Message dedup with different text transfer encoding.

Umshiang Bridge 3.5.3

Changed

  • GODT-3004: Update gopenpgp and dependencies.

Umshiang Bridge 3.5.2

Fixed

  • GODT-3003: Ensure IMAP State is reset after vault corruption.
  • GODT-3001: Only create system labels during system label sync.

Umshiang Bridge 3.5.1

Fixed

  • GODT-2963: Use multi error to report file removal errors.
  • GODT-2956: Restore old deletion rules.
  • GODT-2951: Negative WaitGroup Counter.
  • GODT-2590: Fix send on closed channel.
  • GODT-2949: Fix close of close channel in event service.

Umshiang Bridge 3.5.0

Added

  • GODT-2734: Add testing steps to modify account settings.
  • GODT-2746: Integration tests for reporting a problem.
  • GODT-2891: Allow message create & delete during sync.
  • GODT-2848: Decouple IMAP service from Event Loop.
  • Add trace profiling option.
  • GODT-2829: New Sync Service.
  • Test: oss-fuzz support for fuzzing.
  • GODT-2799: SMTP Service.
  • GODT-2800: User Event Service.
  • GODT-2801: Identity Service.
  • GODT-2802: IMAP Serivce.
  • GODT-2788: Add preview to bug report validation and JSON file validator.
  • GODT-2803: Bridge Database access.

Changed

  • GODT-2909: Remove Timeout on event publish.
  • GODT-2913: Reduce the number of configuration failure detected.
  • GODT-2828: Increase sync progress report frequency.
  • Test: Fix TestBridge_SyncWithOnGoingEvents.
  • GODT-2871: Is telemetry enabled as service.
  • Test(GODT-2873): Wait for Gluon Watcher to finish.
  • Test(GODT-2744): Add integration tests for moving messages (with MOVE support).
  • Test(GODT-2872): Fix nightly job.
  • Test(GODT-2742): Add more integration tests regarding drafts.
  • GODT-2787: Force Scrollview to top when re-opening questions set.
  • GODT-2787: Tweaking Bug Report form with last Review.
  • Ci(GODT-2717): Create a job that will run on schedule.
  • GODT-2787: Fix vertical alignement on CategoryItem.
  • GODT-2842: Implement Bug Report Fallback notification.
  • Chore(GODT-2848): Simplify User Event Service.
  • GODT-2808: Apply comment from Bug Report content review.
  • Test(GODT-2743): Sync high number of messages.
  • GODT-2814: Standalone Server Manager.
  • GODT-2808: Initial list of categories and questions.
  • GODT-2787: Replace the PathTracker by a more visual NavigationIndicator.
  • GODT-2816: Wait until mandatory fields are filled then fill body and title.
  • GODT-2794: Clear cached answers when report is sent.
  • GODT-2793: Feed the bug report body with the answered questions.
  • GODT-2791: Parse the Bug Report Flow description file and ensure forward compatibility (GODT-2789).
  • GODT-2821: Display questions in one page.
  • GODT-2786: Init bug report flow description file.
  • GODT-2792: Implement display of question set for bug report.
  • Use qmlformat on qml files, and removed deprecated tests.

Fixed

  • GODT-2828: Fix negative report time.
  • GODT-2828: Fix sync progress report after restart.
  • GODT-2867: Do not crash on timeout or context cancel.
  • GODT-2693: Duplicate messages in sent folder.
  • GODT-2867: Get attachment returns API error on network problem.
  • GODT-2805: Ignore Contact Group Labels.
  • GODT-2866: Add 429/5xx Retry to Event Service.
  • GODT-2855: Fix for text overlapping in settings view.
  • Test: Verify leaks at end of WithEnv.
  • Test: Fix event registration in TestBridge_SyncWithOngoingEvents.
  • Test: Fix deadlock in chToType.
  • GODT-2865: Add error on failed unlock.
  • GODT-2857: Do not check changed values in clear recent flag.
  • GODT-2827: Restore ticker to event poller.
  • Test: TestBridge_SendAddTextBodyPartIfNotExists eventually fix.
  • GODT-2813: Write new vault to temporary file first.
  • GODT-2807: Fix issue where sessionID would not be removed from command-line on restart by bridge-gui.
  • GODT-2687: Tabs after header field colon.
  • GODT-2764: Allow perma-delete for messages which still have labels.
  • GODT-2693: Fix message appearing twice after sent.
  • GODT-2781: Try to remove stale lock file before failing in checkSingleInstance.
  • GODT-2780: Fix 'QSystemTrayIcon::setVisible: No Icon set' warning in bridge-gui log on startup.
  • GODT-2778: Fix login screen being disabled after an 'already logged in' error.
  • Fix typos found by codespell.
  • GODT-2577: Answered flag should only be applied to replied messages.

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.
  • GODT-2759: Check for oprhan messages.
  • GODT-2759: Add prompt to download missing messages for analysis.
  • GODT-2759: CLI debug commands.
  • Remove gRPC auto-generated C++ source files.
  • Test: Force all unit test to use minimum sync spec.
  • Test: Force sync limits to minimum with env variable.
  • GODT-2691: Close logrus output file on exit.
  • GODT-2522: New Gluon database layout.
  • 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.
  • Log failed message ids during sync.
  • 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.
  • GODT-2685: Update to bug report log attachment logic.
  • 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.
  • GODT-2666: Feat(GODT-2667): introduce sessionID in bridge.
  • GODT-2660: Calculate bridge coverage and refactor CI yaml file.
  • Fix dependency_license script to handle dot formated version.

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-2758: Fix panic in SetFlagsOnMessages.
  • GODT-2578: Refresh literals appended to Sent folder.
  • GODT-2753: Vault test now check that value auto-assigned is first available port.
  • GODT-2522: Handle migration with unreferenced db values.
  • GODT-2670: Allow missing whitespace after header field colon.
  • 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.

Stone Bridge 3.3.2

Fixed

  • GODT-2782: Filter all labels when doing perma delete check.

Stone Bridge 3.3.1

Changed

  • GODT-2707: Set bridge-gui default log level to 'debug'.
  • GODT-2674: Add more logs during update failed.
  • GODT-2750: Disable raise on main window when a notification is clicked on Linux.
  • GODT-2709: Remove the config status file when user is removed.
  • GODT-2748: Log calls that cause main window to show, with reason.
  • GODT-2705: Added log entries for focus service on client and server sides.
  • GODT-2712: Feed config_status with user action while pending.
  • GODT-2728: Remove the sentry report for gRPC event stream interruptions in bridge-gui.
  • GODT-2715: Add Unitary test for configStatus event.
  • GODT-2715: Add Functional test for configStatus telemetry event.
  • Disable windows runner.
  • 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.
  • Log errors on failed message Downloads.

Fixed

  • GODT-2774: Only check telemetry availability for the current user.
  • GODT-2774: Add external context to telemetry tasks.
  • GODT-2774: Add context to Authorize in gluon.Connector.
  • GODT-2726: Fix Parsing of Details field in GPA error message.
  • GODT-2708: Fix dimensions event format + handling of ReportClicked event.
  • GODT-2756: Fix for 'Settings' context menu opening the 'Help' page.

Stone Bridge 3.3.0

Changed

  • GODT-2653: Log API error details on Message import and send.
  • GODT-2655: Display internal build time tag in log and GUI.
  • Add error logs when messages fail to build during sync.
  • GODT-2673: Use NoClient as UserAgent without any client connected and...
  • GODT-2648: Make win build work on AWS machine.
  • Disable building of bridgepp-test app in build script.
  • GODT-2631: Bump go to 1.20.
  • GODT-2639: Enhance sentry init log.
  • GODT-2161: Auto-submit 2FA.
  • Bump Gluon for GODT-2595, GODT-2634 and GODT-2619.
  • Test: Fix TestBridge_Report.
  • Extend the timeout for integration test form 20m to 30.
  • Improve CPC code.
  • GODT-2585: Only Start IMAP/SMTP once one user is loaded.
  • GODT-2585: Server Manager.
  • GODT-2585: Add CPC utility.
  • GODT-2621: Display pop up warning when IMAP login fails because user is locked (connecting).
  • Set default log level to Debug.
  • GODT-2520: Update error message for free users.
  • Test: Disable sync open files test.
  • GODT-2346: Treat external address as disabled one.
  • GODT-2610: Re-use previous password when removing and adding back account.
  • GODT-2611: Bridge CLI exits on the first SIGINT / Ctrl+C.
  • GODT-2540: Make icon loading failure behavior consistent.
  • GODT-2540: Pop-up notification error icon is loaded on startup.
  • GODT-2540: Notify user of wrong IMAP password.

Fixed

  • GODT-2683: Only validate messages that are not appended to Drafts.
  • GODT-2683: Reduce message checks when appending into Drafts.
  • Fix linter errors.
  • GODT-2669: Display sentry ID in bridge init log.
  • GODT-2672: Fix context cancelled when IMAP/SMTP parameters change is in progress.
  • GODT-2650: Fix crash during header serialization.
  • GODT-2437: Fix lint, test + bump Gluon with silenced report.
  • GODT-2437: Silence harmless report to sentry.
  • GODT-2649: Clean up cache files after failed connector create (Gluon).
  • GODT-2638: Validate messages before import.
  • GODT-2646: Bump GPA and Gluon dependency after CIRCL upgrade.
  • GODT-2454: Only Send status update if transaction succeeded.
  • Test: fix flaky tests.
  • GODT-2628: Attempt to fix closed channel panic on logout.
  • GODT-2627: Properly handle recording of message with Bcc fields.
  • GODT-2627: Fix crash on closed channel.
  • GODT-2307: Removed deprecated macOS security framework function.
  • GODT-2637: Fix address parser error due to trailing separator.
  • GODT-2635: Ensure Bridge can be compiled with GCC 13.
  • GODT-2626: Handle rare crash due to missing address update ch.
  • GODT-2626: Server Events should not be merged.
  • GODT-2606: Improve Vault concurrency scopes.
  • GODT-2623: Log IMAP/SMTP login failure as error.
  • GODT-2527: Cleanup 503 test since handled by GPA.
  • GODT-2613: Install the TLS certificate in the user keychain.
  • GODT-2618: Crash when address does not have unlocked keyring.
  • GODT-2616: Silence out of Order UID report.
  • Update Gluon for async.Group.Do() fix.
  • Upgraded golangci-lint v1.52.2 and fixed all issues.
  • GODT-2464: Filter attachment name from content-type parameter to not send it twice to the API.

[Bridge 3.2.0] Rialto

Added

  • GODT-2552, GODT-2553, GODT-2555, GODT-2556: Add telemetry.
  • GODT-2575: Add dev info to cookies.

Changed

  • GODT-2598: Map Message Size Error to Gluon Error.
  • GODT-2569: Support multiple externalID matching if we send one of it when looking for parentID.
  • GODT-2576: Connector can send any flags to Gluon.
  • GODT-2496: Bump gopenPGP to 2.7.1-proton.
  • GODT-2517: Replace status window with native tray icon context menu.
  • GODT-2586: Two-columns layout for account details.
  • GODT-2580: Updated link to support website in GUI.
  • GODT-2239: Bridgepp worker/overseer unit tests.
  • GODT-2538: Implement smart picking of default IMAP/SMTP ports.
  • GODT-2502: Improve logs.
  • GODT-2551: Store and Recover Last User Agent from Vault.
  • GODT-2550: Verify IMAP ID is set properly.
  • GODT-2554: Compute telemetry availability from API UserSettings.
  • Add missing double quotes in test.
  • GODT-2239: Unit tests for BridgeUtils.cpp in bridgepp.
  • Replace go-rfc5322 with gluon's rfc5322 parser.
  • GODT-2483: Install cert without external tool on macOS.

Fixed

  • GODT-2625: Update Bridge pubkey for updates.
  • GODT-2620: Avoid stalls in case of panic in gluon.
  • GODT-2615: Remove keyboard shortcut for tray icon context menu on Windows and Linux.
  • GODT-2596: Fix bug when trying to generate Sentry report and there is not log.
  • GODT-1374: Fix tray icon DPI change handling.
  • GODT-2589: Update BUILDS.md.
  • GODT-2581: Update outdated link to bridge homepage in CLI 'manual' command.
  • GODT-2337: Filter reply-to on draft.
  • GODT-2550: Announce IMAP ID Capability.
  • GODT-2574: Fix label/unlabel of large amounts of messages.
  • GODT-2573: Handle invalid header fields in message.
  • GODT-2573: Crash on null update.
  • GODT-2407: Replace invalid email addresses with empty for new Drafts.

[Bridge 3.1.3] Quebec

Changed

  • GODT-2616: Silence UID of order report.
  • GODT-2614: Handle failed update during sync.

[Bridge 3.1.2] Quebec

Changed

  • GODT-2582 Dedup recovered messages folder.

[Bridge 3.1.1] Quebec

Fixed

  • GODT-2500: Fix handler passing.

[Bridge 3.1.0] Quebec

Changed

  • GODT-2523: Use software QML rendering backend by default on Windows.
  • GODT-2500: Reorganise async methods.
  • GODT-2500: Add panic handlers everywhere.
  • GODT-2511: Add bridge-gui switches to permanently select the QML rendering backend.
  • GODT-2509: Migrate TLS cert from v1/v2 location during upgrade to v3.
  • GODT-2487: Add windows test job and worker.
  • Update GPA to include detailed error messages.
  • GODT-2479: Ensure messages always have a text body part.
  • GODT-2482: More attachment to relevant exceptions.
  • GODT-2224: Refactor bridge sync to use less memory.
  • GODT-2448: Supported Answered flag.
  • GODT-2382: Added bridge-gui settings file with 'UseSoftwareRenderer' value.
  • GODT-2411: Allow qmake executable to be named qmake6.
  • GODT-2273: Menu with "Close window" and "Quit Bridge" button in main window.
  • GODT-2261: Sync progress in GUI.
  • GODT-2385: Gluon cache fallback.
  • GODT-2366: Handle failed message updates as creates.
  • GODT-2201: Bump Gluon to use pure Go IMAP parser.
  • GODT-2374: Import TLS certs via shell.
  • GODT-2361: Bump GPA to use simple encrypter.
  • GODT-1264: Constraint on Scheduled mailbox in connector + Integration tests.
  • GODT-1264: Creation and visibility of the 'Scheduled' system label.
  • GODT-2283: Limit max import size to 30MB (bump GPA to v0.4.0).
  • GODT-2352: Only copy resource file when needed.
  • GODT-2352: Use go-build-finalize macro to build vault-editor for both mac arch.
  • GODT-2278: Properly override server_name for go.
  • GODT-2255: Randomize the focus service port.
  • GODT-2144: Handle IMAP/SMTP server errors via event stream.
  • GODT-2144: Delay IMAP/SMTP server start until all users are loaded.
  • GODT-2295: Notifications for IMAP login when signed out.
  • GODT-2278: Improve sentry logs.
  • GODT-2289: UIDValidity as Timestamp.

Fixed

  • GODT-2505: Show notification only for cases when user needs to do actions.
  • GODT-2516: Log error when the vault key cannot be created/loaded from the keychain.
  • GODT-2526: Fix high memory usage with fetch/search.
  • GODT-2514: Apply Retry-After to 503.
  • GODT-2524: Preserve old vault values.
  • GODT-2508: Handle Address Updated for none-existing address.
  • GODT-2504: Fix missing attachments in imported message.
  • GODT-2513: Scanner Crash in Gluon.
  • GODT-2512: Catch unhandled API errors.
  • GODT-2507: Memory consumption bug.
  • GODT-2497: Do not report EOF and network errors.
  • GODT-2481: Fix DBUS Secert Service.
  • GODT-2455: Upper limit for number of merged events.
  • GODT-2480: Do not override X-Original-Date with invalid Date.
  • GODT-2473: Fix handling of complex mime types.
  • GODT-2469: Fix sentry revision hash for cmake on windows.
  • GODT-2424: Sync Builder Message Split.
  • GODT-2419: Use connector.ErrOperationNotAllowed.
  • GODT-2418: Ensure child folders are updated when parent is.
  • GODT-1945: Handle disabled addresses correctly.
  • GODT-2390: Add reports for uncaught json and net.opErr.
  • GODT-2393: Improved handling of unrecoverable error.
  • GODT-2394: Bump Gluon for golang.org/x/text DoS risk.
  • GODT-2387: Ensure vault can be unlocked after factory reset.
  • GODT-2389: Close bridge on exception and add max termination wait time.
  • GODT-2201: Add missing rfc5322.CharsetReader initialization.
  • GODT-1804: Preserve MIME parameters when uploading attachments.
  • GODT-2312: Used space is properly updated.
  • GODT-2319: Seed the math/rand RNG on app startup.
  • GODT-2272: Use shorter filename for gRPC file socket.
  • GODT-2318: Remove gluon DB if label sync was incomplete.
  • GODT-2326: Only run sync after addIMAPUser().
  • GODT-2323: Fix Expunge not issued for move.
  • GODT-2224: Properly handle context cancellation during sync.
  • GODT-2328: Ignore labels that aren't part of user label set.
  • GODT-2326: Fix potential Win32 API deadlock.
  • GODT-1804: Only promote content headers if non-empty.
  • GODT-2327: Remove unnecessary sync when changing address mode.
  • GODT-2343: Only poll after send if sync is complete.
  • GODT-2336: Recover from changed address order while bridge is down.
  • GODT-2347: Prevent updates from being dropped if goroutine doesn't start fast.
  • GODT-2351: Bump GPA to properly handle net.OpError and add tests.
  • GODT-2351: Bump GPA to automatically retry on net.OpError.
  • GODT-2365: Use predictable remote ID for placeholder mailboxes.
  • GODT-2381: Unset draft flag on sent messages.
  • GODT-2380: Only set external ID in header if non-empty.

[Bridge 3.0.21] Perth Narrows

Added

  • GODT-2509: Migrate TLS cert from v1/v2 location during upgrade to v3.

Changed

  • GODT-2516: log error when the vault key cannot be created/loaded from the keychain.

Fixed

  • GODT-2501: Remove additional .desktop file.
  • GODT-2513: Crash in scanner.
  • GODT-2481: Fix DBUS Secert Service.
  • GODT-2512: Catch unhandled API errors.
  • GODT-2469: Fix sentry revision hash for cmake on windows.

[Bridge 3.0.20] Perth Narrows

Added

  • GODT-2442: Allow user to re-sync DB without logout.

Changed

  • GODT-2419: Reduce sentry reports.
  • GODT-2458: Wait for both bridge and bridge-gui to be ended before restarting on crash.
  • GODT-2457: Include address if GetPublickKeys() error message.
  • GODT-2446: Attach logs to sentry reports for relevant bridge-gui exceptions.
  • GODT-2425: Out of sync messages and read status.
  • GODT-2435: Group report exception by message if exception message looks corrupted.
  • GODT-2356: Unify sentry release description and add more context to it.
  • GODT-2357: Hide DSN_SENTRY and use single setting point for DSN_SENTRY.
  • GODT-2444: Bad event info.
  • GODT-2447: Don't assume timestamp exists in log filename.
  • GODT-2333: Do not allow modifications to All Mail label.
  • GODT-2429: Do not report context cancel to sentry.

Fixed

  • GODT-2467: elide long email addresses in 'bad event' QML notification dialog.
  • GODT-2449: fix bug in Bridge-GUI's Exception::what().
  • GODT-2427: Parsing header issues.
  • GODT-2426: Fix crash on user delete.
  • GODT-2417: Do not request gluon recovered message from API.

[Bridge 3.0.19] Perth Narrows

Fixed

  • GODT-2364: Wait and retry once if the gRPC service config file exists but cannot be opened.
  • GODT-2364: Added optional details to C++ exceptions.
  • GODT-2413: Use qEnvironmentVariable() instead of qgetenv().
  • GODT-2412: Don't treat context cancellation as BadEvent.
  • GODT-2404: Handle unexpected EOF.
  • GODT-2400: Allow state updates to be applied if command fails.
  • GODT-2399: Fix immediate message deletion during updates.
  • GODT-2390: Missing changes from previous commit.
  • GODT-2390: Add reports for uncaught json and net.opErr.
  • GODT-2414: Multiple deletion bug in WriteControlledStore.

[Bridge 3.0.18] Perth Narrows

Fixed

  • GODT-2392: Create message if gluon updateMessage returns no such message.
  • GODT-2391: Create draft if missing during message update on gluon side.

[Bridge 3.0.16/17] Perth Narrows

Fixed

  • GODT-2371: Continue, not return, when handling draft.

[Bridge 3.0.15] Perth Narrows

Changed

  • GODT-2355: Improve wording and actions on bad event.

Fixed

  • GODT-2354: Report failed load users.
  • GODT-2353: Show popup only after 3.0.16.
  • GODT-2351: Bump GPA to better handle net.OpError.

[Bridge 3.0.14] Perth Narrows

Fixed

  • GODT-2323: Fix Expunge not issued for move.
  • GODT-2341: Handle URL error.
  • GODT-2340: Improve logging.
  • GODT-2278: Improve sentry logs.
  • GODT-2327: Sync issues when migrating DB.
  • GODT-2318: Remove gluon DB if label sync was incomplete.
  • GODT-1804: Only promote content headers if non-empty.
  • GODT-2343: Only poll after send if sync is complete.
  • GODT-2336: Recover from changed address order while bridge is down.

[Bridge 3.0.13] Perth Narrows

Fixed

GODT-2328: Ignore labels that aren't part of user label set. GODT-2326: Sync issue on missing fresh DB file. GODT-2319: Seed the math/rand RNG on app startup. GODT-1804: Preserve MIME parameters when uploading attachments.

[Bridge 3.0.12] Perth Narrows

Added

  • GODT-2210: v3.0 splash screen.
  • GODT-1770: handle UserBadEvent in CLI and gRPC.

Changed

  • GODT-2311: Fix missing headers in re-downloaded Gluon messages.
  • GODT-1453: clicking 'Sign in' from status window now selects the right account.
  • GODT-2297: More significantly improve GPA's paging algorithm.
  • GODT-2145: Fix button spacing w/ Qt 6.4.
  • GODT-2223: Improve event handling.
  • GODT-2305: Detect missing gluon DB.
  • GODT-2291: Change gluon store default location from Cache to Data.
  • Other: Disable dialer test until badssl cert is bumped.
  • GODT-2292: Updated BUILDS.md doc.
  • GODT-2258: suggest email as login when signing in via status window.
  • Other: Report corrupt and/or insecure vaults to sentry.
  • Other: Better user load logs.
  • GODT-2253: Restart Launcher from the gui when GUI crashes.
  • Other(test): Make All Mail copy test more robust.
  • Other(CI): Make race checks manual.
  • Other: Remove old cert/key file location handling.
  • GODT-2271: Update README with new system files path.

Fixed

  • GODT-2210: Fix splash screen always showing on CentOS and Ubuntu.
  • GODT-2296: Log error rather than fail if cannot get parent ID.
  • GODT-2266: Pause event stream while sending.
  • GODT-2266: Add test for sent message flags.
  • Other(test): Fix some more integration test placeholders.
  • GODT-2177: Use correct attachment disposition when content ID is set.
  • GODT-1556: If no references, use the in-reply-to header as ParentID.
  • Other: make GUI Tester more resilient to Bridge abrupt termination.
  • GODT-2275: fixed location of bridge-gui log files.
  • Other: Ensure SMTP debug dump works on windows.
  • Other: Fix MaxLogs off-by-one limit and bump limit to 10.
  • Other: fix path of temp folder in README.
  • Other(debug): Dump raw SMTP input to user's home dir.

[Bridge 3.0.11] Perth Narrows

Changed

  • GODT-2252: Recover from deleted cached messages.
  • GODT-2258: change login label and suggest email instead of username.
  • Other: Don't clean settings path on teardown.
  • Other: Bump GPA to v0.3.0.
  • Other: added user's primary email address to the vault.
  • GODT-2251: gluon store and DB separated.
  • GODT-2093: use the primary email address in the account view and status view.
  • GODT-2202: Report update errors from Gluon.
  • GODT-2229: Own the full path for gluon and do not change Database path.
  • GODT-1797: copyright notice shows a date range with the build year.

Fixed

  • GODT-2223: Handle bad events by logging user out.
  • GODT-2165: Reduce UTF8 parsing errors from TLS header input.
  • Others: chores fix a QML warning when no account is present* and a few typos in QML.
  • Other(test): Fix integration test steps.
  • GODT-2226: Fix moving drafts to trash.
  • GODT-2246: do not report API error 422 when using an invalid email address.

[Bridge 3.0.10] Perth Narrows

Changed

  • GODT-2205: use lock file in bridge-gui to detect orphan bridge.
  • GODT-2242: Bump GPA - Don't send any 2fa information if not needed.
  • GODT-2179: added handler for exceptions in QML backend methods.
  • GODT-2181: Match live API behaviour.
  • GODT-2221: Set DOH off by default.
  • GODT-1817: Re-enable all integration tests.
  • Other: C++ Code reformat.
  • GODT-2234: added command-line switch to force Qt to use software rendering for QML.
  • Other: added C/C++ header template file (*.h.in) type to missing_license.sh script.
  • GODT-2236: add log entry when SMTP / IMAP serve method fails.
  • Other: reorganised QMLBackend class code.

Fixed

  • Other: Flag messages imported into "Sent" mailbox as Sent.
  • Other: Fix testCtx.getMBoxID().
  • Other: Fixed GUI Tester to comply with latest gRPC changes.
  • GODT-2010: add Cocoa app delegate handler for second application instance.
  • Other: Fix double close on event channels.
  • GODT-2233: Fix sub folder creation bug.
  • GODT-2222: Dot not error on unknown Address Events.
  • GODT-2218: Fix invalid UID ranges.

[Bridge 3.0.9] Perth Narrows

Changed

  • GODT-2181(test): Refactor integration test setup a bit.
  • Other: Updated GUI tester for new gRPC calls.
  • GODT-1847: Add option to export TLS Certificates in GUI.

Fixed

  • Other: Fix TOTP login (bump go-proton-api).
  • GODT-2188: Do not fail append with invalid mime-type.
  • GODT-2213: Don't unnecessarily enable/disable autostart.
  • Other: Do not decode message body during send record hashing.
  • GODT-2196: Do not generate message updates for unknown labels.
  • Other: Prevent double login.
  • Other: Improve migration logging prefers username over primary address.
  • Other(test): Prefer native API revoke rather than fake server method.
  • GODT-2190: Unify crashpad_handler for darwin.
  • Other(test): Add test that we skip and report bad messages during sync.
  • Other: Catalina build.
  • GODT-2042: Fix setup guide not always showing on first login.
  • GODT-2152: Sign-in dialog validate email and password only when button is pressed.
  • GODT-1556: Add unit test for in-reply-to header without references.
  • GODT-2150: Fixed initial implementation that filtered --no-window in gui instead of bridge.
  • GODT-2167: Bind sign-in buttons availability to loading state.
  • Other: Only send to necessary update channel.
  • GODT-1804: Add parsing ics attachment test.
  • Other: Fix Warning introduced by connecting check timer.

[Bridge 3.0.8] Perth Narrows

Fixed

  • Other: Add sentry reports for event processing failures.
  • Other: Do not fail on label events.

[Bridge 3.0.7] Perth Narrows

Fixed

  • Other: Increase default UIDVALIDITY.
  • GODT-2173: fix: Migrate Bridge passwords from v2.X.
  • GODT-2207: Fix encoding of non utf7 mailbox names.
  • Other: Increase worker count (2 -> 4).

[Bridge 3.0.6] Perth Narrows

Fixed

  • GODT-2187: Skip messages during sync that fail to build/parse.

[Bridge 3.0.5] Perth Narrows

Fixed

  • GODT-2178: Bump go-proton-api to fix drafts.
  • GODT-2180: Allow login with FIDO2.

[Bridge 3.0.4] Perth Narrows

Changed

  • Other: Do not list \Deleted flag for All Mail.
  • Other: Disable perma-delete for expunge on Spam folder.

Fixed

  • Other: Ensure expunge feature test pushes to error stack.
  • GODT-2170: Use client-side draft update in integration tests.
  • GODT-2170: Improving test server behaviour.
  • GODT-2170: Update draft event means delete old and create new message.
  • GODT-2170: User create draft route: first steps.

[Bridge 3.0.3] Perth Narrows

Fixed

  • GPA v0.1.4: fix token expiration mechanism.

[Bridge 3.0.2] Perth Narrows

Changed

  • GODT-2157: Add Sentry to Bridge-Gui.
  • GODT-2153: Use file socket for bridge gRPC on linux & macOS.
  • GODT-2150: Do not forward --no-window flag.
  • GODT-2154: Allow noninteractive mode from launcher.
  • Other: update gui tester to support latest changes in gRPC implementation.
  • Other: GUI Tester supports the 3 states of user (Signed out/Locked/Connected).
  • Other: Bump gluon version to drop non-UTF-8 commands.

Fixed

  • Other: Wipe vault properly on factory reset.
  • GODT-2160: Prevent double closing of bridge if restart fails.
  • GODT-2041: Crash after factory reset.
  • GODT-2114: Sanitize attachment disposition.
  • GODT-1910: Fix GUI not being notified of SMTP SSL being turned on by ConfigureAppleMail.
  • GODT-1910: Fix save button state not being updated after being clicked once.
  • GODT-2159: Improve 429 retry.
  • GODT-1989: Handle Move with Append and Expunge.
  • Other: SetMailServerSettings is async as it should.
  • Other: Include sentry dll for Windows deploy.
  • Other: Ensure context is string in sentry reports.
  • GODT-2160: Ensure we can safely move cache file.

[Bridge 3.0.1] Perth Narrows

Changed

  • GODT-2151: Sync backwards to please product people.

Fixed

  • GODT-2149: Sort logs by timestamp when clearing.
  • GODT-2137: Set sentry sync transport.

[Bridge 3.0.0] Perth Narrows

Changed

  • Other(chore): Bump major version to v3.
  • Other: Switch from liteapi to go-proton-api.
  • GODT-2085: Ensure minimum sync worker count.
  • Other: Switch to mail-api.proton.me.
  • GODT-2120: Encrypt gluon store with gzip.
  • GODT-1910: Use a single view for IMAP & SMTP SSL options.
  • GODT-1846: Remove restart cues* implement restart-less behaviour.
  • GODT-1975: Migrate keychain secrets.
  • GODT-1976: Migrate app settings from prefs.json.
  • GODT-2100: Load users in parallel at startup.
  • GODT-2108: Implement C++ Focus gRPC service client in bridge-gui.
  • GODT-2091: Animated "Connecting..." label.
  • GODT-2003: Introduces 3 phases user state (SignedOut/Locked/Connected).
  • GODT-2056: Kill old bridge from v2 lock file.
  • GODT-2086: Changing the wording for signing in.
  • GODT-2070: Implement SASL login for SMTP.
  • Other: Use liteapi instead of pmapi.
  • GODT-1609: Store password as byte array.
  • GODT-1650: Gluon integration.
  • GODT-1779: Remove go-imap.

Fixed

  • Other: Retry sync after cooldown if it fails.
  • GODT-2142: Also permit split by comma in References header.
  • GODT-2085: Use time.Since* structured logging.
  • GODT-2139: Validate key pass during login.
  • GODT-2111: Fix restart.
  • GODT-2085: Revise sync algorithm.
  • GODT-2134: Fix dock icon on macOS when launched with '--no-window'.
  • GODT-2131: If refresh token is revoked* user gets signed out.
  • GODT-2119: Only show supported label IDs to clients.
  • GODT-2002: Wait for API events to be applied after send.
  • GODT-2105: Ensure ClientVersion is set in bug report request.
  • GODT-2107: Update user list after session revoke.
  • GODT-2040: Bump UID validity when clearing sync status.
  • GODT-2045: Timeouts should be considered network issues.
  • GODT-2122: Handle check for updates failure.
  • GODT-2033: Only set user agent from IMAP ID if not empty.
  • GODT-2110: Force attachment disposition if content ID is missing.
  • GODT-2081: If keychain cannot be loaded do not wipe Vault and use a temp one.
  • GODT-2103: Trigger the version changed event.
  • GODT-2047: Clear last event ID when clearing sync status.
  • GODT-2109: Removed log message "Parent process XXX is still alive".
  • GODT-1913: Pass reporter to gluon* limit restarts* add crash handlers.
  • GODT-2037: Handle and log API refresh event.
  • GODT-2029: Handle deadlock when reordering user addresses.
  • GODT-2021: Remove gluon data when deleting user.
  • GODT-2030: Rework deletion check on expunge.
  • GODT-1977: Fix launcher for v2 to v3 updates.
  • GODT-2048: Add missing special use attributes.
  • GODT-2034: Basic vault migration ability (proof of concept).
  • GODT-1978: Auto-updates from v2 to v3.
  • GODT-1954: Draft message support.
  • GODT-2022: Fix change between address modes.
  • GODT-1993: Use more efficient filtering for message deletion.
  • GODT-2004: Ensure log files don't have color formatting.
  • GODT-2011: Use new app version format.
  • GODT-2010: Add better logging for app focus feature.
  • GODT-2008: Ensure user's addresses are returned in sorted order.
  • GODT-2002: Poll after SMTP send.
  • GODT-1982: Updated gRPC and GUI for disk cache.
  • GODT-1984: Handle permanent message deletion.
  • GODT-1916: Use XDG_DATA_HOME to store persistent data on linux.
  • GODT-1974: Store everything in v3 path.
  • GODT-1986: Handle case where an address has no decryption entities.
  • GODT-1777: Message de-duplication in SMTP and IMAP.
  • GODT-1940: Fix message encryption.
  • GODT-1742: Implement hide All Mail.
  • GODT-1813: Cleanup old go-imap cache files.
  • GODT-1650: Implement Connector.CreateMessage.
  • GODT-1901: Allow to set IMAP SSL from UI.
  • GODT-1816: Connect Gluon Logs to bridge Logs.
  • GODT-1657: Stable sync.
  • GODT-1815: Gluon User management error.

[Bridge 2.4.8] Osney

Fixed

  • GODT-2071: Fix --no-window flag that was broken on Windows.

[Bridge 2.4.7] Osney

Fixed

  • GODT-2078: Launcher inception.
  • GODT-2039: fix --parent-pid flag is removed from command-line when restarting the application.

[Bridge 2.4.6] Osney

Changed

  • GODT-2019: When signing out and a single user is connected we do not go back to the welcome screen.
  • GODT-2071: Bridge-gui report error if an orphan bridge is detected.
  • GODT-2046: Bridge-gui log is included in optional archive sent with bug reports.
  • GODT-2039: Bridge monitors bridge-gui via its PID.
  • GODT-2038: Interrupt gRPC initialisation of bridge process terminates.
  • Other: Added timestamp to bridge-gui logs.
  • GODT-2035: Bridge-gui log includes Qt version info.
  • GODT-2031: Updated bridge description.

Fixed

  • Other: Fix make run-qt target for Darwin.

[Bridge 2.4.5] Osney

Changed

  • GODT-2015: Bridge-gui logs to file until gRPC connection is established.
  • GODT-2016: Added more logging of gRPC events at info level.
  • GODT-2013: CLI flag for frontend is required.

Fixed

  • GODT-2020: Fix xdg_{home,cache}_home variables.
  • GODT-2014: Bridge quit if gRPC client ends stream.

[Bridge 2.4.4] Osney

Changed

  • GODT-1751: Switch from protonmail.com to proton.me domain.

Fixed

  • Other: Fix make run-cli for Darwin.
  • GODT-1645: Fix CI pipeline.
  • GODT-1938: Account details box values wrap.
  • Other: Also install vcpkg ARM64 on Intel mac hosts.
  • Other: Fix minor typo.
  • GODT-1939: removed vertical overshoot when scrolling.
  • GODT-1479: fix 'Open Bridge' button still hovered when status windows opens for Windows.
  • GODT-1519: Move back to account view after sending bug report.
  • Other: fix QML error with Qt 6.4 and a typo.

[Bridge 2.4.3] Osney

Changed

  • Other: implemented tokens in bridge-gui-tester.
  • GODT-1853:
    • Upgrade dependencies (including x/crypto).
    • Ignore for CVE-2021-33194 false positive + add several try to gobinsec.
  • GODT-1853: Improve pipeline:
    • Update gobinsec cache.
    • Test-windows branch manual, MR always.
    • Build needs test-linux and lint to start and keep vcpkg cache on linux.
    • Builds manuall except linux-qa.
  • GODT-1893: Bridge-gui sends bridge's log to stdout, stderr.
  • GODT-1932: Frontend is instantiated before bridge.
  • GODT-1929: Changed gRPC wait timeout.
  • Other: gRPC TLS server is generated for every session.
  • GODT-1917: gRPC service should use random port.
  • GODT-1924: gRPC identity validation with tokens.
  • GODT-1344: Notifications for ApiCertError and NoActiveKeyForRecipient.
  • GODT-1941: Update documentation.
  • Other: Update golangci-lint to v1.50.0.
  • GODT-1936: check gRPC server token via interceptors.

Fixed

  • GUI issues:
    • GODT-1894: Fixed typo in alreadyLoggedIn event error message.
    • GODT-1479: Fix hover on “Open Bridge” in status window on macOS.
    • GODT-1899: Status window menu now closes when window is dismissed.
    • GODT-1851: Port field error label now wraps.
    • GODT-1566: GUI shows error notifications for IMAP/SMTP port errors on startup.
    • GODT-1926: Clear port error messages when cancelling the dialog.
    • Other: Fixed cocoa related warnings in bridge-gui on macOS.
  • Build issues:
    • GODT-1675: Add resrource file to both launcher and bridge-go.
    • Other: Add WlShellIntegration lib for rpm package.
    • GODT-1935: Fix resource file generation for both Launcher and Bridge.
    • GODT-1942: Use qmake to find the QT6DIR.
    • Provide launcher for make run-cli target.
  • GODT-1931: Fixed bridge crash when checking for update while offline.

[Bridge 2.4.0] Osney

Added

  • GODT-1551: Upgrade to Qt 6:
    • Change the app architecture.
    • Drop therecipe/qt dependency.
    • Update to go1.18.
    • Update to Qt 6.3.2.
  • GODT-1170 GODT-1675: Native Mac M1 release.

[Bridge 2.3.0] Nihonbashi

Added

  • GODT-1739: Opt-out All Mail visibility in settings file.
    • GODT-1794: CLI wording.
    • GODT-1794: Add confirmation dialog and change wording.
    • GODT-1741: GUI and CLI settings to change visibility of All Mail folder.
    • GODT-1740: Opt-out All Mail visibility in settings file.

Changed

  • GODT-1737: Improve logging during import.
  • GODT-1754: Add logs for unilateral updates and SEARCH.

Fixed

  • GODT-1840: Use Safe map for mailboxID cache.
  • GODT-1795: Fix automatic installation of profile for AppleMail on macOS Ventura beta (qt 5).
  • GODT-1833: Fix gobinsec cache.
  • GODT-1799: Fix dependency link.
  • Other: Update SSL certificate fingerprint for test.

[Bridge 2.2.2] Millau

Added

  • Introduced gobinsec cache.

Fixed

  • GODT-1743: Terminate running bridge if has old version.
  • GODT-1743: Quit bridge when opening manual install.

[Bridge 2.2.1] Millau

Added

  • GODT-1550: Add gobinsec check after CI build.
  • GODT-1686: Add Label/Folder filtering to pmapi.

Changed

  • Rebranding:
    • GODT-1475: Change systray icons.
    • GODT-1565: Update Bridge application icons.
    • GODT-1564: Update welcome illustration.
  • GODT-1626: Update gopenpgp v2.4.7.
  • GODT-1627: Update go-srvp to v0.0.5.
  • GODT-1523: Reduce unnecessary shell executions. Inspired by @kortschak.
  • Other: Add v2 to module name.
  • GODT-1562: Update test fingerpring.

Fixed

  • GODT-1659: Convert charset only for text/* MIME types.
  • GODT-1640: Renew test keys.

[Bridge 2.2.0] Millau

Added

  • Rebranding:
    • GODT-1508: Splash screen for rebranding.
    • GODT-1542: Update login screen for rebranding.
    • GODT-1260: Renaming.
    • GODT-1502: Rebranding: color and radius.
  • GODT-1549: Add notification when address list changes.
  • GODT-1560: Dependency licenses update and link.

Changed

  • GODT-1543: Using one buffered event for off and on connection.
  • GODT-1550: Update dependencies.
  • GODT-1545 GODT-1521: Change wording and enable release notes link.

Fixed

  • GODT-1534: Reset address when leaving split mode.

[Bridge 2.1.3] London

Added

GODT-1525: Add keybase/go-keychain/secretservice as new keychain helper.

Changed

GODT-1527: Change bug report description.

Fixed

GODT-1537: Manual in-app update mechanism.

[Bridge 2.1.2] London

Added

  • GODT-1522: Rebuild macOS keychain notification.
  • GODT-1437 Add new proxy provider (Quad9 with port).
  • GODT-1516: Return notification on missing keychain.

Changed

  • GODT-1451: Do not check for gnome keyring to allow other implementations of secret-service API. Thanks to @remgodow.
  • GODT-1516 GODT-1451: KeepassXC is crashing on start. We need to block it until it's fixed.

Fixed

  • GODT-1524: Logout issues with macOS.
  • GODT-1503 GODT-1492: Improve email validation and username in bug report.
  • GODT-1507: Enable autostart after Qt setup.
  • GODT-1515: Do not crash when bridge users got disconnected.

[Bridge 2.1.1] London

Added

  • GODT-1376: Add first userID to sentry scope.
  • GODT-1375: Add host architecture to sentry reports.
  • GODT-1364: Add windows CI machine for tests, and build.

Fixed

  • GODT-1499: Remove message from DB once it is not on server any more.

[Bridge 2.1.0] London

Fixed

  • GODT-1482: Comment or mitigate panics, unlock cache when needed.
  • GODT-1481: Always turn off non-encrypted recipient report.

Changed

  • GODT-1494: Update GopenPGP to 2.4.1.
  • GODT-1490: Update go sentry and openpgp.
  • GODT-1474: Optimising live integration tests.
  • GODT-1483: Correct scope in sentry report.
  • GODT-1477: Change CoD wording.

Added

  • GODT-1478: Add GUI settings for keychain selection.
  • Other: Change copyright year.
  • GODT-1329: Dark mode, with autodetect.

[Bridge 2.0.1] Kwai

Fixed

  • GODT-1468: Fix main windows status and add background context without retry.

[Bridge 2.0.0] Kwai

Added

  • GODT-22: New GUI style and improved UX:
    • GODT-1168 GODT-1169 Qml artifacts for preview.
    • GODT-1177: Remove Import-Export from repo.
    • GODT-1167 GODT-1179 Make run-qml-preview.
    • GODT-1051: Add factory reset to bridge object.
    • GODT-1179 GODT-658: Components and login flows.
    • GODT-1051: Factory reset button.
    • GODT-1158: Adding cache on disk signals.
    • GODT-1298: Signal GUI is ready and rise window.
    • Other: Reactive show on startup.
    • GODT-1319: Set sourceSize everywhere for images.
    • GODT-1317 Use large png for systray and mark it as mask.
    • GODT-1346: GODT-1340 GODT-1315 QML changes.
    • GODT-1365: Create ComboBox component.
    • GODT-1338: GODT-1343 Help view buttons.
    • GODT-1340: Not crashing, user list updating in main thread.
    • GODT-1345: Adding panic handlers.
    • GODT-1271: Fix Status margins.
    • GODT-1320: Add loading property to each action within a notification.
    • GODT-1210: Add "free user" banner.
    • GODT-1314: Limit description field length within 150/800 bounds.
    • GODT-1250: Fix Port settings wording.
    • GODT-1369: Fix link render and wording in Help view.
    • GODT-1358: Fix wording.
    • GODT-1272: Fix status view layout.
    • GODT-1336: Fix showing window on startup.
    • GODT-175: Add option to attach logs for bug reports.
    • GODT-1272: Ultimate fix for MacOS transparency.
    • GODT-1384: Fix SettingsView scroll.
    • GODT-1385: Fix port setting.
    • GODT-1378: varia GUI fixes.
    • GODT-1390: Fix autostart toggle.
    • GODT-1251: Fix change SMTP settings.
    • GODT-1389: Fix buttons and banner layout.
    • GODT-1316: Set default TextArea and TextField behavior.
    • GODT-1244: Refactor switching stable-early and factory reset.
    • GODT-1351: Cache and update of space bytes in user object.
    • GODT-1351: Fix used size update from mail operations.
    • GODT-1411: refactor SettingView content to fill height.
    • GODT-1327: Reset cache path to default when disabling.
    • GODT-1412: Refactor paths and links.
    • GODT-1226: Fix status window position.
    • GODT-1366: Simple lookup of index and select current user.
    • GODT-1325: Add "already logged in" notification.
    • GODT-1391: Fix link colors across GUI.
    • GODT-1391: Fix color for avatar text.
    • GODT-1442: Fix "Sign In" button.
    • GODT-1428: Fix welcome illustration by using PNG.
    • GODT-1455 Adding links to setup guide.
    • GODT-1456: Make text selectable and clickable.
    • GODT-1459: Wording.
    • GODT-1460 GODT-1462: Adding delete account dialog and fixing status view brief and icon.
    • GODT-1458: Splash screen and wording.
  • GODT-1158: Caching encrypted full body messages on disk:
    • GODT-1433: Do not save message to cache if it's a draft.
    • GODT-1431 Do not cache message during new message event when CoD is off.
    • GODT-1381 Treat readonly folder as failure for cache on disk.
    • GODT-1431 Prevent watcher when not using disk on cache.
    • GODT-1381: Use in-memory cache in case local cache is unavailable.
    • GODT-1356 GODT-1302: Cache on disk concurrency and API retries.
    • GODT-1332 Added tests for cache move functions.
    • GODT-1332: moved cache related functions to separate file.
    • GODT-1332 moving cache does not work on Windows.
    • GODT-1367: use waitgroup instead of channel in pool/pchan.
    • GODT-1367: Use sync.Once to only close pool jobs once.
    • GODT-1349: Change cache-related settings when enabling/disabling/moving cache.
    • GODT-1350: stop cacher/worker properly when logging out user.
    • GODT-1158: Store full messages bodies on disk.
  • GODT-1433 Adding first integration test for drafts.

Changed

  • GODT-1438: Turn off SW OpenGL on windows and add debug info about graphic renderer.
  • GODT-1425: Factory reset enables launch on startup.
  • GODT-1433 Message.Type is deprecated, use Flags instead.
  • GODT-1388: Refactor Alternative routing.

[Bridge 1.8.12] James

Fixed

  • GODT-1432: Check if keys are active before unlocking.

[Bridge 1.8.11] James

Fixed

  • GODT-1415: Only messages which are in Spam should be moved to INBOX once they are marked as not-a-spam.
  • GODT-1405: Integration test fix: Prevent unilateral update in FETCH when copying message by append.
  • GODT-1392: Fix broken header fields for attachments.
  • GODT-1360: Fix live integration test.
  • GODT-968: Messages in All Mail should not be able to mark as deleted.
  • GODT-967: Append external message to All Mail should be APPEND to Archive instead.
  • GODT-966: Append internal message to AllMail should be no action.
  • GODT-965: MOVE command should end with error for All Mail.
  • GODT-963: STORE removing junk or adding nojunk should move message to inbox.

Changed

  • GODT-1397: Update bbolt to v1.3.6.
  • GODT-1410: Remove event ID from sentry report description.
  • GODT-1395: CI should fail on go.sum changed.

[Bridge 1.8.10] James

Fixed

  • GODT-1348: Max 100 conn per host.
  • GODT-1204: Handle importing too big messages.
  • GODT-1202: Do not update package if it's version older than launcher.
  • GODT-1318: Bump gopenpgp to v2.2.2, go-srp to v0.0.1, go-crypto to 52430bf6.
  • GODT-219: Update to godog v0.12.1.
  • GODT-1205: "RCPT TO" does not contain all addressed from "CC".
  • GODT-1103: Cleanup on windows when uninstalling Bridge.

[Bridge 1.8.9] James

Fixed

  • GODT-1263: Fix crash on invalid or empty header.
  • GODT-1235: Fix 401 response error handling.
  • GODT-1261: Fix building messages with long key.
  • Other: use windows-compatible filename when dumping message in QA builds.

[Bridge 1.8.8] James

Changed

  • GODT-1234 Set attachment name 'message.eml' for message/rfc822 attachments.

[Bridge 1.8.7] James

Changed

  • GODT-1201: Update gopenpgp to 2.1.10.

Fixed

  • GODT-1193: Do not doubly encode parts.

[Bridge 1.8.6] James

Removed

  • GODT-1187: Remove IMAP/SMTP blocking when no internet.

Changed

  • GODT-1166: Reduce the number of auth for live test.

Fixed

  • GODT-1193: Do not use message.Read permit non-UTF-8 charsets.

[Bridge 1.8.5] James

Fixed

  • GODT-1189: Draft created on Outlook is synced on web.
  • GODT-1190: Fix some random crashes of Bridge on Windows.
  • GODT-1191: Fix data loss of some drafts messages when restarting outlook on Windows.

[Bridge 1.8.4] James

Added

  • GODT-1155: Update gopenpgp v2.1.9 and use go-srp.
  • GODT-1044: Lite parser for appended messages.
  • GODT-1183: Add test for getting contact emails by email.
  • GODT-1184: Preserve signatures in externally signed messages.

Changed

  • GODT-949: Ignore some InvalidMediaParameter errors in lite parser.

Fixed

  • GODT-1161: Guarantee order of responses when creating new message.
  • GODT-1162: Fix wrong section 1 error when email has no MIME parts.

[Bridge 1.8.3] James

Fixed

  • GODT-1182: Use correct contact route.

[Bridge 1.8.2] James

Fixed

  • GODT-1175: Bug reporting.

[Bridge 1.8.1] James

Fixed

  • GODT-1165: Handle UID FETCH with sequence range of empty mailbox.

[Bridge 1.8.0] James

Added

  • GODT-1056 Check encrypted size of the message before upload.
  • GODT-1143 Turn off SMTP server while no connection.
  • GODT-1089 Explicitly open system preferences window on BigSur.
  • GODT-35: Connection manager with resty.

Fixed

  • GODT-1159 SMTP server not restarting after restored internet.
  • GODT-1146 Refactor handling of fetching BODY[HEADER] (and similar) regarding trailing newline.
  • GODT-1152 Correctly resolve wildcard sequence/UID set.
  • GODT-876 Set default from if empty for importing draft.
  • Other: Avoid API jail.

[Bridge 1.7.1] Iron

Fixed

  • GODT-1081 Properly return newlines when returning headers.
  • GODT-1150 Externally encrypted messages with missing private key would not be built with custom message.
  • GODT-1141 Attachment is named as attachment.bin in some cases.

[Bridge 1.7.0] Iron

Added

  • GODT-213 New message builder:
  • Preserve Content-Type for undecryptable message body.
  • Use application/octet-stream for encrypted parts.
  • Force no transfer encoding for embedded message/rfc822 parts.
  • Remove dead code GetRelatedHeader/GetRelatedBoundary.
  • Correctly expect text/plain in custom message text parts.
  • Force text/plain for custom message text part.
  • Complex external encrypted tests (multipart/alternative, message/rfc822 attachment).

Fixed

  • GODT-1136 DB Cache header from builder and test.
  • GODT-1113 Fix tray icon size on macOS Big Sur.
  • GODT-947 Force colors in logs.

[Bridge 1.6.9] HZM

Fixed

  • GODT-1121 'Keep the application up to date' switches off after restarting Bridge.

[Bridge 1.6.8] HZM

Fixed

  • GODT-1120 Use Info level in internal/app logs.

[IE 1.3.3] Farg

Fixed

  • GODT-1120 Use Info level in internal/app logs.

[Bridge 1.6.7] HZM

Added

  • GODT-1111 Add correct metadata to Windows executables.
  • GODT-1112 Add application to Windows Firewall exclusion list on install.
  • GODT-1077 Track how many times message is built to help understand re-syncs.

Changed

  • GODT-247 Revise all storage locations (cache, config, local etc).

Fixed

  • GODT-948 Parser does not handle embedding of Content-Type: message/rfc822.
  • GODT-1079 Correct 9001 error handling on login.

Security

  • GODT-1105 Dylib Hijacking security fix.

[IE 1.3.2] Farg

Added

  • GODT-1111 Add correct metadata to Windows executables.
  • GODT-1112 Add application to Windows Firewall exclusion list on install.

Changed

  • GODT-247 Revise all storage locations (cache, config, local etc).

Fixed

  • GODT-1079 Correct 9001 error handling on login.

Security

  • GODT-1105 Dylib Hijacking security fix.

[IE 1.3.1] Farg

Changed

  • GODT-1047 No silent updates for Import-Export app.
  • GODT-247 Cache and update files moved from user's cache to config.

Fixed

  • Other: include latest go.mod/go.sum changes.
  • GODT-803 Fix import to wrong target address.
  • GODT-948 Embedded messages.
  • GODT-1043 Fix showing long login error in GUI dialog.

[Bridge 1.6.6] HZM

Added

  • Other: QA build checks for update every 5 minutes.
  • Other: QA build adds debug message dump when sending.

Changed

  • GODT-1045 build without Qt by default.

Fixed

  • GODT-1029 Fix tray icon not updating under certain conditions.
  • GODT-1062 Fix lost notification bar when window is closed.
  • GODT-1058 Install version after changing channel right away only in case of downgrade.
  • GODT-1073 Re-write autostart link on every start if turned on in preferences.
  • GODT-1055 Fix flaky empty trash test.

[Bridge 1.6.5] HZM

Changed

  • GODT-1059 Check if keychain is usable on linux before using it by default.

[Bridge 1.6.4] HZM

Added

  • Other: Autoupdates CLI commands.

Removed

  • Other: Remove credits.

Changed

  • GODT-980 Placeholder for user agent.
  • GODT-1036 Event loop Sentry reporting of failures and refresh.
  • GODT-957 Increase space to hide difference.
  • GODT-937 Add keychain switcher to frontend.
  • GODT-1008 Fix transparent dialog under certain conditions.
  • GODT-1034 More tolerant connection speed detection.
  • GODT-1018 Pre-push git hook to check lints.
  • Other: Make all command line flags as const strings.
  • GODT-1041 Log IMAP requests to debug Apple Mail re-sync issue.
  • Other: Pretty print prefs.json.

Fixed

  • Other: Fix nogui build.
  • GODT-317 Fix wrong total mailbox size in Apple Mail.
  • Other: Fixing changelog punctuation.
  • GODT-797 APPEND waits for EXPUNGE to prevent data loss when Outlook moves from Spam or Trash.

[Bridge 1.6.3] HZM

Added

  • GODT-337 Desktop files.

Changed

  • GODT-885 Do not explicitly unlabel folders during move to match behaviour of other clients.
  • GODT-616 Better user message about wrong mailbox password.
  • GODT-1021 Do not allow copy Inbox->Sent or Sent->Inbox.
  • GODT-976 Exclude updates from clearing cache and clear cache, including updates, while switching early access off.
  • GODT-1033 Retry starting IMAP server after connection was down.

Fixed

  • GODT-1011 Stable integration test deleting many messages using UID EXPUNGE.
  • GODT-1015 Use lenient version parser to properly parse version provided by Mac.
  • GODT-919 Notify about update right after the start.
  • GODT-919 GODT-1022 Logs and signals.

[IE 1.3.0] Farg

Changed

  • GODT-1019 Remove dependency on go-apple-mobileconfig.
  • GODT-928 Reject messages which are too large.
  • GODT-999 Sending: do not send empty objects to API.

[Bridge 1.6.2] HZM

Fixed

  • GODT-1010 Strip angle brackets from external ID.

[Bridge 1.6.1] HZM

Added

  • GODT-1007 Notify user when version is the latest.

Fixed

  • GODT-787 GODT-978 Fix IE and Bridge importing to Sent not showing up in Inbox (setting up flags properly).
  • GODT-1006 Use correct macOS keychain name.
  • GODT-1009 Set ContentID if present and not explicitly attachment.
  • GODT-1008 Transparent welcome message.

[Bridge 1.6.0] HZM

Added

  • GODT-705 Allow silent update in Bridge and Import-Export app.
  • GODT-958 Release notes per eaach update channel.
  • GODT-875 Added GUI dialog on force update.
  • GODT-820 Added GUI notification on impossibility of update installation (both silent and manual).
  • GODT-870 Added GUI notification on error during silent update.
  • GODT-805 Added GUI notification on update available.
  • GODT-804 Added GUI notification on silent update installed (prompt to restart).
  • GODT-275 Added option to disable autoupdates in settings (default autoupdate is enabled).
  • GODT-874 Added manual triggers to Updater module.
  • GODT-851 Added support of UID EXPUNGE.

Removed

  • GODT-248 Remove dependency on go-appdir.
  • GODT-208 Remove deprecated use of BuildNameToCertificate.

Fixed

  • Check deprecated status code first to better determine API error.
  • GODT-831 Fix reporting bug from accounts with empty account name.
  • GODT-831 Cancel request of uploading attachment if reading/writing it fails.
  • GODT-991 Fix panic when stopping import progress during loading mailboxes info.
  • GODT-895 Fix panic when modifying addresses during changing address mode.
  • GODT-946 Fix flaky tests notifying changes.
  • GODT-979 Fix panic when trying to parse a multipart/alternative section that has no child sections.
  • GODT-900 Remove \Deleted flag after re-importing the message (do not delete messages by moving to local folder and back).

Changed

  • Rename channels beta->early, live->stable.
  • Bump gopenpgp dependency to v2.1.3 for improved memory usage.
  • GODT-97 Don't log errors caused by SELECT "".
  • GODT-806 GUI dialog on manual update. Added autoupdates checkbox. Simplifyed installation process GUI.
  • GODT-912 Scroll bar behaviour in settings tab.
  • GODT-149 Send heartbeat ASAP on each new calendar day.
  • GODT-792 Stop IMAP server while no internet connection.
  • GODT-792 Cache message size every time to reduce network traffic.
  • GODT-792 Cache body structure in order to reduce network traffic.
  • GODT-792 GODT-908 Cache body structure in order to reduce network traffic.
  • GODT-908 Do not unpause event loop if other mailbox is still fetching.

[Bridge 1.5.7] Golden Gate

Fixed

CSB-331 Fix sending error due to mixed case in sender address.

[Bridge 1.5.6] Golden Gate

Added

  • GODT-797 EXPUNGE waits for APPEND to prevent data loss when Outlook moves from Spam to Inbox.

[Bridge 1.5.5] Golden Gate

Changed

  • GODT-922 Fix panic during restarting the bridge.
  • GODT-945 Fix panic in integration tests caused by concurrent map writes.
  • GODT-732 Fix usage of fontawesome.
  • GODT-951 Properly parse message with long lines in header and long header split to multiple lines (upgrading to latest go-message).
  • GODT-894 Fix panic when sending while account is logging in.
  • GODT-858 Bump go-rfc5322 dependency to v0.5.0 to handle some invalid RFC5322 groups and add support for semicolon delimiter in address-list.
  • GODT-923 Fix listener locking.
  • GODT-389 Prefer From header instead of MAIL FROM address.
  • GODT-898 Only set ContentID for inline attachments.
  • GODT-773 Replace INTERNALDATE older than birthday of RFC822 by birthday of RFC822 to not crash Apple Mail.
  • GODT-927 Avoid to call API with empty label name.
  • GODT-915 Bump go-imap dependency and remove go-imap-specialuse dependency.

[Bridge 1.5.4] Golden Gate

Added

  • Log warning about permanently deleting messages.

Fixed

  • License path on Arch and Windows.

[Bridge 1.5.3] Golden Gate [Import-Export 1.2.3] Elbe

Added

  • GODT-906 Handle RFC2047-encoded content transfer encoding values.
  • GODT-887 Make supports build with native Qt.

Changed

  • GODT-893 Bump go-rfc5322 dependency to v0.2.1 to properly detect syntax errors during parsing.
  • GODT-892 Swap type and value from sentry exception and cut panic handlers from the traceback.
  • GODT-854 EXPUNGE and FETCH unilateral responses are returned before OK EXPUNGE or OK STORE, respectively.
  • #109 Renamed COPYING.md to not be read by pkg-go-dev.

Removed

  • GODT-651 Build creates proper binary names.
  • GODT-148 Allow import (using the Import-Export app) of already encrypted messages as is.
  • GODT-202 Update to latest go-smtp.

Fixed

  • GODT-135 Support parameters in SMTP FROM MAIL command, such as BODY=7BIT, or empty value FROM MAIL:<> used by some clients.
  • GODT-338 GODT-781 GODT-857 GODT-866 Flaky tests.
  • GODT-773 Replace old dates with birthday of RFC822 to not crash Apple Mail. Original is available under X-Original-Date header.

[Bridge 1.5.2] Golden Gate

Changed

  • GODT-883 Use ClearPacket for text/plain with signature.

[Bridge 1.5.1] Golden Gate

Added

  • GODT-701 Try load messages one-by-one if IMAP server errors with batch load and not interrupt the transfer.
  • GODT-878 Tests for send packet creation logic.

Changed

  • GODT-651 Build creates proper binary names.
  • GODT-878 Fix an issue where the random session key is inadvertently sent to the Proton server. The data payload is always encrypted within TLS, but this is still a potential privacy problem. Discovered by Proton's internal security audit team.
  • GODT-878 Refactor and move the send packet creation logic to pmapi.SendMessageReq.
  • GODT-878 Encryption of session keys moved to pmapi.

[IE 1.2.1, 1.2.2] Elbe

Added

  • GODT-799 Skipped messages do not change total counts but shows as separate number.

Fixed

  • GODT-799 Fix skipping unwanted folders importing from mbox files.
  • GODT-769 Close connection before deleting labels to prevent panics accessing deleted bucket.

Removed

  • GODT-766 Remove GUI popup for IMAP TLS error.

[Bridge 1.5.0] Golden Gate

Changed

  • Updated go-mbox dependency back to upstream.

Fixed

  • GODT-847 Waiting for unilateral update during deleting the message.
  • GODT-849 Show in error counts in the end also lost messages.
  • GODT-835 Do not include conversation ID in references to show properly conversation threads in clients.
  • GODT-685 Improve deb packaging regarding dejavu font.

[IE 1.2.0] Elbe

Added

  • GODT-763 Detect Gmail labels from All Mail mbox export (using X-Gmail-Label header).
  • GODT-834 Info about tags in BUILDS.md and link to Import-Export page in README.md.
  • GODT-777 Support Apple Mail MBOX export format.
  • GODT-731 Re-open Import-Export app from the second instance.

Fixed

  • GODT-677 Windows IE: global import settings not fit in window.
  • GODT-794 Congo fails to update to Danube.
  • GODT-749 Don't force PGP/Inline when sending plaintext messages.
  • GODT-764 Fix deadlock in integration tests for Import-Export.
  • GODT-662 Do not resume paused transfer progress after dismissing cancel popup.
  • GODT-772 Sanitize mailbox names for exporting to follow OS restrictions.
  • GODT-771 Show fatal errors after export is terminated.
  • GODT-779 Do not propagate updates when progress is stopped.
  • GODT-779 Unpause progress during fatal error to properly stop progress.
  • GODT-779 Stop ongoing transfer calls sooner (re-check after import request is generated).
  • Fix measurement of uploading attachments during transfer.
  • GODT-827 Do not spam sentry with bad ID by integration test.
  • GODT-700 Fix UTF-7 incompatibility.
  • GODT-837 Fix flaky TestFailUnpauseAndStops.
  • GODT-782 Don't use TLS pinning when checking connectivity status.

Changed

  • TLS pins conform to official list.

[Bridge 1.4.5] Forth

Fixed

  • GODT-829 Remove NoInferior to display sub-folders in apple mail.

[Bridge 1.4.4] Forth

Fixed

  • GODT-798 Replace, don't add, transfer encoding when making body 7-bit clean.
  • Move/Copy duplicate for emails with References in Outlook.
  • CSB-247 Cannot update from 1.4.0.

[Bridge 1.4.3] Forth

Changed

  • Reverted sending IMAP updates to be not blocking again.

Fixed

  • GODT-783 Settings flags by FLAGS (not using +/-FLAGS) do not change spam state.

[Bridge 1.4.2] Forth

Changed

  • GODT-761 Use label.Path instead of Name to partially support subfolders for webapp beta release.
  • GODT-765 Improve speed of checking whether message is deleted.

[IE 1.1.2] Danube (beta 2020-09-xx)

Fixed

  • GODT-770 Better handling of extraneous end-of-mail indicator.
  • GODT-776 Fix crash when IMAP client connects while account is logging in.
  • GODT-744 User agent not being sent to sentry.

Changed

  • Bump crypto version to v0.0.0-20200818122824-ed5d25e28db8.
  • GODT-785 Clear separation of different message IDs in integration tests.

Changed

  • GODT-741 Import-Export shows "Unable to parse time" notice instead of zero time in error report window.

  • Bump crypto version to v0.0.0-20200818122824-ed5d25e28db8.

  • GODT-374 Allow to send calendar update multiple times.

[IE 1.1.1] Danube (beta 2020-09-xx) [Bridge 1.4.1] Forth (beta 2020-09-xx)

Fixed

  • GODT-752 Parsing message with empty addresses.
  • GODT-752 Parsing non-utf8 multipart/alternative message.
  • GODT-752 Parsing message with duplicate charset parameter.

[IE 1.1.0] Danube

Fixed

  • GODT-703 Import-Export showed always at least one total message.
  • GODT-738 Fix for mbox files with long lines.

Fixed

  • GODT-732 Do not mix font awesome icon with regular text to avoid issues on Fedora.

[Bridge 1.4.0] Forth

Added

  • GODT-682 Persistent anonymous API cookies for Import-Export.
  • GODT-357 Use go-message to make a better message parser.
  • GODT-720 Time measurement of progress for Import-Export.
  • GODT-693 Launcher.

Changed

  • GODT-511 User agent format changed.
  • Unsilent errors reading mbox files.
  • GODT-692 QA build with option to change API URL by ENV variable.
  • GODT-704 User agent detected by fake IMAP extension instead of AUTH callback (some clients use LOGIN instead of AUTH).
  • GODT-695 Parallel upload for ProtonMail target.

Removed

  • GODT-519 Unused AUTH scope parsing methods.

Fixed

  • GODT-698 Use correct package type for signed PGP/Inline messages.
  • Generic bug report window title.
  • Fix missing check for unencrypted recipients during sending.
  • Version checking for catalina.
  • GODT-730 Limit maximal TLS version for Yahoo IMAP server.

[IE 1.0.x] Congo (v1.0.0 live 2020-09-08)

Added

  • GODT-633 Persistent anonymous API cookies for better load balancing and abuse detection.
  • GODT-461 Add support for \Deleted flag.

Changed

  • GODT-462 Pausing event loop while FETCHing to prevent EXPUNGE.
  • Wait for unilateral response to be delivered.
  • GODT-409 Set flags have to replace all flags.
  • GODT-531 Better way to add trusted certificate in macOS.
  • Bumped golangci-lint to v1.29.0.
  • GODT-549 Check log file size more often to prevent huge log files.
  • Bumped various dependencies:
    • Updated andybalholm/cascadia v1.1.0 -> v1.2.0.
    • Updated emersion/go-imap-specialuse 20161227184202-ba031ced6a62 -> 20200722111535-598ff00e4075.
    • Updated emersion/go-sasl 20191210011802-430746ea8b9b -> 20200509203442-7bfe0ed36a21.
    • Updated github.com/go-resty/resty/v2 v2.2.0 -> v2.3.0.
    • Updated github.com/golang/mock v1.4.3 -> v1.4.4.
    • Updated github.com/google/go-cmp v0.4.0 -> v0.5.1.
    • Updated github.com/hashicorp/go-multierror v1.0.0 -> v1.1.0.
    • Updated github.com/jaytaylor/html2text 20200220170450-61d9dc4d7195 -> 20200412013138-3577fbdbcff7.
    • Updated github.com/jhillyerd/enmime v0.8.0 -> v0.8.1.
    • Updated github.com/keybase/go-keychain 20200218013740-86d4642e4ce2 -> 20200502122510-cda31fe0c86d.
    • Updated github.com/logrusorgru/aurora 20200102142835-e9ef32dff381 -> v2.0.3+incompatible.
    • Updated github.com/miekg/dns v1.1.29 -> v1.1.30.
    • Updated github.com/nsf/jsondiff 20190712045011-8443391ee9b6 -> 20200515183724-f29ed568f4ce.
    • Updated github.com/sirupsen/logrus v1.4.2 -> v1.6.0.
    • Updated github.com/stretchr/testify v1.5.1 -> v1.6.1.
    • Updated github.com/therecipe/qt 20200126204426-5074eb6d8c41 -> 20200701200531-7f61353ee73e.
    • Updated github.com/urfave/cli v1.22.3 -> v1.22.4.
    • Updated golang.org/x/net 20200301022130-244492dfa37a -> 20200707034311-ab3426394381.
    • Updated golang.org/x/text v0.3.2 -> v0.3.3.
  • Set first-start to false in bridge, not in frontend.
  • GODT-400 Refactor sendingInfo.
  • GODT-513 Update routes to API v4.
  • GODT-551 Do not ignore errors during message flagging.
  • GODT-380 Adding IE GUI to Bridge repo and building.
    • BR: extend functionality of PopupDialog.
    • BR: makefile APP_VERSION instead of BRIDGE_VERSION.
    • BR: use common logs function for Qt.
    • BR: change go.progressDescription to string.
    • IE: Rounded button has fa-icon.
    • IE: UpgradeUpdate.
    • IE: Moving AccountModel to qt-common.
    • IE: Added ReportBug to internal/importexport.
    • IE: Added event watch in GUI.
    • IE: Removed onLoginFinished.
    • Structure for transfer rules in QML.
  • GODT-213 Convert panics from message parser to error.
  • GODT-585 Do not allow deleting messages from All Mail.

Fixed

  • GODT-655 Fix date picker with automatic Windows DST.
  • GODT-454 Fix send on closed channel when receiving unencrypted send confirmation from GUI.
  • GODT-597 Duplicate sending when draft creation takes too long.
  • GODT-634 Hover on links in popups.

[Bridge 1.3.x] Emma (v1.3.2 beta 2020-08-04, v1.3.3 beta 2020-08-06, v1.3.3 live 2020-08-12)

Added

  • GODT-554 Detect and notify about "bad certificate" IMAP TLS error.
  • IMAP mailbox info update when new mailbox is created.
  • GODT-72 Use ISO-8859-1 encoding if charset is not specified and it isn't UTF-8.

Changed

  • GODT-360 Detect charset embedded in html/xml.
  • GODT-354 Do not label/unlabel messages from All Mail folder.
  • GODT-388 Support for both bridge and import/export credentials by package users.
  • GODT-387 Store factory to make store optional.
  • GODT-386 Renamed bridge to general users and keep bridge only for bridge stuff.
  • GODT-312 Validate recipient emails in send before asking for their public keys.
  • GODT-368 Bump docker-credential-helpers version.
  • GODT-394 Don't check SMTP message send time in integration tests.
  • GODT-280 Migrate to gopenpgp v2.
    • Unlock() call on pmapi-client unlocks both User keys and Address keys.
    • Salt is available via AuthSalt() method.
  • GODT-308 Better user error message when request is canceled.
  • GODT-162 User Agent does not contain bridge version, only client in format client name/client version (os).
  • GODT-258 Update go-imap to v1.
    • Fix UNSEEN to return sequence number of first unseen message and not count of unseen messages.
    • INBOX name is never quoted.
  • GODT-204 ClientManager.
    • Client is now an interface; client is the concrete type.
    • Clients are only created by ClientManager.
    • Only one Client per userID exists at any given time; clients are reused.
    • Tokens are managed by ClientManager (TokenManager is removed).
    • expiresAt is no longer part of Client; token expiry and refreshing is handled by ClientManager.
    • Auths generated by clients during Auth/AuthRefresh are handled by ClientManager (which forwards them to Bridge).
    • ClientManager is the "one source of truth" for the host URL for all Clients.
    • Alternative Routing is enabled/disabled by ClientManager.
    • Logging out of Clients is handled/retried asynchronously by ClientManager.
  • GODT-265 Alternative Routing v2 (more resiliant to short term connection drops).
  • GODT-310 Alternative parsing of References header (old parsing probably malformed message IDs).
  • GODT-320 Only report the same TLS issue once every 24 hours.
  • GODT-468 Bump go-imap version to get fix for NIL client delimiter.
  • GODT-465 Bump go-imap version to get fix for SELECT function.
  • GODT-456 Bump bbolt version from 1.3.3 to 1.3.5 to get fixes for unsafe operations.

Removed

  • Dead code from pkg/message.

Fixed

  • GODT-356 Fix crash when removing account while mail client is fetching messages (regression from GODT-204).
  • GODT-358 Bad timeouts with Alternative Routing.
  • GODT-363 Drafts are not deleted when already created on webapp.
  • GODT-390 Don't logout user if AuthRefresh fails because internet was off.
  • GODT-341 Fixed flaky unittest for Store synchronization cooldown.
  • Crash when failing to match necessary html element.
  • Crash in message.combineParts when copying nil slice.
  • Handle double charset better by using local ParseMediaType instead of mime.ParseMediaType.
  • Don't remove log dir.
  • GODT-422 Fix element not found (avoid listing credentials, prefer getting).
  • GODT-404 Don't keep connections to proxy servers alive if user disables DoH.
  • Ensure DoH is used at startup to load users for the initial auth.
  • Issue causing deadlock when reloading users keys due to double-locking of a mutex.
  • Correctly handle failure to unlock single key.
  • GODT-479 Fix flaky integration tests.
  • GODT-484 Fix infinite loop when decoding invalid 2231 charset.
  • GODT-267 Correctly detect if a message is a draft even if does not have DraftLabel.
  • GODT-308 Reduce minimum read speed threshold to avoid issues with flaky internet.
  • GODT-321 Changing address ordering would cause all messages to disappear in combined mode.
  • GODT-129 Fix custom message PGP by using template.
  • GODT-280 Don't assume contact keys are stored armored.
  • GODT-427 Fix race condition in auth refresh that could cause user to be logged out.

[Bridge 1.2.8] Donghai-fix-append (beta 2020-06-XXX)

Changed

  • GODT-396 reduce number of EXISTS calls.
  • GODT-143 Allow appending to Sent folder when sender matches account address.

Fixed

  • GODT-502 Fixed crash when unable to parse a message header.

[Bridge 1.2.7] Donghai-fix-sync - (beta 2020-05-07 live 2020-04-20)

Added

  • IMAP extension MOVE with UIDPLUS support.
  • IMAP extension Unselect.
  • More logs about event loop activity.

Changed

  • GODT-313 Reduce number of synchronizations.
    • Do not trigger sync by counts.
    • Cooldown timer for sync retries.
    • Poll interval randomization.
  • GODT-225 Do not send an EXISTS reposnse after EXPUNGE or when nothing changed (fixes rebuild of mailboxes in Outlook for Mac).
  • GODT-165 Optimization of RebuildMailboxes.
  • GODT-282 Completely delete old draft instead moving to trash when user updates draft.
  • Adding DSN Sentry as build time parameter.
  • GODT-124 Bump go-appdir from v1.0.0 to v1.1.0.
  • CSB-72 Skip processing message update event if http statuscode is 422.

Fixed

  • Use correct binary name when finding location of addcert.scpt.

[Bridge 1.2.6] Donghai - beta (2020-03-31)

Added

  • GODT-145 Support drafts.
    • GODT-211,GODT-231 fix updating subject and other fields.
    • GODT-220 Fix deleting drafts.
    • GODT-224 Fix creating draft from outlook without sender.
    • GODT-230,GODT-232 fix constructing sender address for drafts.
    • Sync already synced draft to newly created drafts mailbox.
    • Add Subject to EventMessageUpdated in pmapi.
  • GODT-37 Add body and TLS handshake timeouts.
  • GODT-90 Implement DOH (DNS over HTTPS) proxy.
  • Noninteractive mode.

Changed

  • Bump version go-1.14.

  • Bump dependencies: | Repo | Old Version | New Version | | github.com/0xAX/notificator | v0.0.0-20161214074916-82e921414e03 | v0.0.0-20191016112426-3962a5ea8da1 | | github.com/ProtonMail/go-autostart | v0.0.0-20171017232241-85d98b097aae | v0.0.0-20181114175602-c5272053443a | | github.com/abiosoft/ishell | v0.0.0-20171224170712-50251d04cb42 | v2.0.0+incompatible | | github.com/emersion/go-sasl | v0.0.0-20161116183048-7e096a0a6197 | v0.0.0-20191210011802-430746ea8b9b | | github.com/fatih/color | v1.7.0 | v1.9.0 | | github.com/golang/mock | v1.4.2 | v1.4.3 | | github.com/google/go-cmp | v0.3.1 | v0.4.0 | | github.com/jaytaylor/html2text | v0.0.0-20190408195923-01ec452cbe43 | v0.0.0-20200220170450-61d9dc4d7195 | | github.com/jhillyerd/enmime | v0.7.0 | v0.8.0 | | github.com/logrusorgru/aurora | v0.0.0-20190803045625-94edacc10f9b | v0.0.0-20200102142835-e9ef32dff381 | | github.com/skratchdot/open-golang | v0.0.0-20160302144031-75fb7ed4208c | v0.0.0-20200116055534-eef842397966 | | github.com/stretchr/testify | v1.4.0 | v1.5.1 | | github.com/therecipe/qt | v0.0.0-20191022233421-590f404884c9 | v0.0.0-20200126204426-5074eb6d8c41 | | github.com/urfave/cli | v1.19.1 | v1.22.3 |

  • Pkg/updates: closing File reader to avoid too many opened files during update.

  • Created monorepo with bridge, pmapi, bridge utils, mime and srp.

    • One lint config for all packages and lint fixes in the code.
    • Fix tests for bridge utils to work on MacOS.
    • All tests use testify framework.
    • Processed TODOs or created issues.
    • Cleanup up comments.
  • GODT-169 Reduce the number of keyring unlocks.

  • CSB-40 return error instead of panic in credential store.

  • #577 Avoid multiple send.

  • GODT-39 Sync is paging per message ID with ability to continue after interrupted sync.

  • Panic handler used in store for event loop and sync.

  • GODT-109 Merge only 50 events into one.

  • Use v1.0.16 of pmapi.

  • GODT-236 Requests to /messages/{read,unread,delete,undelete,label,unlabel} are paged with up to 100 message IDs.

Fixed

  • GODT-227 Mitigate potential crash due to using a logged out pmapi client (proper fix to come in emma release).
  • UserIDs were not checked when importing to Sent folder (affects copying from account1/sent to account2/sent).

[Bridge 1.2.5] Charles - live (2020-03-11) beta (from 2020-02-10)

Added

  • GODT-112 Migration of preferences from c10 to c11.
  • GODT-100 Test for external internal ID when appending to Sent folder to return APPEND UID otherwise skip with no error.
  • GODT-43 Connection troubleshooting modal.
  • GODT-55 Uid support in fake api.
  • GODT-88 Increase uid validity on switch mode.
  • #951 Implementation of IMAP extension UIDPLUS.
  • #964 New store package, see Changed section.

Removed

  • MOVE IMAP extension due to missing interaction with UIDPLUS.

Changed

  • GODT-88 Run mbox sync in parallel when switch password mode (re-init not user).
  • GODT-95 Do not throw error when trying to create new mailbox in IMAP root.
  • GODT-75 Do not fail on unlabel inside delete.
  • #1095 always delete IMAP USER including wrong password.
  • Unique pmapi client userID (including #1098).
  • Using go.enmime@v0.6.1 snapshot.
  • Better detection of non-auth-error.
  • Reset hasAuthChannel during logout for proper login functionality (set up auth channel and unlock keys).
  • Allow APPEND messages without parsable email address in sender field.
  • #1060 avoid Append after internal message ID was found and message was copied to mailbox using MessageLabel.
  • #1049 Basic usage of store in SMTP package to poll event loop during sending message.
  • #1050 pollNow waits for events to be processed.
  • #1047 Fix fetch of empty mailbox.
  • #1046 Fix removing mailbox counts.
  • #1048 For any message build error return custom message.
  • When event loop exits with error it logs out user from Bridge.
  • #953 #984 First label messages before unlabeling when moving messages.
  • Fixes after refactor:
    • Slight memory optimization.
    • #1043 do not stuck in loop for updating message which does not exist anywhere anymore.
    • #1034 fix UID dynamic range for empty list.
    • Fix of sequence number in IMAP IDLE expunge during deleting messages.
    • #1030 #1028 Fix some crashes and bad auths.
    • #953 #984 label messages first during moving them.
  • #964 (and #769,#899,#918,#930,#931,#949) refactor of IMAP.
    • Fix of sequence number in IMAP IDLE expunge during deleting messages.
    • Fix not-returning empty result for UID dynamic range as said in RFC.
    • Separated IMAP to store and IMAP.
    • Store is responsible for everything about db and calls to pmapi, including event loop, sync, address mode.
    • IMAP is responsible only for IMAP interfaces.
    • Event loop is only one per ProtonMail account (instead of one per alias).
    • It also means only one database per account (instead of one per address).
    • Changing address mode is not destroying database, only buckets with IDs mapping (keeping metadata for account).
    • Before first sync we set event ID so we will not miss changes happening during sync.
    • Thanks to previous point we are not starting new sync when we finish first one because of unprocessed events.
    • Sync is not blocking event loop (user can get new messages even during sync).
    • Sync is not blocking reading operations (user can list mailboxes even before first sync is done).
    • Sync is not blocking writing operations such as mark messages read/unread and so on.
    • Most operations have to be passed to API and only event loop is writing them to the database.
    • Avoid relying on counts API endpoint; use event counts as much as possible.
    • Separate function for storing message content type and header into database.
    • Sequence number optimised for last item in mailbox.
    • Allow sending IMAP idle update to timeout to avoid blocking bridge.
    • Synchronisation will create a label if not yet present.
    • Labels and Folders (including system folders) are stored in DB together with their counts for offline read-out.
    • AddressIDs for all user addresses are stored in DB.
    • IMAP updates channel is set when an IMAP client connects (and IMAP updates are dropped until then).
    • DB keeps track of address mode (split/combined).
  • Event loop starts as soon as user is initialised (i.e. logged in), not just when imap is connected.
  • Use pmapi v1.0.13.
  • Logout user if initialisation fails.
  • Send UserRefreshEvent on user login and logout.
  • Use godog v0.8.0 under new name 'cucumber' (instead of DATA-DOG).

Fixed

  • CSB-40 panic in credential store.
  • Keyring unlocking locker.
  • No panic on failed html parse.
  • Too many open files.
  • #1057 Logging in to an already logged in user would display unrelated error "invalid mailbox password".
  • #1056 Changing mailbox password sometimes didn't log out user.
  • #1066 Split address mode can not work when credentials store is cleared.
  • #1071 Bridge can think it is in combined mode when actually it's in split mode.
  • Missing enmime dependency.
  • Issue where a failed sync was not attempted again.
  • Removing an address would crash bridge.
  • #1087 Accounts with capital letters could not be added.
  • #1087 Inactive addresses were not filtered out of the store.
  • #1087 Unlock with correct key if message is sent to alias and not primary (aka original) address.
  • #1109 Receiving an event referencing an address that isn't present could crash bridge.
  • Avoid concurrent map writes in imap backend.
  • GODT-103 User keys were not unlocked later if they were not unlocked during startup.

[Bridge 1.2.4] Brooklyn beta (2019-12-16)

Added

  • #976: fix slow authentication.
    • Server security setting in info (GUI, CLI).
    • Default SSL for SMTP based on Mac version.
    • GUI/CLI items to controls SMTP security setup.
    • Set new security and restart.

Changed

  • #961 Timeouts for go-pmapi client with http.Transport.
  • Event poll with no change will hang forever. Using separate goroutine and timeout instead of proper fix (will be in refactor).
  • Fixed an issue where entering an in-use port multiple times via the CLI would make bridge use it.
  • Update therecipe/qt and Qt to 5.13.

[Bridge 1.2.3] Akashi - live (2019-11-05) beta (2019-10-22)

Added

  • #963 report first-start metric with bridge version.
  • #941 report new-login metric, report daily heartbeat.
  • #921 remote key lookup via Web Key Directory (WKD).
  • #919 TLS issue notification in CLI.

Changed

  • #769 #930 #931 #949 Syncing messages and fetching message and attachments in parallel with five workers.
  • #956 #741 update keychain.
  • Re-download and re-unlock user keyring when addresses are changed.
  • #944 Ugrade go-pmapi dependency to v1.0.4 to support phase one of the key migration.
  • #683 Password rehides each time password entry screen is shown.
  • Import-Export#219 fix double parameter definition.
  • Upgrade go-pm-bridge-utils dependency to v1.0.1.
  • #935 Fix wrong download link for linux updates.
  • #952 fix error when sending mail with only BCC recipients (use empty slice instead of nil slice).
  • Refactor generateSendingInfo to simplify logic; add test for this method.
  • Generate code-coverage report with make code-coverage.
  • #942 fix focus window with logout message when trying to connect from the client.
  • Do not use panic for second instance.
  • #928 do not hide 'no keychain' dialog when upgrade is needed.
  • Sending NO for errors while FETCH.
  • #899 Upgrade from Bolt to BBolt.
  • Upgrade to gopenpgp.
  • Bridge utils in own repository.
  • Code made compatible with name changes in go-pmapi.

[Bridge 1.2.2] - beta and live 2019-09-06

Changed

  • User compare case insensitive.

[Bridge 1.2.1] - beta and live 2019-09-05

Changed

  • #924 fix start of bridge without internet connection.

[Bridge 1.2.0] - beta 2019-08-22

Added

  • #903 added http.Client timeout to not hang out forever.
  • Closing body after checking internet connection.
  • Pedantic lint for bridgeUtils.
  • Selected events are buffered and emitted again when frontend loop is ready.
  • #890 implemented 2FA endpoint (auth split).
  • #888 TLS Cert.
    • Error bar and modal with explanation in GUI.
    • Signal to show error.
    • Add pinning to bridge (only for live API builds).
  • #887 #883:
  • Wait before clearing data.
  • Configure which provides pmapi.ClientConfig and app directories.
  • #861 restart after clear data.
  • Panic handler for all goroutines.
  • CD for linux.
  • #798.
    • Check counts after sync.
    • Update counts in all mailboxes after sync.
    • db.Mailbox.RemoveMissing, db.Mailbox.PutMany.
    • util.NotImplemented.
    • Tests for sync.
  • Bridge core tests:
    • Introduced interfaces: pmapiClienterFactory, pmapiClienter, credentialStorer.
    • Automatic mock generation for listener.Listener, bridge.pmapiClienter, bridge.credentialStorer.
  • #818 REFACTOR: see doc/code-structure.md.
    • Tests for bridge core & utils.
    • Update user before GetQuota.
    • Http bridge API.
  • Bridge core tests:
    • Introduced interfaces: pmapiClienterFactory, pmapiClienter, credentialStorer.
    • Automatic mock generation for listener.Listener, bridge.pmapiClienter, bridge.credentialStorer.
  • #774 start initialization with sync immediately after login.

Removed

  • Using PutMeta for DB to not rewrite header and size.
  • Timeout for connection (keep only DialTimeout).
  • #798 imapMailbox.sync.
  • #818 REFACTOR: see doc/code-structure.md.
    • Bridge global functions GetAuth, GetAuthInfo, GetUserSettings (using member functions of pmapi.Client instead).
    • backend.setCache: not used.
    • IMAP extension for XSTOP and XFOCUS.
    • Keychain Disconnected is not used, deleting directly (not using hide).
    • apiIdFrom(uid bool, id uint32), apiIdRangeFromSeq(uid bool, seq imap.Seq): not used.
    • server/dial.go not used.
    • Util CustomMessage, StartTicker not used.

Changed

  • Check before first even sync.
  • Do sync in parallel from events.
  • Closing event loop by CloseConnectionEvent.
  • Allow client to log in with address only.
  • Fix IMAP users lock.
  • #646 download headers when needed for first time.
  • #895 fix of parsing address list.
  • #844 do not spam GUI with logout events & sleep after bad login attempt from the client.
  • #887 #883 #898 #902 logout account from API and all IMAP connections before clearing cache for account.
  • #882 unassign PMAPI client after logout and force to run garbage collector.
  • #880, #884, #885, #886 fix of informing user about outgoing non-encrypted e-mail.
  • #838 Sirupsen -> sirupsen.
  • #893 save panic report file every time.
  • #880 fix of informing user about outgoing non-encrypted e-mail.
  • Fix aliases in split mode.
  • Fix decrypted data in log notification.
  • #471 fix of using font awesome in regular text.
  • SearchMessage all IDs from DB not depends on totalOnAPI.
  • #798 populate efficiently.
    • Improved imap.db.mailbox.Counts().
    • mbox.total,unread -> mbox.totalOnAPI,unreadOnAPI.
    • Always show DB status (even for IDLE updates).
    • imapUser.sync now takes labelID as parameter.
    • Split population by 1000 messages.
    • db.User.put(msgs,keepCache) is used in sync to not overwrite msg.Size and msg.Header in DB.
    • Separate sync function from backend.labelMailbox class.
    • UidNext uses bolt sequence value instead of cursor position.
  • util.tests.go moved to bridgeUtils.
  • #471 fix of using font awesome in regular text.
  • #818 REFACTOR: see doc/code-structure.md.
    • No global states/variables anymore.
    • Code separated from one big package into smaller packages (bridge core, utils, IMAP, SMTP, API).
    • Bridge core completely refactored - core should be API over credentials store and PMAPI.
    • Configuration and preferences are on one place; passed as dependency to all packages.
    • Bridge utils separated from the rest of the bridge code to be used in Import/Export.
    • Many channels converted into one listener which can register listeners and emit events to them.
    • Each package is ready to be used with interfaces for possibility of mocking.
    • Removed IMAP extension XFOCUS, used bridge local API instead.
    • Removed IMAP extension XSTOP.
    • Sentry is not used in dev environment.
    • Logs are not cleared after start, clearing is triggered by watchLogFileSize() instead.
    • Log path changed one folder level up i.e. from .../protonmail/bridge/c10 to .../protonmail/bridge.
    • Always cleared malformed keychain records.
    • Set credentials version on each Put.
    • util.WriteHeader -> imap.writeHeader.
    • Save message.ExternalID for every client not just AppleMail.
    • Server errors reported to frontend by common event listener.
  • Handle logout in event loop.

[Bridge 1.1.6] - 2019-07-09 (beta 2019-07-01)

Added

  • #841 assume text/plain during sending e-mails when missing content type.
  • #805 list the new package links in upgrade dialog for linux.
  • #802 report the list errors to sentry.
  • #508 content related header fields for mail are saved in DB inside msg.Header.
  • #508 doNotCacheError to decide whether to rebuild message.
  • CI with lint check.
  • Build flag nogui.
  • Dummy html interface.

Removed

  • #508 content type rewrite on GetHeader.
  • #508 content type on custom message.

Changed

  • #854 avoid nil header and bodystructure on fail (as regression of #508).
  • Sanitize version in json file.
  • #850 keep correct main and body headers for import (as regression of #508).
  • #841 choose parent ID only when there is exactly one message with external ID.
  • #811 #proton/backend-communication#11 go-pmapi!57 uid fixed.
  • Update Qt 5.11.3 to 5.12.0.
  • Using gomodules instead of glide.
  • #508 use MIMEType and attachments to choose correct Content-Type.
  • #508 custom message replaces body before header is created.
  • #508 main header has Content-Type only after message was fully fetched.
  • #770 ignore empty key from data card and support multiple keys for contacts.
  • Build tags for simpler build of beta and QA builds.
  • Lint corrections.

[Bridge 1.1.5] - 2019-05-23 (beta 2019-05-23, 2019-05-16)

Changed

  • Fix custom message format.
  • #802 accumulated long lines while parsing body structure.
  • Process AddressEvent before MessageEvent.
  • #791 updated crypto: fix wrong signature format.
  • #793 fix returning size.
  • #706 improved internet connection checking.
  • #771 updated raven, crypto, pmapi.
  • #792 use INFO as basic log level.
  • Only one crash from second instance.
  • During event MessageID in log as field.

[Bridge 1.1.4 live] - 2019-04-10 (beta 2019-04-05, 2019-03-27)

Added

  • Address with port to IMAP debug.
  • #750 backend/events.Manager.LastEvent.
  • #750 backend.user.areAllEventsProcessed.
  • #750 Wait with message events until all related mailboxes are synchronized.
  • Restart limit to 10.
  • Release string to raven.

Changed

  • #748 when charset missing assume utf8 and check the validity.
  • #750 before sync check that events are up-to-date, if not poll events instead of sync.
  • Use pmapi with support of decrypted access token.
  • #750 Status is using DB status instead of API.
  • Format panic error as string instead of struct dump.
  • Validity of local certificate to increased to 20 years.

Removed

  • #750 Synchronization after 450 messages.

[Bridge 1.1.3] - 2019-03-04

Added

  • Sentry crash reporting in main.
  • Program arguments to turn of CPU and memory profiling.
  • Full version of program visible on release notes.

Changed

  • #720 only one concurrent DB sync.
  • #720 sync every 3 pages.
  • #512 extending list of charsets go-pm-mime!4.

[Bridge 1.1.2] - beta only 2019-02-21

Changed

  • #512 fail on unknown charset.
  • #729 #733 visitor for MIME parsing.

[Bridge 1.1.1] - 2019-02-11

Added

  • #671 include name param in attachment Content-Type (in addition to Content-Disposition param filename).
  • #671 do not include content headers for section requests e.g. BODY.PEEK[2].
  • Version info checks for newer version (do not show dialog when older is online).
  • #592 new header X-Pm-ConversationID-Id and also added to References.
  • #666 invoke panic while adding account jakubqa+crash@protonmail.com.
  • #592 new header fields X-Pm-Date storing m.Time and X-Pm-External-Id storing m.ExternalID.
  • #484 search criteria Unkeyword support.

Changed

  • Fix srp modulus issue with new ProtonMail/crypto.
  • Generate version files from main file.
  • Be able to set update set on build.
  • #597 check on start that certificate will be still valid after one month and generate new cert if not.
  • #597 extended certificate validity to 2 years.
  • Copyright 2019.
  • Exclude protontech repos from credits.
  • Refactor of go-pmapi, go-pm-crypto, go-pm-mime and go-srp.
  • Re-signed pubkey key.
  • Version, revision and build time is set in main.
  • #666 use bytes.Reader instead of bytes.Buffer.
  • #666 clear unused buffers in body structure map.
  • No API request for fetch body[header].
  • Added crash file counter to pass log tests.
  • #484 search fully relies on DB information (no need to reach API).
  • #592 parsingHeader allows negative time (before 1.1.1970).
  • #592 add original header first and then rewrite.
  • #592 Message-Id rewritten only if not present.
  • #592 rename X-Internal-Id to X-Pm-Internal-Id.
  • #592 internal references are added only when not present already.
  • #592 field Date changed to m.Time only when wrong format or missing Date.
  • #645 pmapi#26 Message.Flags instead of IsEncrypted, Type, IsReplied, IsRepliedAll, IsForwarded.
  • DB: do not allow to put Body or Attachments to db.
  • #574 SMTP: can now send more than one email.
  • #671 Verbosity levels: debug (only bridge), debug-client (bridge and client communication), debug-server (bridge, whole SMTP/IMAP communication).
  • #644 Return rfc.size 0 or correct size of fetched body (stored in DB).
  • #671 API requests URI in debug logs.
  • #625 Fix search results for Flagged and Unflagged.
  • Draft optimization fetch header.
  • #656 Fix sending of calendar invite on Outlook on MacOS.
  • #46 Allowed to run multiple instances, once per user.

Removed

  • Makefile clean up old deploy code.

Release notes

  • Support multiple Bridge instances running in parallel (one per user).

Fixed bugs

  • SMTP stays authenticated after sent message.
  • Reduce memory, processor and number of API calls.

[Bridge 1.1.0] - 2018-10-22

Removed

  • go-pmapi.Config.ClientSecret.
  • go-pmapi.PublicKey.Send.
  • Program argument main.
  • backend.getMIMEMessageBodySection (use message.BodySection).
  • backend.getSize (use message.BodySection).

Added

  • IMAP server: more info when write/send/flush error occurs #648.
  • Linux package paths inside version-json.
  • Draggable popup windows for outgoing non-encrypted message #519.
  • Pmapi able to receive plain accessToken go-pmapi#23 #604.
  • DB debug switch.
  • Clearing message cache when db is cleared.
  • Debug string to tests.
  • Mime tree section parsing and test.
  • Start ticker.
  • Dump DB status.
  • backend.ApplicationOutdated() mechanism: once triggered logout all email clients. On try to login say application outdated.
  • Force upgrade event (send from event loop).
  • New systray with error symbol (used in mac for force update).
  • Test for upgrade.
  • GUI for upgrade.
  • Add native upgrade to updates.
  • Dial timeout client.
  • Custom copyRecursively function.
  • When there is fresh version on start show release notes.
  • Keychain helper using GNU pass.
  • Error message on missing keychain.

Changed

  • Imap SEARCH loops until all messages are listed #581.

  • Cached message timestamp is renewed on load.

  • Message cache ID is userID+messageID.

  • Private cache and added bodystructure.

  • Remove addresses from m.ToList that were not requested in SMTP TO.

  • IsFirstStart setup before loading Gui. Set it to false right after (don't wait till quit).

  • Check eventMessage not nil before address check.

  • util.EventChannel refactor: SendEvent->Send and new SendEvent(EventCode).

  • Information bar keeps on once app is outdated.

  • Error dialog for upgrade has option for force upgrade.

  • IsFirstStart setup before loading Gui. Set false right after (don't wait till quit).

  • Pmapi: access token decrypted only if needed.

  • Move updates from frontend to util.

  • Move CheckInternetConnection() to util.

  • Makefile clean up and change scripts for building.

  • Reorganized updates.

  • Start with new versioning.

        1.1.0
        | | `--- bug fix number (internal, irregular, beta releases)
        | `----- minor version (features, release once per month, live release, milestones)
        `------- major version (big changes, once per year, breaking changes, api force upgrade)
    
  • Upgrade restart option in qt-frontend.

  • GOOS save functions.

  • Windows update procedure.

  • Darwin update procedure.

  • zip replaced by tgz.

  • Using move instead of write truncated.

  • Linux dependencies (pass and gnome-keychain optional).

  • Store.helper -> Store.secrets.

Release notes

  • New self-update procedure.
  • Changed restarting mechanism.
  • Support for GNU pass for linux.
  • Various GUI improvements.

Fixed bugs

  • RFC complaint SEARCH and FETCH responses.
  • Additional synchronization of mail database.

[Bridge 1.0.6 silent] - 2018-08-23

Added

  • New svg icon in linux package.

[Bridge 1.0.6] - 2018-08-09

Added

  • backend.GetUserSettings().

Changed

  • Related to Desktop-Bridge#561.
  • Api flag to build scripts.
  • BodyKey and AttachmentKey contains Key and Algorithm.
  • event.User.Addresses -> event.Addresses.
  • user.Addresses -> client.Addresses().
  • Typos and fixes.
  • Pmapi update.
  • backend.configClient -> backend.authClient.
  • auth.Uid -> auth.Uid().
  • keyRingForAddress() -> Client.KeyRingForAddressID().
  • Message.IsRead -> Message.Unread.
  • pmapi.User.Unlock() -> pmapi.Client.UnlockAddresses().
  • TwoFactor -> HasTwoFactor() and PasswordMode -> HasMailboxPassword().
  • Icon to match ImportExport.

Release notes

  • Removed deprecated API routes.

Fixed bugs

  • Frequent Thunderbird timeout.
  • SMTP requests not case-sensitive.

[Bridge 1.0.5] - 2018-07-12

Added

  • UpdateCurrentAgent from lastMailClient.
  • Current OS.
  • Use Qt to set nice OS with version.
  • All client.Do errors are interpreted as connection issue.
  • Moved to internal gitlab.
  • Typo frontend-qml.
  • Better message for case when server is not reachable.
  • Setting 1min timeout to IMAP connection.

Changed

  • Password: click2show, click2hide.
  • Notification in bug report window.
  • Less frequent version check.
  • Closing ticker.

Removed

  • Sockets and unused libraries.

Release notes

  • Improved response of IMAP server.
  • Sending requests with client information.
  • Less frequent notification about new version.

Fixed bugs

  • Support of Outlook calendar event format.
  • Too many opened file descriptors issue.
  • Fixed 7bit MIME issue while sending.

[Bridge 1.0.4] - 2018-05-15

Changed

  • Version files available at both download and static.
  • MIME text/calendar are parsed as attachment.
  • UserID as identifier in keychain and pmapi token.
  • Keychain format and function refactor.
  • Create crash file on panic with full trace.
  • Clear old data only in main process (no double keychain typing).
  • Create label update API route.
  • Selectable text in release notes.

Added

  • Support sending to external PGP recipients.
  • Return error codes: 0: Ok, 2: Frontend crashed, 3: Bridge already running, 4: Unknown argument, 42: Restart application.

Release notes

  • Support of encryption to external PGP recipients using contacts created on beta.protonmail.com (see https://protonmail.com/blog/pgp-vulnerability-efail/ to understand the vulnerabilities that may be associated with sending to other PGP clients).
  • Notification that outgoing email will be delivered as non-encrypted.
  • NOTE: Due to a change of the keychain format, you will need to add your account(s) to the Bridge after installing this version.

Fixed bugs

  • Support accounts with same user names.
  • Support sending vCalendar event.

[Bridge 1.0.3] - 2018-03-26

  • All from silent updates plus following.

Changed

  • Okay -> "Remind me later".
  • Imported message with text/html body was imported as text/plain.
  • Reload cache when labeling Seen/Unseen.
  • Merge with Import-Export branch.
    • Inheritable Bug report window.
    • Common functions: WriteHeader (parse PM mail) and CustomMessage (when incorrect keys).
    • Updates refactor.
    • Bug report window.
    • Checkbox and with label (only I/E).
    • Error dialog and Info tooltip (only I/E).
    • Add user modal formatting (colors, text).
    • Account view style.
    • Input box style (used in bug report).
    • Input field style (used in add account and change port).
    • Added style variables for I/E.
    • Tab button style.
    • Window bar style and functionality (closing / minimize window).

Release notes

  • Improved responsiveness in the UI.

Fixed bugs

  • Fixed some formatting issues with imports.
  • Fixed port changing via CLI.

Silent update - 2018-03-13

Changed

  • Remove firewall error message.

[Bridge 1.0.2] - 2018-03-12

  • All from silent updates plus following.

Added

  • UTF-7 support.
  • Message when communication between bridge and email client is blocked by firewall (Windows only).

Changed

  • Added gnome-keyring dejavu fonts into linux dependency.
  • Corrected parentID when reply/forward: taken from protonmail.internalid reference.
  • Update user object in backend after unlock to apply address changes.

Release notes

  • UTF7 encoding support for older imported emails.

Fixed bugs

  • Fixed issues with conversation threading.
  • Support for multiple "ReplyTo" addresses.
  • Fixed issue where some address updates would not register immediately.

[Bridge 1.0.1-4 (linux only)] Silent deploy - 2018-02-28

Changed

  • More similar look of window title bar to Windows 10 style.
  • Qt 5.10 Button Controls 2 conflict (icon->iconText).

Added

  • Linux default font.
  • Multiple reply-to addresses support (also API).
  • Command line interface.
  • Credits are generated automatically from glide.lock.
  • Created script to build linux packages (dep,rpm,PKGBUILD).
  • Correct config folders with env variable $XDG_CONFIG_HOME.

Fixed bugs

  • Clearing global cache.
  • Default linux font problems.
  • Support Reply-To multiple addresses.

Release notes

  • Improved visual appearance for win and linux.

[Bridge 1.0.1] Silent deploy - 2017-12-30

Changed

  • Fixed bug with parsing address list (CC became BCC).

[Bridge 1.0.1] - 2017-12-20

Added

  • When current log file is more than 10MB open new one, checked every 15min.
  • Keep only last three log files including current one, triggered every start and when switching log files.
  • Translation context.
  • Accessibility objects for button and static text.
  • All objects are accessible including focus scope for modals and messages.
  • Automatically fill the email client in bug report form.
  • Catch corrupted MacOS keychain error and show the link to FAQ.
  • Unlabel message.
  • Update emptying and filtering routes.
  • Parse the address comment as defined in RFC.

Changed

  • Default log level set to Warning.
  • Info logs during adding account and connecting client promoted to warning level.
  • Log only when email client was changed (previously logged on every assign).
  • Force upgrade bubble notification only when requested by API.
  • Don't show warning systray icon when "You have then newest version!" bubble message is showed.
  • Header date format RFC822Z -> RFC1123Z.
  • IMAP ID and QUOTA responses forced to use quoted strings (fixing SparkMail issue).
  • Avoid AddressChanged bubble when no address was changed.

Release notes

  • Reduced log file size and log file history.
  • Accessibility support for MacOS VoiceOver and Windows Narrator.
  • Improved notification system.
  • Supported imports with older address format.

[Bridge 1.0.0] - 2017-12-06

Added

  • Encoding support of message body, title items, attachment name, for all standard charsets.
  • Force update API message handled as new version event.

Changed

  • Refactor bridge-qtfronted -> frontend.
  • Only one main file and basic support of CLI (not finished).
  • Common QML package ProtonUI, which is used by BridgeUI and ImportExportUI.
  • ChangedUser signal contain address and event type to distinguish between logout, internet off/on, address_change.
  • API address changed event handled gracefully (if not possible, logout).
  • Update mac keychain (should resolve problem with adding new account to bridge, NOT CONFIRMED).
  • Solved hanging GUI on keychain error (should solve all win-7, no-gui errors).
  • New systray icons for Mac (black and white no background).
  • GUI cosmetics:
    • "Click here to start" triangle position.
    • Wrong cursor type on link.
    • Create main window before notification.

Release notes

  • Better notification when new version is needed or when account address is changed.
  • Encoding support for the standard charsets.
  • Improved visual appearance.

Fixed bugs

  • Fixed missing GUI for Windows with empty keychain.

Changelog format

Guiding Principles

  • Changelogs are for humans, not machines.
  • There should be an entry for every single version.
  • The same types of changes should be grouped.
  • Versions and sections should be linkable.
  • The latest version comes first.
  • The release date of each version is displayed.
  • Mention whether you follow Semantic Versioning.

Types of changes

  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Removed for now removed features.
  • Fixed for any bug fixes.
  • Security in case of vulnerabilities.
  • Additional for in app release notes.
    • Release notes in case of vulnerabilities.
    • Fixed bugs in case of vulnerabilities.