<feed xmlns='http://www.w3.org/2005/Atom'>
<title>modules/src/m_email/EMailImapWorker.cpp, branch main</title>
<subtitle>Modules of GpgFrontend.</subtitle>
<id>http://git.bktus.com/gpgfrontend/modules/atom?h=main</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/modules/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/'/>
<updated>2026-09-24T17:47:42Z</updated>
<entry>
<title>refactor(mail): centralize worker thread shutdown</title>
<updated>2026-09-24T17:47:42Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-24T17:47:42Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=2fbe3a8b2d7559365ddb4129c5d304470ab110d6'/>
<id>urn:sha1:2fbe3a8b2d7559365ddb4129c5d304470ab110d6</id>
<content type='text'>
- add a shared bounded-stop helper for mail worker threads
- reuse safe detachment behavior across mail dialogs and controllers
- simplify public key conversion during email signing
- apply formatting updates in module registration metadata
</content>
</entry>
<entry>
<title>refactor(modules): migrate to unified GFModule API</title>
<updated>2026-09-19T10:01:05Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-19T10:01:05Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=a951c08beaf825d4ea47dd0806845c35d0ec2a91'/>
<id>urn:sha1:a951c08beaf825d4ea47dd0806845c35d0ec2a91</id>
<content type='text'>
- replace legacy module utility includes across module sources
- simplify bootstrap and translation registration macros
- update module headers to use the unified public interface
- replace secure object creation with SDK object factories
</content>
</entry>
<entry>
<title>feat(email): add validated folder listing cache</title>
<updated>2026-09-14T19:20:36Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-14T19:20:36Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=403a515c57958c50fce7c0436c836b30074157b8'/>
<id>urn:sha1:403a515c57958c50fce7c0436c836b30074157b8</id>
<content type='text'>
- cache email folders and message pages across dialog reopenings
- restore the last account and folder for faster navigation
- validate cached listings with IMAP STATUS before reuse
- invalidate stale pages when mailbox validators change
- register folder validator types for queued worker signals
- apply formatting cleanup in email sources
</content>
</entry>
<entry>
<title>fix(tls): preserve certificates per connection</title>
<updated>2026-09-13T11:10:59Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-13T11:10:59Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=a6e3fdada3a4201c912f16e31a48290517a66332'/>
<id>urn:sha1:a6e3fdada3a4201c912f16e31a48290517a66332</id>
<content type='text'>
- attach the verifier's certificate details to connection errors
- prevent concurrent connections from overwriting certificate identity
- bound message fetching by both server claims and an application limit
- remove global certificate state clearing from IMAP and SMTP workers
</content>
</entry>
<entry>
<title>fix(imap): harden message fetching and search</title>
<updated>2026-09-13T10:56:03Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-13T10:56:03Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=499d022c38c75da8b2041d606b3c388a6354cd24'/>
<id>urn:sha1:499d022c38c75da8b2041d606b3c388a6354cd24</id>
<content type='text'>
- fetch messages by stable UID instead of mutable sequence number
- preserve sequence numbers separately for pagination cursors
- reject unsafe search values and escape IMAP quoted strings
- bound fetched message output to prevent excessive memory use
- report messages removed from the folder with a clear error
</content>
</entry>
<entry>
<title>fix(email): harden mail delivery safeguards</title>
<updated>2026-09-12T22:10:32Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-12T22:10:32Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=01c83b5803c5b4d09e12210ef44ed8f59f383687'/>
<id>urn:sha1:01c83b5803c5b4d09e12210ef44ed8f59f383687</id>
<content type='text'>
- refuse overwriting accounts from newer schema versions
- preserve the resolved Sent folder in failure notifications
- ignore stale or stopped Sent-copy connection callbacks
- record certificate hostname validity and expiration details
</content>
</entry>
<entry>
<title>fix(email): secure password lifetime handling</title>
<updated>2026-09-12T21:51:23Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-12T21:51:23Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=8e392e6cc13b0da6ac3d02164983b5b35243ba40'/>
<id>urn:sha1:8e392e6cc13b0da6ac3d02164983b5b35243ba40</id>
<content type='text'>
- pass credentials through shared EMailSecret pointers
- erase secrets when the final holder is released
- avoid wiping detached QString copies during authentication
- use credential existence checks without loading secret contents
</content>
</entry>
<entry>
<title>fix(email): scope cancellation to request sequence</title>
<updated>2026-09-12T21:34:30Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-12T21:34:30Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=ca300dc16e8ed47bc3e03b3e312e8829c37b6a1b'/>
<id>urn:sha1:ca300dc16e8ed47bc3e03b3e312e8829c37b6a1b</id>
<content type='text'>
- associate cancellation state with each operation sequence
- preserve queued stops until the targeted operation starts
- prevent stale cancellation state from affecting later requests
- reject cancelled IMAP and SMTP operations before network activity
</content>
</entry>
<entry>
<title>fix(email): clear cancellation after each request</title>
<updated>2026-09-12T20:13:12Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-12T20:13:12Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=94c933414a08b12004f21159b30f8f52ec6f86b9'/>
<id>urn:sha1:94c933414a08b12004f21159b30f8f52ec6f86b9</id>
<content type='text'>
- reset cancellation state when every IMAP operation completes
- preserve cancellation handling when Connect replaces its timeout factory
- batch search message retrieval into one server request
- restore search results to the requested UID order
</content>
</entry>
<entry>
<title>fix(email): harden email operation error handling</title>
<updated>2026-09-12T18:11:52Z</updated>
<author>
<name>saturneric</name>
<email>eric@bktus.com</email>
</author>
<published>2026-09-12T18:11:52Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/modules/commit/?id=727634acc3d7413fa12c6492341e899008a69452'/>
<id>urn:sha1:727634acc3d7413fa12c6492341e899008a69452</id>
<content type='text'>
- validate GPG result pointers before dereferencing them
- preserve UTF-8 bytes during signing, encryption, and verification
- reset cancellation state after each IMAP operation
- report unexpected worker exceptions instead of terminating threads
- detach blocked threads safely during shutdown
- prevent missing signatures from appearing fully valid
- correct signature validity highlighting for problematic signatures
- restore Qt translation extraction and preserve send dialogs on tab closure
</content>
</entry>
</feed>
