Skip to content

Releases: ProtonMail/gluon

v0.17.0

07 Jul 12:27
Compare
Choose a tag to compare

0.17.0 (2023-07-07)

Bug Fixes

  • Defer wg.Done() in Group.Once() (d8a3371)
  • Do not recover messages if they exceed size limit (2797a17)
  • GODT-2437: Silence harmless report to sentry. (#358) (a08bb82)
  • GODT-2454: Only apply state updates if db transactions succeed (5222638)
  • GODT-2522: Handle duplicate message flags during migration (e2cfbe8)
  • GODT-2522: Handle invalid message flag migration (52391e3)
  • GODT-2550: Announce IMAP ID Capability (3e8cc8b)
  • GODT-2578: Apply flag changes on message update event (aa59753)
  • GODT-2582: Do not report errors for duplicate recovered messages (47bece3)
  • GODT-2582: Fix hash for messages (aed4b8a)
  • GODT-2582: Improve message hashing for recovery dedup (cb4a32a)
  • GODT-2587: Fix infinite loop in RFC5322 Domain Specifier (8ec759b)
  • GODT-2587: Fix out of bounds access in slice for empty header field (dfde413)
  • GODT-2595: Fix out of bounds crash in rfc822 parser (580e733)
  • GODT-2619: Ensure mailbox deletions from connector unsubscribe (861a509)
  • GODT-2634: Ensure IMAP month dates are case-insensitive (d18e593)
  • GODT-2637: Fix rfc5322 address list parsing with trailing sep. (edc685b)
  • GODT-2638: Validate if messages adhere to rfc5322 header rules (75fd429)
  • GODT-2646: Update dependencies. (#355) (633e61c)
  • GODT-2649: Clean up cache files if connector create message fails (395f1bc)
  • GODT-2670: Space after colon in header fields is optional (80c05f8)
  • GODT-2683: Only validate messages if mailbox is not Drafts (ef9959a)
  • GODT-2683: Reduce validation checks when appending into Drafts (8b9b7ac)
  • GODT-2755: Only apply state updates after transaction commit (d901d16)
  • GODT-2757: Do not use auto-formatting for elapsed command time (e8f6a4e), closes #375
  • GODT-2758: Fix panic in SetFlagsOnMessages (9a33650)
  • GODT-2774: Add context parameter to Authorize() on Connector (a9327fb)
  • GODT-2776: Relax From & Sender validation checks (cb3fabd), closes #380

Features

  • GODT-2510: Direct SQLite3 (3b6ee4c)
  • GODT-2522: Auto recreate database if migration fails (6f2650e)
  • GODT-2522: Migration Errors (c042847)
  • GODT-2522: New Database Layout (8258a0f)
  • GODT-2522: Select Fetch benchmark (fecbe0c)
  • GODT-2582: Deduplication of messages in Recovery Mailbox (c0ba09f)
  • GODT-2677: add COPYING_NOTES and script to maintain it. (#360) (b13a5db)

v0.16.0

12 Apr 07:43
Compare
Choose a tag to compare

0.16.0 (2023-04-12)

Bug Fixes

  • 2425: Ensure message flag updates are only issued if changed (3ecf785)
  • Do not error on empty AddressList string (9b3c615)
  • Do not send flag updates for recovered messages (9ea4c68)
  • GODT-2399: Defer updated message deletion (ad146e4)
  • GODT-2400: Allow state updates to be applied if command fails (45c83ff)
  • GODT-2416: Do not fail message update if old literal is missing (b6a128f)
  • GODT-2417: Do no attempt to re-download recovered messages (247aba9)
  • GODT-2418: Do not issue connector renames for inferiors (45de5f1)
  • GODT-2419: Do not report no such part errors (27f816c)
  • GODT-2419: Reduce sentry reporter spam (c0f56b2)
  • GODT-2425: Always use DB state for flag operation (e4c7ed0)
  • GODT-2425: Ensure connector updates lock db for writes (2cc03e5)
  • GODT-2425: Revise db lock scope for IMAP operations (c843a91)
  • GODT-2427: Fix header parsing logic (72aeeb9)
  • GODT-2429: Do not transaction fails if context was cancelled (da3a1cd)
  • GODT-2442: Fix problem introduce in code review (6fe7742)
  • GODT-2442: Use rename instead of remove for db files (5cba271)
  • GODT-2500: pass handler pointer down the road. (#335) (7eae5cb)
  • GODT-2500: Recover in deferred function. (#334) (e75e877)
  • GODT-2513: Fix crash in scanner (574da2d)
  • GODT-2526: Unlimited memory usage during fetch/search (19b8f7b)
  • GODT-2573: Remove Prelude header parsing support (81e7559)
  • Incorrect call to strings.HashPrefix (8f5272b)
  • InputCollector byte copy range (2d09826)
  • Multiple deletion bug in WriteControlledStore (033d015)
  • Properly handle optional optional Group List in rfc5322 parser (9f7c827)
  • Reduce reporter noise (3b1b90f)

Features

  • GODT-2448: Support answered flag in message updates (f706f0f)
  • GODT-2500: Add panic handlers everywhere. (#332) (d643f02)

v0.15.0

22 Feb 10:51
Compare
Choose a tag to compare

0.15.0 (2023-02-22)

Bug Fixes

  • Do not crash on out of order UID (41d6371)
  • Drop non-UTF-8 commands (c663738)
  • Ensure CreateMessage event adds messages to mailboxes (ad1570c)
  • GODT-1896: Do not remove subscribed status for deleted mailboxes (a2a43ed)
  • GODT-1896: Do not remove subscribed status for deleted mailboxes (ce3d0a1)
  • GODT-1966: database table lock for mailbox_flags (8b44e6d)
  • GODT-1967: Fix Seq ID too high (9b6772d)
  • GODT-2021: Indefinite parser stall after new line (9ee2b35)
  • GODT-2165: Detect TLS handshake header to avoid reporter spam (542c2bf)
  • GODT-2170: Ensure Append into Drafts always creates messages (1eb8625)
  • GODT-2170: Use draft attribute rather than mailbox name (75f4b97)
  • GODT-2185: Fix mail address parsing with & in name (11bf5cf)
  • GODT-2188: Do not fail APPEND with invalid MIME types (76e4e7e)
  • GODT-2201: Also consume new line with DONE command (a99fed6)
  • GODT-2201: Fix fetch parsing of body section parts without text (5640ba1)
  • GODT-2201: Fix search for Sequence Set starting with '*' (efa899c)
  • GODT-2201: Flag list can be empty (169bd00)
  • GODT-2201: Handle bad command and literal continuations (cb5aa39)
  • GODT-2201: IMAP Search Keys (705f80f)
  • GODT-2201: Make sure all errors are Parser Errors (6a2ff80)
  • GODT-2201: Missing RFC822 Fetch attribute implementation (9643555)
  • GODT-2202: Report update errors to connector (7dc070e)
  • GODT-2207: Fix missing utf7 encoding for responses (d76bb11)
  • GODT-2218: Fix invalid UID/Seq ID Sequence range (b04fb94)
  • GODT-2226: Reassign message to mailbox on MessageUpdate (07a5a07)
  • GODT-2311: Add missing header to downloaded message. (bc2d818)
  • GODT-2379: Unsubscribed mailboxes should always be listed with LIST (bdcd96f)
  • No error if failing to remove deleted messages from store (c1a1f6a)
  • Use os.Remove instead of os.RemoveAll for store files (4a3d7a5)
  • Use previously cached literal in fetch keywords (2a510f1)

Features

  • Add AllowCreate to imap.MessageUpdated (a4e1a32)
  • Add rfc822.EraseHeaderValue (0f26c59)
  • Allow MessageCreateUpdate ignore missing mailbox IDs (7ba466a)
  • Expose methods to query ErrNoSuchMessage / ErrNoSuchMailbox (15075c8)
  • GODT-1264: adds 'Hidden if empty' options for mailboxes. (#273) (9f98ae4)
  • GODT-1817: Extend move to not expunge original messages (675bf5d)
  • GODT-1970: Soft limits (#242) (7349e3d)
  • GODT-2201: Add mailbox related IMAP commands (3c0f769)
  • GODT-2201: IMAP Copy & Move Commands (ddda34b)
  • GODT-2201: IMAP Empty Value Commands (0e8821a)
  • GODT-2201: IMAP Fetch command (9d577e8)
  • GODT-2201: IMAP ID Command (362c741)
  • GODT-2201: IMAP Login Command (2238d80)
  • GODT-2201: IMAP Search Command (08b9473)
  • GODT-2201: IMAP Status Command (c9c7806)
  • GODT-2201: IMAP Store Command (6aac246)
  • GODT-2201: IMAP UID Commands (e3e04b5)
  • GODT-2201: Native GO IMAP Parser Foundations (b62de94)
  • GODT-2201: Replace C++ IMAP parser (d70d525)
  • GODT-2201: RFC5322 AddressList parser rewritten in Go (a6bbc98)
  • GODT-2201: RFC5322 Rewrite DateTime parser in Go (37bb6dc)
  • GODT-2223: do not error on deleting non-existing message (#263) (85d206b)
  • GODT-2229: Let bridge provides the subfolder for gluon's dirs. (#256) (ace4819)
  • GODT-2252: Recover from missing cache files (bc9312a)
  • GODT-2289: Use timestamp for UIDValidity (565039a)
  • GODT-2295: publish event when IMAP login fails. (#269) (4fa6b6a)
  • GODT-2305: Return whether loaded DB is new (4ce9fef)
  • GODT-2385: Add file header to store files (1c65442)
  • GODT-2385: Fallback for store read operations (2f3a201)
  • Implement draft flag in IMAP updates (09ab705)
  • Silently create missing messages on update (9fe1c15)

v0.14.1

25 Nov 14:19
Compare
Choose a tag to compare

0.14.1 (2022-11-25)

Bug Fixes

  • Ensure Linux builds are using 20.04 image (99b8414)
  • GODT-2156: Use UUID instead of Integers for internal ID (c337691)

v0.14.0

24 Nov 15:05
Compare
Choose a tag to compare

0.14.0 (2022-11-24)

Bug Fixes

  • Add missing state update for connector mailbox delete update (b3dcaa4)
  • Add QueuedChannel.CloseAndDiscardQueued (82064e3)
  • Append of existing message should act as copy (abc5ee9)
  • Don't report io.EOF errors via gluon reporter (cee1c02)
  • Don't set the Internal ID in the header twice (a78b54c)
  • Don't use SaveX when creating flags (eaf93a0)
  • Ensure delete followed by create with same ID works (64ae49d)
  • Ensure imap.MessageUpdate only updates if there are literal changes (0bddd1d)
  • Ensure rfc822.SetHeaderValue does not modify original literal data (7107a69)
  • Fix state connector deadlock (287db37)
  • GODT-1761: imaptest coverage benchmark. (d07d8ad)
  • GODT-1952: Ensure C++ libs are compatible with macOS Big Sur (6f89ef0)
  • GODT-1954: Assign new message ID on delete+create (8bf679a)
  • GODT-2007: On append do not add deleted messages to mbox (4093b99)
  • GODT-2032: AddressList parsing with encoded text that starts with = (e501260)
  • Log IMAP literals with append (6072c69)
  • No panic on log failure (b0f0a69)
  • Properly handle store flags (when replacing) (aa07443)
  • Remove messages for non selected mailboxes with update (d8206f6)
  • Use lock and queue.CloseAndDiscard for watchers (0b277a6)
  • Wrong function name when building in debug mode (3c3b138)

Features

  • Add new UID validity to UIDValidityBumped event (261ad4c)
  • Add NewEmptyHeader() function (86bbf02)
  • Add rfc822.Section.DecodeBody (f60b6d1)
  • Add rfc822.Section.Walk (210b7f1)
  • Disable logging if gluon_pprof_disabled is set (78adf76)
  • GODT-1989: Recovery Mailbox (6cb2205)
  • Implement UIDValidityBumped event (1038859)
  • Improve goroutine annotation (2de557a)
  • MessageUpdated Update (7b6e1df)
  • Return mailbox counts when user added (c99ec61)

v0.13.0

20 Oct 09:09
Compare
Choose a tag to compare

0.13.0 (2022-10-20)

Features

  • GODT-1742: Add IsMailboxVisible to Connector (0d01b94)

v0.12.0

19 Oct 09:15
Compare
Choose a tag to compare

0.12.0 (2022-10-19)

Bug Fixes

  • Apply message flags in simulated create + DB schema update (b1e5abe)
  • Auto clean gluon-bench folder (47a7565)
  • Badger GC, compression, encryption (#135) (3a00849)
  • Benchmark fixes (abe35ec)
  • Connector Message Create event handling (812a272)
  • ConnectorUpdate CreateMessage (ec2d0e4)
  • Don't close the listener when closing the server (fdc36d5)
  • Fix go vet issue and missing parenthesis in unit test (87f8ae0)
  • Fix incorrect flag check (e7149c4)
  • Fix infinite random seq set interval loop (3a05bd1)
  • Fix remote server operation for gluon_bench (d553b22)
  • GODT-1570: Fix too many SQL Variable in sync benchmark (c08f510)
  • GODT-1570: Improve Append command perf (2947849)
  • GODT-1570: Too many SQL variables (c3e41dd)
  • GODT-1575,GODT-1757: Untagged responses behavior (1cf7ad5)
  • GODT-1578,GODT-1612: crashing on lsub. (7e4fd51)
  • GODT-1578,GODT-1612: mailbox name matching and Noselect estimation. (0a92d33)
  • GODT-1581: bulk and merge idle responses. (060e6cb)
  • GODT-1581: IDLE bulk time as server option. (ee04594)
  • GODT-1581: merge exists and recent responses. (fb747c6)
  • GODT-1581: more object-oriented implementation, allow merge fetch responses. (fd5a606)
  • GODT-1593: list of capabilities based on state. (#98) (7a5d6de)
  • godt-1599: make sure search before uses internal date. (0b0cc86)
  • godt-1599: make sure search since/on uses internal date. (af072d3)
  • GODT-1600: increase UIDVALIDITY for folder names created again. (#153) (87970ec)
  • GODT-1605: fixes and tests coverage for hierarchy delimiter. (#175) (2b1a25d)
  • GODT-1616: close not sending unilateral updates. (47e2fb7)
  • GODT-1617: correctly parse headers with space lines. (6411b23)
  • GODT-1642: Storage database transactions (c296d12)
  • GODT-1650: Handle existing remote ID returned after CreateMessage (d49f45e)
  • GODT-1757: Flag updates can only be applied through responders (81b1a3a)
  • GODT-1757: Recent flag behavior and snapshot db reads (9c7cb48)
  • GODT-1760: Fix out of order UID panics (a7e75bf)
  • GODT-1776: enable SPECIAL-USE mailbox attributes. (4783e96)
  • GODT-1842: Handle mailbox deletion with multiple clients (3f133c2)
  • Handle multiple \rs in delimiter new line search (fc74679)
  • Header parser (naive) (#133) (38de1de)
  • Listener should be added before spawning goroutine (76ec165)
  • Make sure all generated message have random headers (bab2c0a)
  • Make sure fetch benchmark triggers all paths (b136510)
  • Missing channel close in QueuedChannel (12c698d)
  • Missing space before evelope field of body structure (dc67c10)
  • more strict testConnection.S and .Se matching. (c882e66)
  • Only clear recent flag if message flag is present (192545f)
  • Properly close listeners and connections during teardown (996d5e9)
  • Public type VersionInfo cannot be in internal (83683b2)
  • Remove debug logs (07462bd)
  • Remove erroneous INBOX create in TestListSpecialUseAttributes (49c1929)
  • Stop applying updates when the channel is closed (838043f)
  • Switch atomic.Value to atomicBool (taken from Go 1.19 stdlib) (70c0cb9)
  • Use QueuedChannel for serve errors (e523ea6)
  • User "Folder/" prefix for bench mailboxes (abec84b)
  • Wait for handle to finish before closing session (151fe7c)

Features

Read more

v0.11.0

02 Sep 07:56
Compare
Choose a tag to compare

0.11.0 (2022-09-02)

Bug Fixes

  • Convert some more panics to errors messages (6df22db)
  • GODT-1570: Use buffered channel for responses (6b474c8)
  • GODT-1585: Fix data race on Session.name (6945147)
  • GODT-1585: Fix race conditions in snapshot access (5f11d7e)
  • GODT-1585: Work around race condition in go-imap client (e5c7257)
  • GODT-1586: Implement context cancellation for commands (ccc6245)
  • GODT-1647: Address double call to Connector.Close() (8082017)
  • GODT-1749: Convert panics to errors (9fd48f4)
  • GODT-1757: Ensure States are properly cleaned up before removing user (eca4f83)
  • GODT-1757: Refactor code to have better data separation (#91) (86b442b)
  • GODT-1757: Remove Snapshot locks (6347efd)
  • Use new actionMove for mailbox inbox rename (347513f)

Features

  • Add QueuedChannel (5014519)
  • GODT-1724: Guard database access with an RWLock (9f950d6)

v0.10.0

15 Aug 13:37
Compare
Choose a tag to compare

0.10.0 (2022-08-15)

Bug Fixes

  • GODT-1618: Deal with INBOX in parser (544dfb0)

Features

  • GODT-1720, GODT-1722: Implement Database Wrapper (cc387f0)

v0.9.0

10 Aug 11:25
Compare
Choose a tag to compare

0.9.0 (2022-08-10)

Bug Fixes

  • Add missing command profilers for UID variants (3cb7af8)
  • Add support for draining random sequence ranges (8e11a47)
  • Don't split Body into parts if there are none (b8ae801)
  • Enable tracing for demo and set server flags (3134478)
  • GODT-1570: Reduce amount of data loaded from SQL (2c4b5b4)
  • GODT-1597: Handle permanently deleted messages (54e3c60)
  • GODT-1615: Fix too many SQL variables error (bc89d58)
  • GODT-1618: properly handle empty LIST pattern (df6c4e0)
  • GODT-1621: Fix race condition with temporary IDs (77ef5f8)
  • GODT-1715: Fix more IMAP tests reports (9774748)
  • GODT-1729: Fix header parsing of fields without space (50db483)
  • GODT-1729: Fix In-Reply-To header parsing (446f87b)
  • GODT-1729: Fix SEARCH date queries issues (3bbbc71)
  • GODT-1729: Fix SEARCH string arguments (08e67c9)
  • GOMSRV-128: Remover server personality (dd05009)
  • Integrate goroutine leak detector and fix reports (eb48fa7)
  • Use filepath.Join instead of path.Join (d7b6942)
  • Wait for remote update goroutine to finshes (253c01c)

Features

  • GODT-1570: Badger store implementation (9caec09)
  • GODT-1611: Handle optional charset in SEARCH command (8a9c450)
  • GODT-1715: Add ImapTest scripts (a5a0edc)
  • GODT-1715: Setup profile arguments for demo (5a8ca73)
  • GODT-1719: Gluon benchmark framework (85c9420)
  • GODT-1728: Store benchmarks (73a7d85)
  • GODT-1917: Add Fetch benchmark (7d836f6)
  • GODT-1917: Add move benchmark (f030653)
  • GODT-1917: Add UID variant support for benchmarks (1aab9b8)
  • GODT-1917: Bechmark interface and server interface. (511d848)
  • GODT-1917: Copy benchmark (fa6266f)
  • GODT-1917: Expunge benchmark (fbcd2fb)
  • GODT-1917: Search benchmark (80806b4)
  • GODT-1917: Store benchmark (5d075c8)
  • GODT-1917: Sync benchmark (b613808)