proton-bridge/Changelog.md

86 KiB

Proton Mail Bridge and Import-Export app Changelog

Changelog format

[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-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 pervious 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 bumbed.
  • 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 connecte* 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: Dependecy 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 margings.
    • 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 concurency 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 chaning 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 (promt 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 messsages 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 pasword.
  • 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 copyed 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 emited 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.
  • Configer 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 everytime.
  • #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 acumulated 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 uptodate, 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 concurent 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 certificat 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 Attachements 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 relases)
        | `----- 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 reacheable.
  • 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 udpate 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: Uknown 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 formating (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.