Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 13:32
· 210 commits to main since this release

Changelog

  • cede310 Release: give the Homebrew tap token as a bare .Env reference, the only form GoReleaser accepts for tokens
  • 4298a6c Contributing: outside pull requests are not accepted for now; issues are welcome and security reports go through private vulnerability reporting
  • 62d72af Undoing a Cleanup batch, the last hour or what a rule did today now asks first, saying how many emails go back when known and that dry-run does not stop an undo, while one email's Undo stays one click (MAI-109)
  • 55f187c Merge feature/mai-99-summary-email
  • 8e1d956 You can now get a daily or weekly summary email of what MailRules sorted per rule, what it trashed and what waits in Needs review, with links back into the app, sent through your own SMTP server and set up, tested and previewed in Settings (MAI-99)
  • 4d1f994 The free build no longer includes Suggest from my mail: its engine moves to the hosted build, which adds it through the new public plug-in package ext, while the free build hides the tab and answers its route with not_available (MAI-96)
  • f43afba Merge fix/mai-65-light-contrast
  • e0c8143 Activity groups each day's rows by when MailRules acted on them, newest first, shows that time on the row and the arrival date in the details, calls its first tile "Acted on today" so "Sorted" means the same as on the Overview, and a rule added from a template says "Added from the Receipts template" instead of quoting words the user never said (MAI-74, MAI-71, MAI-73)
  • 7092bb1 Input borders, the Connecting dot, the idle bar and muted text on the selected nav item now meet WCAG AA contrast in light mode. MAI-65
  • c57a832 Merge fix/mai-41-tester-limit-and-tabs
  • e64974d The tester and scan boxes take their bounds from the daemon, a draft card says how many emails it was really tested on, and the Add rules tabs are real tabs for screen readers and the keyboard (MAI-41, MAI-42, MAI-54)
  • 0c5b43f Rules name the folder a trash rule's mail really goes to, a No rule row shows the model's confidence that no rule applies in its chip as in its reason, Settings labels keep their space before the dot, Select all and Select none in a cleanup check act on the rows the rule filter shows, a late Settings load no longer overwrites newer values, and connecting a mailbox no longer logs a Svelte warning (MAI-72, MAI-78, MAI-79, MAI-47, MAI-58, MAI-39)
  • 3da7312 Cleanup shows what a check would do as a chart, with Choose emails opening the list in a short scrolling box (MAI-93)
  • 48744b8 README: install with Homebrew, the tap is named, and Compose can publish another port through MAILRULES_PORT (MAI-91)
  • f2f3154 Merge fix/mai-86-dry-run-sender-hits
  • cdc4dd2 In dry-run, a sender rule no longer counts emails it only pretended to sort, so its hit count reflects real mail only (MAI-86)
  • 635e990 Answering a Needs review email that was moved or deleted in another mail app now takes it off the list and says why, instead of leaving it stuck in the queue (MAI-85)
  • 92f9f75 Merge chore/mai-84-release-workflow
  • 6bba404 Merge feature/mai-83-first-run-setup
  • e08d39d Merge fix/mai-77-duplicate-review
  • b09a701 Merge fix/mai-46-cleanup-undo-count
  • 2513072 Merge fix/mai-45-dry-run-cleanup-learning
  • bd7d56e An email moved out of the inbox and back, or brought back from where a rule put it, stays one email: it waits in Needs review once and is not sorted away again (MAI-77)
  • 531e97c A fresh install now guides the new admin through choosing the AI and connecting a first mailbox, with each step skippable and dry-run left on (MAI-83)
  • e713434 Undoing a cleanup batch says how many emails it really moved back, leaving out rows that were skipped or only recorded in dry-run and counting an email once however many actions it had (MAI-46)
  • c3168e2 Tagging a version v* publishes a GitHub Release with Linux and macOS archives (web UI built in, LICENSE included) and checksums, and pushes a multi-arch image to ghcr.io/turtlebyte-in/mailrules, skipping the Homebrew cask until its tap token exists (MAI-84)
  • e288cba A Sort or new mail handled in dry-run no longer teaches MailRules a sender rule, then or after going live, so those senders are still decided by the model (MAI-45)
  • 1fd2d24 Activity says how many mailboxes are really live, and "No mailbox live" when all are paused (MAI-70)
  • 6e2d69f MailRules is licensed under AGPL-3.0: LICENSE, a README section, the licence in releases and the image, and a Source code link in the app (MAI-81)
  • 0b1c93c Keep the owner's private documents out of git; the README carries the configuration table (MAI-80)
  • 4087991 Add rules: drafted rules keep their conditions and exceptions, because the AI is shown the exact shape of a condition (MAI-76)
  • efbcab6 Mail sent from the mailbox's own address is left alone by default, and Settings can switch that off (MAI-75)
  • b5a0380 Merge feature/mai-66-learn-bulk-senders-faster
  • d8beb6a Merge feature/mai-64-dark-mode
  • 34a1efa Merge fix/mai-62-unsure-email-untouched
  • 4ed3b1d Merge fix/mai-61-retry-unreadable-answers
  • 185acd2 Merge feature/mai-60-composer-verbatim-words
  • b642bed Newsletter senders skip the AI sooner: bulk mail that passed DMARC learns a sender rule after one confident decision, not three (MAI-66)
  • b6ed3b7 Dark mode: Settings → Appearance picks System, Light or Dark, applied before the page paints and following the device live on System (MAI-64)
  • b0812e0 Every screen works on a phone: a Menu bar replaces the sidebar, controls are 44px to tap, nothing scrolls sideways and the Cleanup check stacks its rows (MAI-63)
  • 3df9ac6 An email the AI is unsure about waits in Needs review untouched, even when a default rule could have taken it, and is no longer tagged in the mailbox (MAI-62)
  • b4308ba An AI answer that cannot be read is asked for again, twice, and if it still cannot be read the email is left where it is with a reason in Activity, not retried for half an hour (MAI-61)
  • 1de09ee Composed rules keep the owner's exact words: the model picks numbered pieces of the text instead of copying them, and each compose call logs its model time and tokens (MAI-60)
  • a951820 Templates: a Recruiters template sends recruiter outreach to Jobs unless you have replied to the sender (MAI-36)
  • 8f854c5 Scans read 100 emails per request to the mail server, not one each (MAI-59)
  • b663a90 Claude keys that cover a whole organisation work: MailRules names the workspace, looking it up itself when it can (MAI-57)
  • f8e67ca Logs: a model provider's refusal says why, each suggestion request logs its size, and the body choice is logged (MAI-56)
  • 25a1d9a Let the rule composer run on OpenAI-compatible and Ollama models, not only Claude (MAI-55)
  • 6293338 Merge main into feature/mai-51-suggest-rules
  • d4128c4 Send trashed mail to a MailRules Trash folder instead of the real Trash, on by default (MAI-53)
  • 9a8cbfb Add rules: suggest rules from the mail already in a folder, the AI proposing folder and trash rules to pick from (MAI-51)
  • 6e10287 Add rules builder: set how sure the AI must be, with the rule editor's own slider (MAI-50)
  • 2c45596 Worker: a cleanup Sort reads the account under the supervisor's lock, so a reconnect cannot race it (MAI-52)
  • 13a3c3a Cleanup: the batch and check poll timers stop themselves when their state is gone (MAI-49)
  • caa3979 Cleanup: a past run says what it covered, not 'all time' for every run without a start (MAI-48)
  • bddc77c Cleanup: choose the newest N emails, the last N days or all mail, and say when a check covers only the newest 2,000 (MAI-48)
  • 0b4a70c Cleanup: the ticks are kept with the check in the daemon's memory and restored on reload (MAI-44)
  • 3ee847a Cleanup check table: fit the card, honest sorted count, confidence only where it means something, Needs review labelled (MAI-44)
  • f1643f1 Cleanup: one real check held in memory, a selectable table, and a Sort that replays it without asking the model again (MAI-44)
  • b5dca67 Rule tests: progress at any size, a chosen number of emails, daemon debug logs, waiting states in the UI (MAI-40)
  • a403c87 Merge feature/mai-33-settings-keys-in-use
  • 12405b0 Merge feature/mai-14-rewrite-rule-with-ai
  • 469b3ab Merge feature/mai-34-builder-conditions-optional
  • f2040e3 Merge feature/mai-32-settings-key-guide-links
  • 52ff8aa Merge fix/mai-31-decided-without-model-count
  • ac4c1f2 Rules: Rewrite with AI re-optimizes an existing rule in place (MAI-14)
  • 7ebcd34 Count only emails a sender or condition rule acted on as decided without a model (MAI-31)
  • cf4c1c3 Settings: show the model keys in use, tuck the rest under Other providers (MAI-33)
  • 5639c1e Add rules builder: conditions are optional, none shown until added (MAI-34)
  • 1be1b08 Settings: link each model key to the provider's guide (MAI-32)
  • 3e6d253 Add rules: a draft's name can be edited on its card
  • 1eedb81 Overview: filter links, Test on a live mailbox, last email; one separator on Mailboxes
  • c34f0f9 Merge feature/mai-28-undo-age-draft-mailbox
  • 0483a72 Merge feature/mai-25-outcome-filter-always-domain
  • dba0ba6 Activity filters by where mail ended up, and Always do this can cover the sender's whole domain
  • e265926 Cleanup says when a batch can no longer be undone; a drafted rule can apply to one mailbox
  • f7ef3ca Settings shows why a decision model cannot work; Mailboxes can test a live mailbox
  • 23b5d76 Close the small contract gaps
  • 1fe98b7 Activity feed: sender name, a ready outcome sentence, domain rules and an outcome filter
  • 33f8c50 Settings: warn about a decider that cannot work, one meaning for empty, and where each key comes from
  • b754de0 Undo one email in one call
  • 0eb64cc Refusal messages are sentences for a person; the path says where
  • 4e32861 Condition rules work without a model wherever they sit; undone mail is not counted as sorted
  • c925c1f Rule tester: test only the rules the request names
  • 42e4797 Usage: count the free share over every processed email
  • 5a5777d Fix the web defects found in the full test run
  • 90d6ace Overview: use the daemon's own split and quiet-rule count
  • 8aa6952 Web: regenerate API types for contract 0.10 and update the stats fixture
  • ec88770 Merge the web app (feature/web-app) into main
  • 0ed625e Stats summary: numbers the Overview screen needs
  • 35f5b90 Make HTTPS-only login cookies configurable
  • fc2cc10 Merge fix/mai-16-overview-first-design into feature/web-app
  • cc29e52 Put the Overview in the first design and undo the app-wide restyle
  • 52364d5 Merge feature/mai-16-overview-screen into feature/web-app
  • 68f00ea Add the Overview screen and the revised design's tokens
  • 152ac00 Finish the move to contract 0.9: drop not-built plumbing, share the folders call
  • 5ce7dc1 Merge feature/mai-1-cleanup-senders-contract-09 into feature/web-app
  • 1ca96e6 Merge feature/mai-4-builder-errors-composer into feature/web-app
  • 13886af Merge feature/mai-2-mailbox-edit-tls into feature/web-app
  • 2bea445 Merge feature/mai-1-activity-contract-09 into feature/web-app
  • 117a249 Take Senders, Cleanup and Usage to contract 0.9
  • 7799459 Show refused rule saves on the builder row, and put Add rules on the finished contract
  • 2b4e46b Edit a connected mailbox, choose encryption when connecting, and set decider URLs
  • 08b1901 Take Activity and Needs review to contract 0.9
  • b6feb5c Merge main (M8 to M10) into feature/web-app
  • 21d2c71 M10: embedded UI handler, Docker image, compose, systemd unit, goreleaser, quickstart and smoke checklist
  • d660568 M9: few-shot learning, senders, cleanup, templates, stats and retention
  • ca7267f Put every screen on the daemon's API and drop the demo data layer
  • 9e45e07 Merge real API wiring for rules-compose into feature/web-app
  • 4b40d17 Merge real API wiring for senders-cleanup-usage into feature/web-app
  • ef97c9a Merge real API wiring for activity-review into feature/web-app
  • 6c7815e Merge real API wiring for accounts-settings into feature/web-app
  • 6c6c7a3 Wire Rules and Add rules to the daemon API
  • 76f0fc0 Wire Senders, Cleanup and Usage to the daemon API
  • 4d36a2d Wire Activity and Needs review to the daemon API
  • 0c64d75 Move Mailboxes and Settings from demo data to the daemon API
  • 583bd0a M8: rule composer, batch save, re-optimize and the rule tester
  • 2b4f58c Take the complete API contract from M7 and add 501 handling
  • ebdd84e Merge main (M5 to M7) into feature/web-app
  • 094dec4 M7: HTTP API, event stream, runtime settings, metrics and the complete OpenAPI contract
  • d502e39 M6: action executor, undo, batch undo, corrections, daily live batch and dry-run switch
  • 1d0e21c M5: pipeline, account supervisors, retry job, learned sender rules and event hub
  • 08892a4 Merge main (M2 to M4) into feature/web-app
  • b61d565 Join the screens up: review count, rule ideas, starter rules, unsubscribe flag
  • 4b9bef5 Merge Rules and Add rules screens into feature/web-app
  • 69498e7 Build the Rules and Add rules screens on demo data
  • 810b3c6 Merge main (M3, M4) into M2
  • 227ed8a Merge Activity and Needs review screens into feature/web-app
  • 12ff311 M2: IMAP connector, message parsing, account storage and accounts CLI
  • e43ffff Build the Activity and Needs review screens on demo data
  • 73b823f Copy demo data through JSON so state proxies can be passed to it
  • a2f8550 Merge Senders, Cleanup and Usage screens into feature/web-app
  • 20ed864 Web: Senders, Cleanup and Usage screens on demo data
  • 03a5ed7 Merge Mailboxes and Settings screens into feature/web-app
  • 0509e4c Build the Mailboxes and Settings screens on demo data
  • 13d9530 Merge main (M3) into M4
  • c0fd022 M4: model adapters, router with escalation, price table, usage ledger and eval command
  • df91d0f M3: rules engine, condition matcher, evaluation order, YAML import/export and rules CLI
  • 72d2537 Web foundation: real sign-in, shell, demo data layer and build wiring
  • 080cfe1 Merge main (M0, M1) into feature/web-app
  • 1ccf4fa F0: scaffold web app shell, tokens, router and API wrapper
  • ca1d46e Add shared email types for the connector, rules engine and model adapters
  • 8ab251e M1: schema, credential encryption, admin login, sessions, CSRF and API contract
  • a4ed37c Add frontend plan: stack, layout, conventions and phases F0-F7
  • 2e358e1 M0: scaffold daemon, config, logging, migrations runner and CI
  • 2ca3c86 Import design handoff: PRD, backend plan, UI prototype