Mailspring/CHANGELOG.md
2017-09-26 11:46:00 -07:00

761 lines
22 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Nylas Mail Changelog
### 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
+ MailspringAPIRequest 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
### 1.0.28 (2/16/2017)
- 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
### 1.0.27 (2/14/17)
- Fixes:
+ Offline notification fixes
### 1.0.26 (2/10/17)
- Fixes:
+ Downloads retry if they fail
+ NylasID doesn't intermittently log out or throw errors
+ Fix initial sync for Inbox Zero Gmail accounts
### 1.0.25 (2/10/17)
- Fixes:
+ When replying to a thread, properly add it to the sent folder
- Development:
+ Can now once again run Nylas Mail test suite
### 1.0.24 (2/9/17)
- 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
### 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)
+ When adding account, correctly remove whitespace from emails
+ 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
### 1.0.22 (2/7/17)
- Fixes:
+ New mail notification sounds on startup are combined when multiple new messages have arrived
+ 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
### 1.0.21 (2/3/17)
- Fixes:
+ Fixed an issue where Nylas Mail could delete all accounts (addresses #3231)
+ 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
+ Fix JSON serialization issue which could cause sync process to error.
### 1.0.20 (2/1/17)
- Fixes:
+ Properly clean up broken replies
### 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
### 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)
### 1.0.17 (1/27/17)
- Fixes:
+ Fix send and archive: Can now archive after sending without errors
+ Local search now includes more thread results
+ Contact autocomplete in composer participant fields now includes more results
### 1.0.16 (1/27/17)
- Performance:
+ Improved typing performance in the composer, especially with
misspelled words
- Fixes:
+ Nylas Mail plugins install properly
+ Fix undo and occasional archive & move tasks failing due to not having uids
+ Fix logging for auth
+ Properly clean up after file downloads
+ Properly recover from IMAP uid invalidity
### 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
### 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.
+ Correctly detect new mail while syncing Gmail inbox.
### 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
+ Sync drafts correctly on Gmail
- Development:
+ Local sync account API deprecated
+ Silence noisy queries in the logs
### 1.0.12 (1/24/17)
- 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:
+ Archive, Mark as Unread, and Move to trash don't "bounce back"
+ Adding a new account is now smoother
+ Improved threading
+ Drafts are no longer in the inbox
### 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)
- Features:
+ "Contact Support" button now auto-fills information
+ Actions reach providers faster
- Fixes:
+ Show errors on the GMail auth screen
+ Show draft sending errors
+ Can now correctly search threads via `from:` and `to:`
+ 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
### 1.0.9 (1/17/17)
- Fixes:
+ All Fastmail domains now use the correct credentials
+ Offline notification more reliable
+ Fix error logging
### 1.0.8 (1/17/17)
- Introducing Nylas Mail Basic! Read more about it [here](https://blog.nylas.com/nylas-mail-is-now-free-8350d6a1044d)