Releases: ProtonMail/gluon
Releases · ProtonMail/gluon
v0.17.0
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
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
v0.15.0
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
v0.14.0
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
v0.12.0
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
- Add option to disable Gluon parallelism (5e4c79b)
- Add search cmd benchmark (617cf6b)
- Add Select benchmark (25d69e3)
- Add Store.List method (8322437)
- Add tool to compare gluon benchmark outputs (4c34d4c)
- Allow connector to persist initial UID validity of mailboxes (df4fb42)
- benchmark: Allow mailboxes to be populated from directory (ed9df6d)
- Better event watchers (40b8e4c)
- Expose ParseMediaType (ccc4a12)
- Give update.Wait() a context parameter so waiting can be cancelled (4d561c1)
- GODT-1570: Add status benchmark (5e12e14)
- godt-1609: clear password on connector closure (4c6a040)
- GODT-1609: fix go vet ([7d14433](https://github.com/ProtonMail/gluon/commit/...
v0.11.0
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
v0.10.0
v0.9.0
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)