# Nylas Mail Changelog ### 1.0.38 (3/13/2017) + [client-app] Restart sync when computer awakes from sleep + [client-app] Make resetEmailCache work without forcing re sign-in + [client-app] Don't start sync or delta connections without an identity + [client-sync] Correctly wait for sync to stop before resetting email cache + [client-sync]: Fix error in SyncProcessManager._resetEmailCache + [client-app] fix travis env variables + [client-app] run windows build separately + [client-app] remove ability to run specs + [iso-core] Pin imap-provider-settings package version + [client-app] Don't check for key membership on null + [client-app] Some wording improvements in IMAP onboarding + [dev] On Linux, don't run redis if already running + [dev] Make 'arc lint' shut up about long lines + [client-app] Specify Content-Type in developer bar curl commands + [dev] Fix 'arc lint' + [cloud-api] Remove global override of billing identity URL ### 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 ### 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 we’re 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)