Repository navigation
Releases
Tresso v0.7.0
What's new
- New: Replace the activity indicators with the logo loader
- New: Show the logo loader wherever something loads
- Fixed: Let only the owner use up a provider sign-in, and only once
- Fixed: Connect Gmail and Microsoft 365 in the system browser on desktop
- Fixed: Let a desktop provider sign-in return to the desktop app
- Fixed: Keep users signed in when they connect a Google or Microsoft account
Install
macOS and Linux:
curl -fsSL https://sherin.dev/tresso/install.sh | bashWindows (PowerShell):
powershell -c "irm https://sherin.dev/tresso/install.ps1|iex"Or download an installer below. Every file is listed in SHA256SUMS. The macOS app is not notarized yet: after
opening the .dmg, use System Settings > Privacy & Security > Open Anyway once.
Tresso v0.6.0
What's new
- New: Let MCP clients change settings through tools at /mcp
- New: Say that telling guests needs Send mail
- New: Show every domain of a connected app
- New: List every domain of a connected app
- New: Add a connected apps settings page
- New: Let third-party apps and MCP clients register and sign in with consent
- New: Describe connected apps
- Fixed: Keep MCP tools from saving default batch times or clearing unknown accounts
- Fixed: Refuse MCP session ids that are not written as a UUID
- Fixed: Block MCP tools for a user past the trial wherever the REST API does
- Fixed: Read Tresso across words unless an ordinary word ends on it
- Fixed: Read Tresso across separators and limit registrations per IPv4 /24
- Fixed: Decide on mail:send from the invitations a change would send
- Fixed: Refuse more look-alikes and system schemes, and limit per IPv6 /48
- Fixed: Need mail:send to tell guests or organizers about calendar changes
- Fixed: Keep mail connections, devices and billing to our own apps
- Fixed: Close open redirects and look-alikes in third-party sign-in
Install
macOS and Linux:
curl -fsSL https://sherin.dev/tresso/install.sh | bashWindows (PowerShell):
powershell -c "irm https://sherin.dev/tresso/install.ps1|iex"Or download an installer below. Every file is listed in SHA256SUMS. The macOS app is not notarized yet: after
opening the .dmg, use System Settings > Privacy & Security > Open Anyway once.
Tresso v0.5.0
What's new
- New: Use gettresso.com as the Tresso domain
- New: Add an access tokens settings page
- New: Describe personal access tokens and their scopes
- New: Add personal access tokens for the API
- Fixed: Show the compose signature in the app's dark look
- Fixed: Install the cron expression package the scheduler needs
- Fixed: Keep personal access tokens within the caller's scopes
- Fixed: Let the mailbox sidebar fill the window height
Install
macOS and Linux:
curl -fsSL https://sherin.dev/tresso/install.sh | bashWindows (PowerShell):
powershell -c "irm https://sherin.dev/tresso/install.ps1|iex"Or download an installer below. Every file is listed in SHA256SUMS. The macOS app is not notarized yet: after
opening the .dmg, use System Settings > Privacy & Security > Open Anyway once.
Tresso v0.4.0
What's new
- New: Save the draft and wait for uploads before restarting into an update
- New: Let the web client hold Sparkle's relaunch
- New: Save the open draft at once and say what a restart would cut short
- New: Run the macOS app with the hardened runtime
- New: Name the bought organization in Checkout's return address
- New: Cover the app with a notice when the subscription ended
- New: Show the payment screen when the subscription ended
- New: Describe a billing status for the clients
- New: Bill organizations through Stripe on a server that bills
- New: Say what this server is at /api/v1/server-info
- New: Publish server images and a production compose file
- New: Refuse a production start with missing or development secrets
- New: Read the API address from config.js when it is served
- New: Give every user a personal organization
- Fixed: Refuse to discard a draft while it is sent or deleted
- Fixed: Say when a restart waits for a draft being deleted
- Fixed: Hold writes per draft while it is sent or deleted
- Fixed: Hold autosaves while a draft is sent or deleted, and name the save that failed
- Fixed: Go back from waiting when the save after the wait fails
- Fixed: Hand a loading page only a relaunch question nobody answered
- Fixed: Keep saving what is typed during saveNow, and never write a draft being sent
- Fixed: Prepare one restart at a time and keep checking while a download waits
- Fixed: Ask a page that loads again about a relaunch Sparkle holds
- Fixed: Let saveNow fail when the draft could not be saved
- Fixed: Stop every key while the payment screen shows
- Fixed: Ignore a stale 401 and show sign-out as busy
- Fixed: Keep every shortcut and stale answer out of a blocked session
- Fixed: Keep the payment notice on top and honest
- Fixed: Restart the app when access returns and harden the payment screen
- Fixed: Let a blocked user remove a device when signing out
- Fixed: Answer 409 when billing changed during a checkout
- Fixed: Never leave a transaction open in the nightly billing check
- Fixed: Read the subscription again after locking it
- Fixed: Lock before asking Stripe and never link a forgotten customer
- Fixed: Close the billing gaps the review found
- Fixed: Require origins in the spelling browsers send
- Fixed: Take CORS origins as a list, not a regular expression
- Fixed: Refuse CORS rules that also allow other sites
- Fixed: Build the server images on every change and move tags only forward
- Fixed: Keep the production stack and its keys safe on restarts
- Fixed: Check addresses, CORS, optional secrets and the database password
- Fixed: Revalidate every app page and never cache a missing asset
- Fixed: Put the user's own personal organization first
Install
macOS and Linux:
curl -fsSL https://sherin.dev/tresso/install.sh | bashWindows (PowerShell):
powershell -c "irm https://sherin.dev/tresso/install.ps1|iex"Or download an installer below. Every file is listed in SHA256SUMS. The macOS app is not notarized yet: after
opening the .dmg, use System Settings > Privacy & Security > Open Anyway once.
Tresso v0.3.0
What's Changed
- feat(desktop): let the desktop app update itself by @SherinBloemendaal in #70
Full Changelog: v0.2.0...v0.3.0
Tresso v0.2.0
What's Changed
- feat(web): give the app a Liquid Glass look by @SherinBloemendaal in #69
Full Changelog: v0.1.0...v0.2.0
Tresso v0.1.0
What's Changed
- refactor(api): serve endpoints through API Platform, add CI by @SherinBloemendaal in #1
- feat: mail accounts with encrypted credentials (phase 1.1) by @SherinBloemendaal in #2
- feat(api): sync ingest protocol and threading (phase 1.2a) by @SherinBloemendaal in #3
- feat(sync): IMAP sync worker (phase 1.2b) by @SherinBloemendaal in #4
- feat: client delta sync with ordered change numbers (phase 1.3a) by @SherinBloemendaal in #5
- feat(api): Mercure realtime change notifications by @SherinBloemendaal in #6
- feat(api): sanitized message bodies and signed attachment content by @SherinBloemendaal in #7
- feat(web): Unified Inbox and reading pane by @SherinBloemendaal in #8
- feat(api): suggest mail server settings for an address by @SherinBloemendaal in #9
- feat(web): manage mail accounts by @SherinBloemendaal in #10
- feat: send mail through the sync worker by @SherinBloemendaal in #11
- feat(web): compose, reply and forward by @SherinBloemendaal in #14
- feat(api): HTML signatures per mail account (roadmap 1.5b) by @SherinBloemendaal in #13
- feat(repo): search mail (roadmap 1.5d) by @SherinBloemendaal in #15
- feat: drafts synced across devices and filed in the Drafts folder by @SherinBloemendaal in #16
- docs(docs): calendar architecture and roadmap phase by @SherinBloemendaal in #12
- feat(desktop): sign in through the system browser, tokens in the keychain (roadmap 3.1) by @SherinBloemendaal in #17
- feat(mobile): sign in through the system browser, tokens in the secure store (roadmap 3.3) by @SherinBloemendaal in #18
- feat(desktop): native notifications for new mail that needs you (roadmap 3.2) by @SherinBloemendaal in #19
- feat: message actions made on the mail server (roadmap 1.7, API and worker) by @SherinBloemendaal in #20
- feat(web): archive, trash, flag, mark unread and move conversations (roadmap 1.7) by @SherinBloemendaal in #21
- feat(web): bulk actions on selected conversations (roadmap 4.2) by @SherinBloemendaal in #22
- feat(mobile): mail on the phone: SQLite copy, inbox and conversations (roadmap 3.4) by @SherinBloemendaal in #23
- feat(mobile): message actions on the phone (roadmap 3.6) by @SherinBloemendaal in #24
- feat(repo): Gmail and Microsoft 365 through provider OAuth (roadmap 1.6) by @SherinBloemendaal in #26
- test(api): expire claims and leases a minute back, not a second by @SherinBloemendaal in #29
- feat(desktop): keep the mail copy in SQLite by @SherinBloemendaal in #27
- fix(sync): find earlier Gmail and Microsoft 365 sends reliably by @SherinBloemendaal in #31
- feat(mobile): write mail on the phone, with shared compose and files on drafts by @SherinBloemendaal in #34
- feat(api): smart inboxes and rule-based classification (roadmap 2.1) by @SherinBloemendaal in #33
- docs(docs): plan todos with deadlines in the calendar by @SherinBloemendaal in #30
- fix(api): close the last classification gaps from the review by @SherinBloemendaal in #35
- feat: calendar core (C2): events with recurrence, invitations, CalDAV sync by @SherinBloemendaal in #25
- test(web): give the classification list fixture the calendar fields by @SherinBloemendaal in #36
- feat: calendar reminders and notifications (C3) by @SherinBloemendaal in #28
- feat(api): scan attachments with ClamAV and quarantine infected content by @SherinBloemendaal in #32
- feat(api): synced todos, make todo from an email, automatic todos per smart inbox (roadmap 2.2) by @SherinBloemendaal in #37
- feat(api): calendar assistant interfaces and the meeting time finder (C6) by @SherinBloemendaal in #41
- fix(api): refresh locked scheduling preferences and allow whole-day working hours by @SherinBloemendaal in #46
- feat(api): push new do and delegate mail to the phone, desktop and browsers (3.7) by @SherinBloemendaal in #44
- fix(api): mail push follow-ups: previews from planning, user on every push, offline taps by @SherinBloemendaal in #47
- feat(repo): batched delivery for notification and advertise mail, one-click unsubscribe by @SherinBloemendaal in #40
- feat(repo): bulk management by smart inbox and cleanup suggestions (roadmap 4.3) by @SherinBloemendaal in #38
- feat(repo): unsubscribe lane, batch summary push, dialer wiring test, IMAP unsubscribe note by @SherinBloemendaal in #49
- feat(api): hand over conversations, wait on them in Waiting on, and nudge (roadmap 2.4) by @SherinBloemendaal in #39
- fix(web): bulk Stop race, and test held messages in the sender list by @SherinBloemendaal in #50
- fix(repo): count batch summaries again at delivery, open the batches, store the summary flag by @SherinBloemendaal in #51
- fix(web): stop the endless selection reads and the blocked copy that made specs hang by @SherinBloemendaal in #53
- feat: daily brief for know mail with one-click Noted by @SherinBloemendaal in #43
- fix(web): say to reload, or reopen the copy, when another tab closes it by @SherinBloemendaal in #54
- feat: Google and Microsoft calendars and online meetings (C5) by @SherinBloemendaal in #52
- feat: calendar clients (C4) by @SherinBloemendaal in #45
- feat(web): triage mode, one conversation at a time with D, H and K by @SherinBloemendaal in #42
- fix(api): key occurrences at a repeated clock time as they read back by @SherinBloemendaal in #56
- fix: resume partial provider calendar writes and keep moves safe (C5 follow-up) by @SherinBloemendaal in #55
- feat(api): encrypt stored mail at rest with a key per user by @SherinBloemendaal in #48
- fix(sync): adopt a provider's ETag on a retry only when nobody else changed the event by @SherinBloemendaal in #57
- fix(api): bound background re-encryption and clear notifications that never deliver by @SherinBloemendaal in #58
- feat(repo): plan todos in the calendar before their due date by @SherinBloemendaal in #59
- fix(api): keep a removed plan when an edit resends the same due date by @SherinBloemendaal in #60
- feat(web): keep the sidebar on every screen and calm the motion by @SherinBloemendaal in #61
- feat(api): give the sign-in page Tresso's look by @SherinBloemendaal in #62
- fix(web): whole-row selection, full-width reading, menus that never clip by @SherinBloemendaal in #63
- feat(web): calendar actions in triage, keycaps and compose icons by @SherinBloemendaal in #64
- fix(web): close the event editor and scope dialog on a backdrop click by @SherinBloemendaal in #65
- feat(web): animate layers, lists, triage and the calendar by @SherinBloemendaal in #66
- feat(desktop): releases, install scripts and a new README by @SherinBloemendaal in #67
- feat(desktop): give Tresso its own icon and a drag-to-install DMG by @SherinBloemendaal in #68
New Contributors
- @SherinBloemendaal made their first contribution in #1
Full Changelog: https://github.com/gettresso/tresso/commits/v0.1.0