Skip to content

Replace Worker and Database with a Mail.Store actor - #3

Merged
mattt merged 2 commits into
mainfrom
mattt/add-mail-store
Oct 16, 2026
Merged

mattt merged 2 commits into
mainfrom
mattt/add-mail-store

Conversation

@mattt

@mattt mattt commented Oct 16, 2026

Copy link
Copy Markdown
Owner

No description provided.

mattt added 2 commits October 16, 2026 05:37
Store runs each operation on a private dispatch queue as part of the calling task, so task cancellation reaches SQLite and parsing without a token. Overlapping calls wait instead of failing with operationInProgress, and each operation closes its connection before it reads message files. Store.init validates the configuration, which adds a snapshot time limit. checkAccess() checks that the index can be opened. Operations run at the calling task's priority on macOS 14 and later. Cursors replace offsets for pagination. The new Envelope product re-exports Mail and Emlx and adds Store.content(for:), which checks the message's identity.
The usage examples use the Envelope product, cursor pagination, and task cancellation.
@mattt
mattt merged commit 64dc66b into main Oct 16, 2026
4 checks passed
@mattt
mattt deleted the mattt/add-mail-store branch October 16, 2026 12:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant