Mailspring/CHANGELOG.md

761 lines
22 KiB
Markdown
Raw Normal View History

# Nylas Mail Changelog
2017-04-18 14:10:26 +08:00
### 2.0.15 (4/17/2017)
+ Correctly handle and inform users about database malformed errors that can
occur both in main process and/or window processes
### 2.0.14 (4/14/2017)
- Fixes:
+ Prevent from adding duplicate accounts and sync workers due to account id changes
+ Correctly remove sync worker reference when destroying it
+ Correctly initialize SyncProcessManager with Identity
+ Fix contact ranking runtime error
### 2.0.13 (4/13/2017)
- Fixes:
+ Upload nupkg with correct name for win32 autoupdater to work
+ Correctly handle window.unhandledrejection events
### 2.0.12 (4/13/2017)
- Fixes:
+ Prevent NM from overwriting N1 binary on windows
+ Fix runtime error in sync process
+ Prevent old N1 config from getting wiped when installing Nylas Mail
- Development:
+ Remove useless docs
### 2.0.11 (4/12/2017)
- Fixes:
+ Dispose of mail listener connection before getting new one. This will
prevent sync process from leaking Imap connections and getting stuck.
+ Fix performance regression when polling for gmail attribute changes
+ Don't double report unhandled rejections
+ Fix unhandled rejection handling (fix ipc parse error)
+ Fix regression when processing messages under a transaction
+ Rate limit database malformed error reports to sentry
### 2.0.10 (4/11/2017)
- Fixes:
+ Fix missing UID error when archiving threads after sending
+ Ensure all mail folder exists before trying to access it
+ Fix SyncbackMetadataTask dependency
- Development:
+ Don't report stuck sync processes to Sentry
+ MessageFactory -> MessageUtils, SendUtils -> ModelUtils
### 2.0.9 (4/11/2017)
- Features:
+ Re-add imap to the onboarding accounts page
- Fixes:
+ Correctly detect changes in labels, starred and unread for Gmail accounts
+ Fix delta streaming connection retries
+ Handle weird MIME edge case with @ symbol
- Performance:
+ Wrap message processing in transaction for better performance
+ Increase sqlite `page_size` and `cache_size`
- Cloud:
+ Improve performance of reminders worker
+ Add DataDog StatsD for heartbeats
+ Restart automatically on unhandeld rejections
- Development:
+ Add benchmark mode
### 2.0.8 (4/7/2017)
- Fixes:
+ Revamp SSL options during authentication to be able to properly auth against
SMTP and prevent sending failures
+ Ensure IMAPConnnectionPool uses updated account credentials
+ Always fetch and update identity regardless of environment
+ Properly handle serialization errors for JSON columns in database
- Cloud:
+ Switch MySQL charset to utf8mb4
+ Add exponential backoff for cloud worker jobs when encountering errors
+ Use IMAP connection pool in cloud workers to limit number of connections
+ Properly generate metadata deltas when clearing expiration field
+ Increment default imap connection socket timeout in cloud workers
- Plugins:
+ Correctly syncback metadata for send later
+ Delete drafts after they are sent later
+ Correctly ensure messages in sent folder for send later in gmail
+ Fix send reminders version conflict error
+ Correctly set metadata values for send reminders
+ Fix imap folder names in send-reminders
+ Fix send later access token refresh
- Development:
+ Add view of CloudJobs in n1.nylas.com/admin
+ Ensure daily script grabs current version after pulling latest changes
### 2.0.1 (4/5/2017)
- Features:
+ Limit search to focused perspective
- Fixes:
+ IMAPConnectionPool now correctly disposes connections
+ Ensure we use refreshed access token for all imap connections during sync
+ Prevent IMAP connection leaking in sync worker
+ Fix send later button saving state and sending action
+ Fix inline images for send later
+ Correctly enable plugins on 2.0.1
+ Make sure app can update even after signing out of NylasID
+ Don't make any requests when NylasID isn't present
- Cloud:
+ Make cloud workers more robust
+ Remove old SignalFX reporter & add docs
+ Log errors according to bunyan specs
- Development:
+ Add script to run benchmarks once per day at specified time
+ Add script to upload benchmark data to Google Sheets
+ Add better logging when restarting stuck sync worker
### 2.0.0 (4/4/2017)
Introducing Nylas Mail Pro
- Features:
+ Enable snooze, send later, and send reminders
+ Add feature limits to reminders and send later
- Fixes
+ Don't assign duplicate folder roles
+ Re-setup IdentityStore in new window
- Development:
+ Fix sqlite build for older versions of clang
+ Remove rogue scripts-tmp folder
+ Remove unecessary db setup for mail rules
### 1.0.55 (3/31/2017)
- Fixes
+ Ensure open/link tracking work when sending multiple consecutive emails
+ Fix performance of contact rankings database query
+ Fix performance of thread search index database queries
+ Fix performance of ANALYZE queries
### 1.0.54 (3/31/2017)
- Features:
+ Add search support for `has:attachment`
- Fixes:
+ Reduce database thrashing caused by thread search indexing
+ Interrupt long-running syncback tasks
+ Fix performance of contact rankings db query
+ Don't hit contact rankings endpoint until account is ready
+ Ensure sync worker is stopped correctly when removing accounts or when
restarting it
- Metrics:
+ Report metrics about SyncbackTask runs
- Perf:
+ Delay building new hot window to improve win perf
- Development:
+ Add script to benchmarks new commits
+ Add DEBUG flag to be able to log all query activity for both databases
+ Add `DatabaseStore.write` which doesn't use Transactions
+ Metadata test fixes
### 1.0.52 (3/29/2017)
- Fixes:
+ Fix open and link tracking:
+ No longer triggers your own opens & link clicks
+ Link tracking indicator is now always present in sent messages
+ Fix regression in DB query execution which would delay all queries in the
system.
+ Reduce max retry backoff for DB queries, which could hold a query open for
too long
+ Fix thread reindexing issues, which should help performance and correctly
index threads for search
+ Fix `in:` search syntax for non-gmail search
+ Fix references to RetryableError imports
- Development:
+ Add initial sync benchmarking script
+ Clean up logging in DatabaseStore: differentiate background queries from
regular queries in the logs, only log queries that actually take more than
100ms.
+ Point the billing server URL to staging by default for easier development,
and allow it to be overriden
+ Add index to expiration field on Metadata
### 1.0.51 (3/28/2017)
- Features:
+ Restore contact rankings feature for better contact predictions in composer
recipient fields
- Fixes:
+ Correctly listen for new mail in between sync loops
+ Verify SMTP credentials in /auth endpoint
+ Also prioritize sent label for initial Gmail sync
+ Properly relaunch windows on autoupdate
+ Properly set up local /health endpoint by making sure to attach route files
ending in .es6 to local-api
- Perf:
+ Don't throttle while syncing first 500 threads
- Metrics:
+ Report battery state changes to Mixpanel
- Development:
+ Make deploy-it say what it's doing instead of hanging silently
+ Make deploy-it print link to the EB console
+ Make help message better on deploy-it
+ Add `SHOW_HOT_WINDOW` env for prod debugging of window launches
+ Correctly ignore `node_modules` in .ebignore for faster deploys
+ Only bootstrap specific pkgs in postinstall for faster npm installs
### 1.0.50 (3/28/2017)
- Fixes:
+ Fix SyncActivity errors introduced in 1.0.49
### 1.0.49 (3/27/2017)
- Fixes:
+ Ensure sync process does not get stuck
+ Ensure the worker window is always available
+ Retry database operations when encountering locking issues
- Metrics:
+ Detect and report when the worker window is unavailable
+ Detect and report when a sync process is stuck
- Development:
+ Windows autoupdater fixes
+ Add better documentation for windows autoupdater
+ Remap windows dev shortcuts to match the ones used on darwin and linux
+ When building app, only re-install for optional dependencies on darwin
- Cloud:
+ Timeout streaming API connections every 15 minutes
+ Add missing database indexes from SQL review
### 1.0.48 (3/27/2017)
- Fixes:
+ Reindex threads when they're updated
+ Don't try to restart sync on every IdentityStore change
+ Correctly remove inline images with x button
### 1.0.47 (3/23/2017)
- Fixes:
+ Report hard crashes using Electron's built-in crash reporter
- Development:
+ Don't handle IMAP timeouts in the connection pool
+ Record file download times
### 1.0.46 (3/22/2017)
- Fixes:
+ Ensure files get transferred in forwarded messages
+ Correctly sign out of NylasID
+ Don't report non-reportable errors in delta connection
+ Fix S3 attachment upload for send later
- Development:
+ Rename downloadDataForFile(s) -> getDownloadDataForFile(s)
+ Switch type of Metadata value column
+ Fix build condition
+ Fix DraftFactory specs
+ Refactor sync worker IMAPConnectionPool callbacks
### 1.0.45 (3/21/2017)
- Fixes:
+ Correctly report unhandled errors caught in window.
+ Fix passing cursor to delta streams
### 1.0.44 (3/20/2017)
- Fixes:
+ Add error handling when creating syncback requests
+ Fix path for tmp dir in daily script
### 1.0.43 (3/17/2017)
- Fixes:
+ Revert nodemailer to previous version
+ Creating a folder no longer creates a non-existent duplicate subfolder
+ Don't bump threads to the top of list when a message is sent: only update lastReceivedDate if the message was actually received
### 1.0.42 (3/16/2017)
- Fixes:
+ Fix spellchecker regression (Don't exclude source maps in build)
### 1.0.41 (3/16/2017)
- Development:
+ Upgrade nodemailer to latest version
### 1.0.40 (3/15/2017)
- Features:
+ Add support for attachments in send later
- Development:
+ Improve build time
+ Windows Autoupdater fixes
### 1.0.39 (3/14/2017)
- Fixes:
+ Fix missing depedency for imap-provider-settings
- Development:
+ Only upload 7 characters of the commit hash for Windows build
### 1.0.38 (3/13/2017)
- Fixes:
+ Restart sync when computer awakes from sleep
+ Fix issue that made users log out of NylasID, restart, and then force them to log out and restart again in a loop (#3325)
+ Don't start sync or delta connections without an identity
- Development:
+ Restore windows build
+ Remove specs from production build
+ Fix arc lint
+ Specify Content-Type in developer bar curl commands
### 1.0.37 (3/10/2017)
- Fixes:
+ Fix regression introduced in 1.0.36 in the message processor
+ Correctly show auth error when we can't connect to n1cloud
+ Fix error thrown sometimes when handling send errors
### 1.0.36 (3/10/2017)
- Fixes:
+ Increase the IMAP connection pool size
+ Shim sequelize to timeout after 1 minute on every database operation. This
is a safeguard to prevent unresolved db promises from halting the sync loop.
+ Better error handling to prevent the message processor from halting sync
- Development:
+ Measure and report inline composer open times
+ Refactor MessageProcessor to be more robust to errors
### 1.0.35 (3/9/2017)
- Fixes:
+ Make sure delta connection is restarted when an account is re-authed
+ More defensive error handling to prevent sync from halting
+ Prevent delta streaming connection from retrying too much
+ Fix error when attempting to report a fetch id error
+ Prevent error restart loop when database is malformed
+ Correctly cancel search when the search perspective is cleared
+ When many search results are returned from the server, don't try to sync them all at once, otherwise would slow down the main sync process.
+ When restarting the app, don't try to continue syncing search results from an old search
- Development:
+ Consolidate delta connection stores, remove `internal_package/deltas`
+ Rename NylasSyncStatusStore to FolderSyncProgressStore
+ Consolidate APIError status code that we should not report
+ Don't report incorrect username or password to Sentry
+ Rate limit error reporting for message processing errors
+ Fix circular reference error when reporting errors
+ Refactor file download IMAPConnectionPool usage
+ Don't focus the Console tab in dev tools every time an error is logged
+ Correctly set process title
### 1.0.34 (3/8/2017)
- Fixes:
+ Sync should not get stuck anymore due to sequelize
+ Delta Streaming connections now correctly retry after they are closed or an error occurs
+ Handle errors when opening imap box correctly
- Development:
+ Add script/daily
+ Provide better info to Sentry on sending errors
+ Refactor and clean up delta streaming code
+ Refactor message processing throttling
### 1.0.33 (3/8/2017)
- Features:
+ Add intitial support for send later
- Fixes:
+ Fetch unknown message uids returned in search results
+ Don't throttle message processing when syncing specific UIDs
- Development:
+ Better grouping for APIError by URL also
+ Don't generate sourceMapCache in prod mode
+ Upload a next-version to S3 for autoupdate testing
+ Windows build fixes
### 1.0.32 (3/7/2017)
- Development:
+ Report provider when reporting remove-from-threads-from-list
+ Report provider when reporting send perf metrics
### 1.0.31 (3/6/2017)
- Fixes:
+ Improve initial sync speed by scaling number of messages synced based on
folder SELECT duration
+ Immediately restore sync process when app comes back online after being
disconnected from the internet.
+ Can now reply from within notifications again
- Development:
+ Add basic rate limiting to Sentry
+ Report all search performance metrics
+ Prevent noisy uncaught errors when closing long connection
+ Improve reporting of refresh access token errors
+ Don't double report refresh access token API errors
+ Replace `setImmediate` with `setTimeout` as Promise scheduler
+ Use new Bluebird preferred `longStackTraces` syntax
+ NylasAPIRequest refactored and cleaned up
+ Search refactors and improvements
+ Protect from operating on IMAP connection while opening a box
+ Enable logging in prod builds
+ Make deploy-it support -h/--help
+ Restore cloud testing environments
### 1.0.30 (2/28/2017)
- Fixes:
+ Can properly add signatures and select them as default for different
accounts.
+ Can now correctly reply to a thread and immediately archive it or move it to
another folder without throwing an error (#3290)
+ Correctly fix IMAP connection timeout issues (#3232)
+ Nylas Mail no longer opens an increasing number of IMAP connections which
caused some users to reach IMAP server connection limits (#3228)
+ Fix memory leak while syncing which caused sync process to restart
sometimes.
+ Correctly handle IMAP connections ending unexpectedly
+ Correctly detect retryable IMAP errors during sync + detect more
retryable errors
+ Correctly catch more authentication errors when sending
+ Improve speed of processing messages during sync
+ Prevent unnecessary re-renders of the thread list
- Development:
+ Report performance metrics
+ More Coffeescript to Javascript conversions
### 1.0.29 (2/21/2017)
- Fixes:
+ You can now click inline images in messages to open them
+ More IMAP errors have been identified as retryable, which means users will
see less errors when syncing an account
+ Improve performance of thread search indexing queries
+ Correctly catch Invalid Login errors when sending
- Development:
+ Developer bar in Worker window now shows single delta connection
+ More code converted to Javascript
2017-02-16 16:18:52 +08:00
### 1.0.28 (2/16/2017)
2017-04-18 14:10:26 +08:00
- Fixes:
+ Fix offline notification bug that caused api outage
+ We now properly handle gmail auth token errors in the middle of the sync loop. This means less red boxes for users!
+ Less battery usage when initial sync has completed!
+ No more errors when saving sent messages to sent folders (`auth or accountId` errors)
+ No more `Lingering tasks in progress marked as failed errors`
+ Syncback tasks will continue retrying even after closing app
+ Syncback tasks retry more aggressively
+ Detect more offline errors when sending, sending is more reliable
+ Imap connection pooling (yet to land)
+ More retryable IMAP errors, means less red boxes for users
+ Offline notification now shows itself when were actually offline, shows countdown for next reconnect attempt
- Development:
+ More tests
+ Don't use breadcrumbs in dev mode
+ Add a better reason when waking sync for syncback in the logs
+ BackoffScheduler, BatteryManager added for reusability
2017-02-16 16:18:52 +08:00
2017-02-16 15:22:32 +08:00
### 1.0.27 (2/14/17)
- Fixes:
+ Offline notification fixes
2017-02-11 07:40:53 +08:00
### 1.0.26 (2/10/17)
2017-02-10 15:54:20 +08:00
- Fixes:
2017-02-11 07:40:53 +08:00
+ Downloads retry if they fail
+ NylasID doesn't intermittently log out or throw errors
+ Fix initial sync for Inbox Zero Gmail accounts
2017-02-10 15:54:20 +08:00
2017-02-11 07:43:51 +08:00
### 1.0.25 (2/10/17)
- Fixes:
+ When replying to a thread, properly add it to the sent folder
2017-02-10 15:54:20 +08:00
- Development:
+ Can now once again run Nylas Mail test suite
2017-02-10 02:40:03 +08:00
### 1.0.24 (2/9/17)
2017-02-10 02:30:17 +08:00
- Fixes:
+ Fix error reporter when reporting an error without an identity (this would
crash the app)
- Development:
+ Fix logging inside local-sync api requests
+ Stop reporting handled API errors to Sentry
+ Report thread-list perf metrics
2017-02-09 10:43:53 +08:00
### 1.0.23 (2/8/17)
- Fixes:
+ Fix emails occasionally being sent with an incomplete body (#3269)
+ Correctly thread messages together when open/link tracking is enabled
+ Fix `Mailbox does not exist` error for iCloud users (#3253)
2017-02-09 16:28:24 +08:00
+ When adding account, correctly remove whitespace from emails
2017-02-09 10:43:53 +08:00
+ Fix link in update notification to point to latest changelog
- Performance:
+ Thread list actions no longer sporadically lag for ~1sec (this is especially
noticeable when many accounts have been added)
+ No longer slow down sync process when more than 100,000 threads have been synced
- Development:
+ Better logging in worker window
+ You can now run a development build of Nylas Mail alongside a production
build
2017-02-08 01:01:06 +08:00
### 1.0.22 (2/7/17)
- Fixes:
2017-02-08 01:42:34 +08:00
+ New mail notification sounds on startup are combined when multiple new messages have arrived
2017-02-08 01:01:06 +08:00
+ You can now correctly select threads using `cmd` and `shift`
+ Improve message fetching by making sure we always fetch the most recent
messages first.
+ Improve IMAP connection timeouts by incrementing the socket timeout (#3232)
+ When adding a Google account, make sure to show the Account Chooser
- Development:
+ Nylas Identity is no longer stored in config.json
2017-02-04 02:29:17 +08:00
### 1.0.21 (2/3/17)
2017-02-03 09:46:19 +08:00
- Fixes:
2017-02-04 02:20:21 +08:00
+ Fixed an issue where Nylas Mail could delete all accounts (addresses #3231)
2017-02-03 09:46:19 +08:00
+ Correctly delete and archive threads when they contain sent messages (addresses #2706)
+ Improve performance and prevent crashes when running several sync actions
+ Improve error handling when sync actions fail
2017-02-04 02:29:17 +08:00
+ Fix JSON serialization issue which could cause sync process to error.
2017-02-03 09:46:19 +08:00
2017-02-01 22:58:37 +08:00
### 1.0.20 (2/1/17)
- Fixes:
+ Properly clean up broken replies
2017-02-01 10:04:30 +08:00
### 1.0.19 (1/31/17)
- Fixes:
+ Replies on threads won't create duplicate-looking emails. This began
to happen on midnight February 1 UTC due to a date parsing bug
+ Improve error handling in sync
+ Better retrying of certain syncback actions
- Development:
+ Now using Electron 1.4.15
2017-01-31 07:23:41 +08:00
### 1.0.18 (1/30/17)
- Performance:
+ 60% reduction of CPU usage during initial sync due to optimizing
unnecessary rendering
- Fixes:
+ New composer stays in "to" field when initially typing
- Development:
+ Better documentation for Nylas Mail SDKs
+ GitHub repository renamed from nylas/N1 to nylas/nylas-mail
+ `master` branch now has Nylas Mail (1.0.x)
+ `n1-pro` branch now has Nylas Pro (1.5.x)
2017-01-28 04:51:49 +08:00
### 1.0.17 (1/27/17)
- Fixes:
+ Fix send and archive: Can now archive after sending without errors
2017-01-28 04:54:57 +08:00
+ Local search now includes more thread results
+ Contact autocomplete in composer participant fields now includes more results
2017-01-28 04:51:49 +08:00
2017-01-27 23:11:09 +08:00
### 1.0.16 (1/27/17)
- Performance:
+ Improved typing performance in the composer, especially with
misspelled words
- Fixes:
+ Nylas Mail plugins install properly
2017-01-28 01:09:18 +08:00
+ Fix undo and occasional archive & move tasks failing due to not having uids
2017-01-27 23:11:09 +08:00
+ Fix logging for auth
+ Properly clean up after file downloads
2017-01-28 01:09:18 +08:00
+ Properly recover from IMAP uid invalidity
2017-01-27 23:11:09 +08:00
2017-01-26 08:47:04 +08:00
### 1.0.15 (1/25/17)
- Features:
+ Improve CPU performance of idle windows
- Fixes:
+ Correctly detect initial battery status for throttling.
+ Correctly allow auth for Custom IMAP accounts only #3185
2017-01-26 04:28:39 +08:00
### 1.0.14 (1/25/17)
- Features:
+ Improved spellchecker
- Fixes:
+ Correctly update attributes like starred and unread when syncing folders.
Marking as read or starred will no longer bounce back.
2017-01-26 08:47:04 +08:00
+ Correctly detect new mail while syncing Gmail inbox.
2017-01-26 04:28:39 +08:00
2017-01-25 23:20:35 +08:00
### 1.0.13 (1/25/17)
- Fixes:
+ Messages immediately appear in sent folder. No bouncing back.
+ Login more likely to succeed. Waits longer for IMAP
+ Doesn't allow invalid form submission
+ Correctly handles token refresh failing
+ Auto updater says "Nylas Mail" properly
2017-01-26 03:04:58 +08:00
+ Sync drafts correctly on Gmail
2017-01-25 23:20:35 +08:00
- Development:
+ Local sync account API deprecated
2017-01-26 03:04:58 +08:00
+ Silence noisy queries in the logs
2017-01-25 23:20:35 +08:00
2017-01-25 01:36:08 +08:00
### 1.0.12 (1/24/17)
2017-01-25 03:51:42 +08:00
2017-01-25 01:36:08 +08:00
- Features:
+ New 'Debug' sync button that opens up the console
+ Faster search
+ Message processing now throttles when on battery
+ Analytics for change mail tasks
- Fixes:
2017-01-25 03:46:46 +08:00
+ Archive, Mark as Unread, and Move to trash don't "bounce back"
+ Adding a new account is now smoother
2017-01-25 01:36:08 +08:00
+ Improved threading
+ Drafts are no longer in the inbox
2017-01-21 05:48:21 +08:00
### 1.0.11 (1/19/17)
- Features:
+ Nylas Mail's installer on Mac uses a DMG
- Fixes:
+ Fixed app being occasionally unresponsive
+ Decreased odds of failed logins (by bumping connection timeout value)
+ Sync erroring notification no longer tripped by timeouts
### 1.0.10 (1/19/17)
2017-01-20 03:36:25 +08:00
- Features:
+ "Contact Support" button now auto-fills information
+ Actions reach providers faster
- Fixes:
+ Show errors on the GMail auth screen
+ Show draft sending errors
2017-01-20 07:30:06 +08:00
+ Can now correctly search threads via `from:` and `to:`
2017-01-20 03:36:25 +08:00
+ Other error management improvements
+ The database will now be reset if malformed
+ Improve the offline notification
- Development:
+ Update Thread indexing
+ Add loadFromColumm option to Attribute
2017-01-21 05:48:21 +08:00
### 1.0.9 (1/17/17)
2016-05-20 02:15:53 +08:00
- Fixes:
2015-10-28 02:36:40 +08:00
2017-01-18 08:18:27 +08:00
+ All Fastmail domains now use the correct credentials
2017-01-18 08:33:02 +08:00
+ Offline notification more reliable
2017-01-18 08:18:27 +08:00
+ Fix error logging
2015-10-28 02:36:40 +08:00
2017-01-21 05:48:21 +08:00
### 1.0.8 (1/17/17)
2015-10-28 02:36:40 +08:00
2017-01-18 08:18:27 +08:00
- Introducing Nylas Mail Basic! Read more about it [here](https://blog.nylas.com/nylas-mail-is-now-free-8350d6a1044d)