You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
4894504 Merge pull request #45 from TurtleByte-IN/feature/mai-227-module-error-sink
b2e2ce0 Merge branch 'main' into feature/mai-227-module-error-sink
8c08a0d ext: hand every logged error and recovered panic to a module (MAI-227)
5a1366e Merge pull request #44 from TurtleByte-IN/chore/mai-232-web-bundle-budget-icons
4551924 web: gzip bundle-size budget in make check; PNG and apple-touch icons
32e20c5 Merge pull request #43 from TurtleByte-IN/feature/mai-218-gmail-app-password-workspace-tile
16c602c Merge branch 'main' into feature/mai-218-gmail-app-password-workspace-tile
908d551 Merge pull request #42 from TurtleByte-IN/chore/mai-215-code-of-conduct
39be094 Gmail is an app password in every build; one-click Google is a separate Google Workspace tile
3312c69 Add a code of conduct (Contributor Covenant 2.1)
909f014 Merge pull request #41 from TurtleByte-IN/feature/mai-216-module-key-provider
52fd28f Module key provider: a module holds the key that wraps tenant data keys (MAI-216)
0352156 Merge pull request #40 from TurtleByte-IN/fix/mai-214-concurrent-writers-flake
6373ad1 Index the references to messages and decisions; make the concurrent-writers test deterministic (MAI-214)
de43657 Merge pull request #39 from TurtleByte-IN/feature/mai-150-4-daemon-wiring
39c9305 Run the hosted build on Postgres: app, worker and owner URLs
6533ed2 Merge pull request #38 from TurtleByte-IN/feature/mai-150-3-tenant-keys
1706c79 Tenant data keys: each tenant's secrets under its own key, wrapped by a KeyProvider (MAI-150)
fe70b0f Merge pull request #37 from TurtleByte-IN/feature/mai-150-2-postgres-rls
46d8554 Merge origin/main (MAI-210 plans) into feature/mai-150-2-postgres-rls; plans on Postgres (0024 twin), plan-end sweep per tenant
861659c WIP: Postgres store with row-level security (MAI-150)
6278e08 Merge pull request #36 from TurtleByte-IN/feature/mai-210-tenant-plan-billing
40a70ef A build that sells plans starts only with a mail server; nothing is deleted before a warning was delivered
9e348f0 Merge origin/main into feature/mai-210-tenant-plan-billing
1caa667 Plans per tenant set by a billing module: limits, features, Plan and billing, read-only and the end of a plan (MAI-210)
55fe442 Merge pull request #35 from TurtleByte-IN/feature/mai-150-1-dialect-shim
0369804 Store: every statement through one binding layer; viewer ids bound, RETURNING ids (MAI-150)
0284a80 Merge pull request #33 from TurtleByte-IN/feature/mai-188-tenant-limits
a051d71 Merge origin/main into feature/mai-188-tenant-limits
eaa5b9a gofmt; number the allowance migration 0023
5fdc0ac Merge pull request #34 from TurtleByte-IN/feature/mai-176-person-moved-hook
73e1029 First-cleanup grant: cleanup checks draw on a one-time grant before the monthly allowance
20cf938 actions: Present only reads a mailbox (MAI-176)
e79bd41 Activity: ask about emails moved in another mail app; docs (MAI-176)
249d862 Moves: daemon worker, questions API and end-to-end tests (MAI-176)
c56c35e Merge origin/main into feature/mai-176-person-moved-hook
907fde0 WIP: move watcher, questions store and API (MAI-176)
33a8046 Merge origin/main into feature/mai-188-tenant-limits
9750ff1 Plan limits a module sets per tenant: mailboxes and the monthly AI allowance (MAI-188)
088b9ca Merge pull request #32 from TurtleByte-IN/feature/mai-180-mailbox-removed-hook
063d1f2 store: list removed_mailboxes among the migrated tables
5b71147 Merge remote-tracking branch 'origin/main' into feature/mai-180-mailbox-removed-hook
9289ab7 ext: tell a module when a mailbox it connected is removed or forgotten (MAI-180)
4cef721 Merge pull request #31 from TurtleByte-IN/fix/mai-193-https-only-webhooks
3d1f378 Take https-only webhook addresses; mark http ones as needing a new address; drop Telegram (MAI-193, MAI-208)
110de93 Merge pull request #30 from TurtleByte-IN/fix/mai-202-sync-before-store-search
78f884f Merge branch 'main' into fix/mai-202-sync-before-store-search
e36492a test(imap): drive Watch's polls from the test instead of the clock
72ac613 Merge pull request #29 from TurtleByte-IN/fix/mai-211-sender-count-plural
677ed7c fix(imap): sync the session before UID STORE and UID SEARCH (MAI-202)
d1ff1d1 Senders: say "1 email" for a sender with one email
a4776df Merge pull request #28 from TurtleByte-IN/feature/mai-105-one-click-unsubscribe
7e9b09a Merge origin/main into feature/mai-105-one-click-unsubscribe
24c67e1 Adapt tests to the unsubscribe column and the unsubscribe flag being on
d0c1114 Merge pull request #27 from TurtleByte-IN/chore/mai-166-fix-flaky-tests
8821689 store: number the unsubscribe migration after main's 0019
f4d7e69 Merge remote-tracking branch 'origin/main' into feature/mai-105-one-click-unsubscribe
1d641f1 Senders: one-click unsubscribe (RFC 8058); web UI reads feature flags from the daemon
06c7afa Merge branch 'main' into chore/mai-166-fix-flaky-tests
970f252 Merge pull request #26 from TurtleByte-IN/fix/mai-169-sender-rule-origin-label
1d3a90e Merge branch 'main' into fix/mai-169-sender-rule-origin-label
cc3c6a3 Merge pull request #24 from TurtleByte-IN/fix/mai-191-unseen-uid-skipped
49f39e0 Merge remote-tracking branch 'origin/main' into chore/mai-166-fix-flaky-tests
541a23f Merge branch 'main' into fix/mai-191-unseen-uid-skipped
3968f0b Merge pull request #25 from TurtleByte-IN/fix/mai-173-write-first-transactions
1f0eed8 Merge branch 'main' into fix/mai-173-write-first-transactions
a458dc2 Keep cleanup checks fresh when MailRules learns a sender; open the database at any data dir path
3ce6083 store: begin write transactions IMMEDIATE so read-then-write ones survive concurrent writers
de0df36 Activity: tell sender rules the user set from learned ones (MAI-169)
a1ee1e5 Merge pull request #23 from TurtleByte-IN/fix/mai-170-record-live-created-folders
3792bcf Catch up the worker session before calling a fetched message gone (MAI-191)
d9a43e6 actions: record folders a move creates so menus list them (MAI-170)
6649d29 Merge pull request #22 from TurtleByte-IN/fix/mai-197-delete-without-sign-in-hook
b3a25b2 Delete my account in every hosted build; a deleted account never comes back
04326b9 Merge pull request #21 from TurtleByte-IN/feature/mai-197-delete-my-account
f5ac139 Merge remote-tracking branch 'origin/main' into feature/mai-197-delete-my-account
bd8be2c Merge pull request #20 from TurtleByte-IN/feature/mai-196-gmail-disclosure
7a8ec33 Let people delete their own account in the hosted build (MAI-197)
fdf8251 Give a teammate's mailbox that needs reconnecting no Reconnect on Overview (MAI-196)
b7a1148 Show what MailRules does with a Gmail mailbox before every Google sign-in (MAI-196)
608a558 Merge pull request #19 from TurtleByte-IN/feature/mai-189-module-notifications
2a78c54 Rule notifications through a module: destinations in Settings, Notify on a rule, a durable outbox the module drains (MAI-189)
7ad6add Merge pull request #18 from TurtleByte-IN/feature/mai-175-form-mailbox-reconnect
00220ef Proton on cloud: Reconnect a mailbox the sign-in form connected through that form, keeping its history; Edit hides the module's password and server (MAI-175)
2c254e5 Merge pull request #16 from TurtleByte-IN/feature/mai-171-module-sign-in-form
be42675 Merge remote-tracking branch 'origin/main' into feature/mai-171-module-sign-in-form
0c65bfb Merge pull request #17 from TurtleByte-IN/fix/mai-174-cloud-refuse-private-hosts
3aac732 Hosted build connects only to mail servers on the public internet (MAI-174)
2ee260f Mailboxes says any IMAP mailbox when a sign-in form is offered; test fixes (MAI-171)
5236ef3 Merge remote-tracking branch 'origin/main' into feature/mai-171-module-sign-in-form
b22c239 Proton on cloud: a sign-in form on the add-mailbox screen that a module answers, mailboxes added with a password and a pinned certificate (MAI-171)
d822f38 Merge pull request #14 from TurtleByte-IN/fix/mai-167-forget-deleted-identity
b955a0e Merge origin/main (MAI-156 one-click mailboxes) into MAI-167; forgotten one-click mailboxes land in reconnect_needed
d1d91f5 Forget deletes a person's mailbox secrets and model keys at once; a leaver's shared mailbox goes with them (MAI-167)
060d002 Merge pull request #15 from TurtleByte-IN/feature/mai-156-module-oauth-mailboxes
0fca97e One-click from first-run setup comes back into setup; Mailboxes subtitle says any IMAP mailbox when one-click is offered (MAI-156)
db5b9b6 One-click mailboxes through a module: IMAP with XOAUTH2, reconnect_needed, Outlook preset (MAI-156)
0b8c6c0 Forget a person the sign-in service deleted; remove their data after 30 days (MAI-167)
e26bd62 Merge pull request #13 from TurtleByte-IN/feature/mai-159-edit-encryption
38a4bb8 Edit can change a mailbox's encryption, tested before it is saved (MAI-159)
0c4a5f5 Merge pull request #12 from TurtleByte-IN/feature/mai-159-proton-bridge-pinned-cert
0d9fd98 Edit can move a mailbox to another host or port, tested before it is saved (MAI-159)
10d6e04 store: number the certificate migration 0013, after main's 0012_sender_rules_folder
9e7d8a2 Merge remote-tracking branch 'origin/main' into feature/mai-159-proton-bridge-pinned-cert
13bf19e Proton Mail through Bridge; accept and pin a server certificate the system does not trust (MAI-159)
60923d1 Merge pull request #11 from TurtleByte-IN/feature/mai-162-sender-folder-and-last-wrote
bbe249b Merge remote-tracking branch 'origin/main' into feature/mai-162-sender-folder-and-last-wrote
6ba0fc8 senders: offer Trash, Sent and Drafts in Always move to; Inbox stays Always keep in Inbox
6812aa0 Merge pull request #10 from TurtleByte-IN/feature/mai-157-gmail-tile-and-archive
2896cda Senders: leave Trash, Sent and Drafts out of the folder choice; smoke checklist
6bce568 Senders: show when each sender last wrote; Always move to
2f0a29d Add a Gmail preset; archive to \All when there is no \Archive folder (MAI-157)
dfbeaaf Merge pull request #9 from TurtleByte-IN/chore/mai-158-provider-docs
31a08aa docs: say which mailboxes the free build connects