Skip to content

v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Oct 16:05
6e4fb31

Changelog

  • 6e4fb31 Merge pull request #61 from TurtleByte-IN/fix/mai-264-mark-read-with-trash
  • 9de7ddb Merge remote-tracking branch 'origin/main' into fix/mai-264-mark-read-with-trash
  • e2499ef Merge pull request #60 from TurtleByte-IN/fix/mai-262-batch-cleanup-moves
  • 8f04768 Keep "Also mark as read" when a built rule moves mail to Trash (MAI-264)
  • 706beb2 Cleanup Sort and undo move mail in batches, not one email at a time (MAI-262)
  • 06511ab Merge pull request #59 from TurtleByte-IN/fix/mai-253-removed-member-signs-in
  • 9939f17 A removed team member can sign in again; forgetting counts only members (MAI-253, MAI-254)
  • 13f4556 Merge pull request #58 from TurtleByte-IN/feature/mai-246-company-sign-in
  • a52c4df Company sign-in for the Team plan: the add-on in Plan and billing, the setup link in Settings (MAI-246)
  • 8a2dbae Merge pull request #56 from TurtleByte-IN/fix/mai-247-team-seats-invites
  • 3be236b Merge branch 'main' into fix/mai-247-team-seats-invites
  • bcc1443 Merge pull request #57 from TurtleByte-IN/fix/mai-241-first-sort-flakes
  • 925420b Merge branch 'main' into fix/mai-241-first-sort-flakes
  • 576636b Merge remote-tracking branch 'origin/main' into fix/mai-247-team-seats-invites
  • 49485ee Merge pull request #55 from TurtleByte-IN/fix/mai-250-checkout-inline-styles
  • c7cdfba Team seats: one count, invitations add a seat, freed seats given back, no invitation to an existing account (MAI-247, MAI-248, MAI-249)
  • 4c57a34 imaptest: announce at IDLE start what changed since the last command
  • 17a76a0 Let a billing checkout ask for inline styles in the CSP (MAI-250)
  • 032fab7 Merge pull request #54 from TurtleByte-IN/fix/mai-251-hosted-test-summary-error
  • 3075ee6 Hosted: a failed test summary no longer shows the operator's mail-server error
  • 01a0064 Merge pull request #53 from TurtleByte-IN/fix/mai-244-summary-skips-undone
  • 4bb011b Merge branch 'main' into fix/mai-244-summary-skips-undone
  • 5f9d106 Merge pull request #51 from TurtleByte-IN/fix/mai-243-reload-keeps-page
  • 4a5653a Merge branch 'main' into fix/mai-243-reload-keeps-page
  • 9636d28 Merge pull request #52 from TurtleByte-IN/fix/mai-242-cloud-settings-wording
  • 7a92ebb Settings: hosted users see no self-host settings (MAI-242)
  • c7e580f Open the screen an address without the hash names (/rules)
  • e6da12f Summary email: an email whose latest actions were all undone is not counted as sorted (MAI-244)
  • c81ae40 Merge pull request #50 from TurtleByte-IN/feature/mai-234-team-plan
  • 99b58d7 Web: regenerate the API client
  • 8d70361 Plan status for every role; audit log forgets a removed member's address
  • 559ad64 Docs: the team migration is 0029
  • c5a9862 Audit: a rule's draft reply setting
  • 3700752 Merge origin/main (draft replies) into the team plan
  • a115e22 Number the team migration after draft replies' 0028
  • 26cf0df Merge pull request #49 from TurtleByte-IN/feature/mai-233-draft-reply-hook
  • 37e931b Merge remote-tracking branch 'origin/main' into feature/mai-233-draft-reply-hook
  • 79ac8aa Merge remote-tracking branch 'origin/main' into feature/mai-234-team-plan
  • d1e86c5 Merge pull request #48 from TurtleByte-IN/feature/mai-239-otel-export
  • 78c5c5f Team plan in the daemon: roles, members, invitations, seats, audit log (MAI-234)
  • b8c1217 Postgres 0028: replace mailrules_tenants as its owner, the definer
  • 4e354e7 Lint: compare test errors with errors.Is
  • 48c52a1 gofmt
  • 2e610b1 Draft replies through a module: a rule setting, an outbox the module writes from, the reply saved in Drafts and undoable (MAI-233)
  • 32b162c telemetry: optional OpenTelemetry export of the metrics and the log (MAI-239)
  • 952ee57 Merge pull request #47 from TurtleByte-IN/feature/mai-236-log-redact-addresses
  • 381753f Redact email addresses from the log when LOG_REDACT_ADDRESSES is on (MAI-236)
  • e09369f Merge pull request #46 from TurtleByte-IN/feature/mai-238-activity-action-filter
  • f4e93ec Guide: describe the Activity Action filter
  • 3c66f91 Activity: filter by the action taken
  • 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