Commit graph

2014 commits

Author SHA1 Message Date
Mark Hahnenberg 5730d23da8 [search-index] Limit search index size
Summary:
This diff modifies the SearchIndexer class to handle limiting the search
index size. It does this by periodically re-evaluating the window of
the n most recent items in a particular index where n is the max size of
the index. It then unindexes the items which are marked as indexed but
are no longer in the window and indexes the things that are in the window
but aren't marked as indexed.

Test Plan:
Run locally with a reduced thread index size, verify that the index
includes the most recent items and that it is the correct size. Also verify that
the queries used properly use fast sqlite indices.

Reviewers: evan, juan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3741
2017-01-23 12:19:34 -08:00
Mark Hahnenberg c7d8f1700d [thread-search] Background on-keypress search queries
Summary:
When the search index got very big the queries we were running during
after keypress would cause jank in the UI which was very noticeable on
subsequent keypresses. This diff backgrounds these queries and adds a
LIMIT to the fts MATCH clauses to avoid having to send too much stuff
across the IPC bridge.

Test Plan: Run locally, make sure that typing is smooth while searching

Reviewers: juan, evan

Reviewed By: juan, evan

Differential Revision: https://phab.nylas.com/D3757
2017-01-23 11:50:27 -08:00
Halla Moore 6e6bc1239f fix(unindexModel): Don't re-persist unpersisted models
Summary: See title

Test Plan: tested locally

Reviewers: juan, mark, evan

Reviewed By: juan, mark

Subscribers: juan

Differential Revision: https://phab.nylas.com/D3744
2017-01-23 11:32:46 -08:00
Juan Tejada 9c782bd479 fix(auth) Increment timeout for requests that initiate imap connections 2017-01-19 16:06:37 -08:00
Juan Tejada 27be619642 🎨 2017-01-19 15:37:01 -08:00
Evan Morikawa 9095e0a091 fix(changelog): link to correct changelog 2017-01-19 11:28:50 -08:00
Juan Tejada 38ea173b2b fix(error-mgmt): Add a few improvements to error management
Summary:
- Add a new button to the sync error notification to "Debug" sync. This will open the activity window and dev tools in that window. Depends on D3736
- Update the "Contact Support" link in error notifications to prepopulate the support ticket with the sync error in the account
- Make the "Check Again" button react when clicking it

Test Plan: manual

Reviewers: evan, khamidou

Reviewed By: evan, khamidou

Differential Revision: https://phab.nylas.com/D3737
2017-01-19 10:53:04 -08:00
Juan Tejada 85c9439f8f fix(offline-notif): Add some offline notification improvements
Summary:
- Make the try again button react when clicked
- Don't mark as offline until after we've tried again at least 3 times

Test Plan: manual

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3738
2017-01-18 22:09:43 -08:00
Evan Morikawa 735c7faa73 fix(auth): Gmail auth screen now shows error states
Summary:
- Refactor Gmail auth functions
- Add Analytics in
- Show error states

Depends on D3735

Test Plan: manual

Reviewers: khamidou, juan

Reviewed By: khamidou, juan

Differential Revision: https://phab.nylas.com/D3732
2017-01-18 17:44:22 -08:00
Mark Hahnenberg 9120c598e7 [thread-search] Update Thread search index version
Summary:
We changed the index format (splitting participants into to and from) so
we need to update the index version so that it gets rebuilt.

Test Plan: Run locally, make sure index gets rebuilt

Reviewers: evan, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3728
2017-01-18 11:31:31 -08:00
Mark Hahnenberg c695735cc2 [thread-search] Split 'participants' index into 'to' and 'from'
Summary:
Previously we indexed all participants together for a single thread.
This lead to confusing search results when people would search for
'from' and get back lots of results that were only 'to'. This diff
splits the participants index into separate to and from indices and
updates the query generator appropriately.

Fixes T7580

Test Plan: Run locally, verify from doesn't return to and vice versa.

Reviewers: evan, juan

Reviewed By: juan

Maniphest Tasks: T7580

Differential Revision: https://phab.nylas.com/D3724
2017-01-18 10:41:20 -08:00
Juan Tejada 051011b4c3 fix(offline-notif) Make it less aggressive
Summary: Add a timeout before displaying the offline notif

Test Plan: manual

Reviewers: halla, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3727
2017-01-17 16:32:01 -08:00
Juan Tejada 8be7ce762e add comment 2017-01-17 16:31:07 -08:00
Evan Morikawa 25727badba fix(clearbit): catch API errors 2017-01-17 12:42:40 -08:00
Evan Morikawa 3afff343cb fix(pref): remove default send preferences for now in basic 2017-01-17 12:27:45 -08:00
Halla Moore f407d5e430 rm(provider-setting): Remove duplicate "fastmail.com" 2017-01-17 08:49:21 -08:00
Halla Moore 0902d99678 fix(onboarding): Change how we determine default IMAP settings
Summary:
If we don't have IMAP settings for a particular email domain,
try to choose based on which provider was selected instead.

Fixes #3168

Test Plan: tested locally

Reviewers: spang, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3721
2017-01-17 08:47:35 -08:00
Juan Tejada b1882656ee fix(deltas) Prevent app from crashing when processing deltas
Summary:
Some strange scenario is causing us to attempt to redefine the object property `_delta` on our `delta.attributes` object inside `DeltaProcessor._decorateDeltas`, which throws an error, and consequently throws the app into an error loop. I haven't been able to track down how to reproduce this, but when it happens it completely takes the app down.

From testing with tomasz's copy of N1, this seemed to have originated from the lack of Account tokens, which was hard to discover because the `_deltas` object completely floods the console with errors.

From what I gather, `_decorateDeltas` is only called from a single place, `DeltaProcessor.process`, which is also only called from a single place, and its unclear how it would be called multiple times with the same delta object references.

In order to prevent this error from completely destroying the app, I've added the `configurable` option when defining the property, so that redifining it doesn't throw an error. It should be safe to redefine this property with the latest delta reference, and will also allow us to discover other errors more easily in the console like the lack of account tokens which might be the original cause of this problem.

Test Plan: manual

Reviewers: mark, spang, evan, halla

Reviewed By: evan, halla

Differential Revision: https://phab.nylas.com/D3717
2017-01-16 19:37:37 -08:00
Halla Moore 91665a8904 rm(calendar): Comment out more calendar things 2017-01-16 19:32:18 -08:00
Halla Moore 9eca19ca56 fix(sync-messaging): Have "Looking for messages..." update properly
Summary:
Makes these messages update even if the user doesn't force a
re-render by switching perspectives.

Test Plan: tested manually

Reviewers: evan, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3715
2017-01-16 17:49:55 -08:00
Mark Hahnenberg 4a77f318e5 [search-index] Add index for isSearchIndexed (for real)
Summary:
We had to add the id to the index as well (along with is_search_indexed)
so that the query worked correctly since it sorts by id. Also added a
default value of 0 for boolean attributes so that we don't have to query
for two different values (0 and null), which was causing sqlite to have to
do a final b-tree sort which is slow.

Test Plan: Run locally, verify query plan with EXPLAIN QUERY PLAN

Reviewers: evan, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3712
2017-01-16 16:57:24 -08:00
Karim Hamidou 8235f33655 Remove UpdateChannelSection
Use staging autoupdater for staging.

fixed failing test

Fix autoupdater – we were using the wrong command.

Revert "Bump version to 1.5.0"

Temporarily reverting this because I need to test the upgrade path from
0.4.2 => 1.5.0

Revert "Revert "Bump version to 1.5.0""

Had to do this to test the autoupdater.

[fix] [channel drop-down list] Show the stable channel in all cases.

Conflicts:
	internal_packages/preferences/lib/tabs/update-channel-section.jsx

Fix broken autoupdater, for reals.

[master] Replace "Nylas N1" by "Nylas Mail" in build scripts

Summary: As discussed --- we need to make those changes to make the autoupdater work across versions.

Test Plan: Will run a build.

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3701

Revert "Revert "Revert "Bump version to 1.5.0"""

Need to set the version to 0.4.402 for testing purposes.

Set preferredChannel in the autoupdater instead of in the ChannelStore

It turns out that Squirrel checks for update at program launch. In some
cases, it would put Pro users on the "nylas-mail" channel because that's
the default channel if you don't pass a preferredChannel.

Conflicts:
	src/flux/stores/update-channel-store.es6

Set the autoupdater preferredChannel to stable.

Don't try to move the app file to the Application folder ourselves

Because of MacOS Gatekeeper path randomization issues
(https://github.com/Squirrel/Squirrel.Mac/issues/182) we need the user
to move the app themselves. Changed the dialog to ask them to do this
politely.

Conflicts:
	internal_packages/verify-install-location/lib/main.es6
2017-01-16 16:46:52 -08:00
Karim Hamidou 0b22647abc Don't try to move the app file to the Application folder ourselves
Because of MacOS Gatekeeper path randomization issues
(https://github.com/Squirrel/Squirrel.Mac/issues/182) we need the user
to move the app themselves. Changed the dialog to ask them to do this
politely.
2017-01-16 12:31:15 -08:00
Juan Tejada bfdbefb78a fix(offline-notif) Properly check and clear offline notification 2017-01-16 12:17:41 -08:00
Mark Hahnenberg 781080716c [search-index] Throttle search indexing
Summary:
This diff adds a new SearchIndexer class that each of the concrete
indexer implementations register with. This new class uses the
`isSearchIndexed` field in searchable classes to split indexing work
into chunks. It then times how long it takes to index each chunk and
schedules more work based on a target CPU percent. For example, if it
takes 150 ms to index the last chunk of work and the target CPU fraction
is 0.05 (i.e. 5% CPU use) then it will schedule the next increment of
indexing 3 seconds in the future.

Test Plan: Run locally, verify that indexing occurs in increments

Reviewers: juan, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3707
2017-01-16 10:32:45 -08:00
Halla Moore de60f0fde7 fix(sync-state): Make sure folder progress goes between 0 and 1
Summary:
Also fix a related rendering issue and remove unused code.

Fixes T7538

Test Plan: tested locally

Reviewers: evan, spang, juan

Reviewed By: spang, juan

Maniphest Tasks: T7538

Differential Revision: https://phab.nylas.com/D3704
2017-01-16 10:31:37 -08:00
Evan Morikawa 5a2a52ebab perf(sync): don't send message bodies across IPC & limit global IPC
Summary: don't send unnecessary crap over IPC

Test Plan: manual

Reviewers: spang, mark, juan, halla

Reviewed By: juan, halla

Differential Revision: https://phab.nylas.com/D3705
2017-01-16 10:28:49 -08:00
Halla Moore 6d403c99cf fix(icloud-sending): Add custom smtp settings
Summary: iCloud needs TLS

Test Plan: tested locally

Reviewers: tomasz

Reviewed By: tomasz

Differential Revision: https://phab.nylas.com/D3699
2017-01-15 17:09:59 -08:00
Karim Hamidou 6a3532efc7 [fix] [channel drop-down list] Show the stable channel in all cases. 2017-01-15 16:22:08 -08:00
Halla Moore d3482419f1 feat(sync-status): Hide syncback tasks inside the expanded details
Summary:
Except for send tasks, place notifications of syncback tasks inside
the expanded sync details.

Addresses T7458

Test Plan: tested locally

Reviewers: juan, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3693
2017-01-15 15:21:51 -08:00
Evan Morikawa eb6001480c perf(scroll): improve thread list scroll perf
Summary:
Lots of components were rendering when they didn't have to on the very
frequent account sidebar updates

Test Plan: manual

Reviewers: mark, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3691
2017-01-15 15:12:54 -08:00
Evan Morikawa 1f0d46bcd7 feat(onboarding): add client_edition=basic to onboarding flow 2017-01-15 12:07:45 -08:00
Evan Morikawa 231c510f86 fix(auth): fix unnecessarly loud api errors
Summary:
Fixes T7520
Gets rid of the Gmail auth error too

Test Plan: manual

Reviewers: juan

Reviewed By: juan

Maniphest Tasks: T7520

Differential Revision: https://phab.nylas.com/D3688
2017-01-14 17:51:02 -08:00
Evan Morikawa 7210c80c5a fix(subscription): show Nylas Basic subscription with CTA to upgrade
Summary:
Removes references to the N1 ID expring.

Luckily, local-sync Nylas Mail Basic doesn't need the nylas ID to do
pretty much anything, which means we don't need to worry about the "trial"
status of the Nylas ID. The existing trial infrastructure will only kick
into place when someone connects an email account with the Nylas Cloud
Sync servers for the first time.

The one place we do check for the Nylas ID is in the
cloud-api/src/authentication route. Here we hit
https://billing.nylas.com/n1/user and simply expect to get back a Nylas
ID. As long as we return the existence of a Nylas ID (which should ignore
whether or not the old subscription system is "valid"), the API calls will
succeed.

This makes the "Upgrade Now" button go to
billing.nylas.com/dashboard?upgrade_to_pro=true with the auto-sign in
features enabled. This will automatically log the user into the Nylas
billing site with the upgrade_to_pro=true flag set.

There is also a new "Learn More" button which goes to
https://nylas.com/nylas-pro.

@mike, will these urls work?

Test Plan: manual

Reviewers: khamidou, mike, juan

Reviewed By: juan

Subscribers: mike

Differential Revision: https://phab.nylas.com/D3680
2017-01-14 17:40:54 -08:00
Halla Moore 9037e84491 feat(fastmail): Add fastmail as a supported provider
Summary:
Also fixes an issue where we would show all any accounts
that aren't gmail or office365 as a generic imap account.

Depends on D3686

Test Plan: manual

Reviewers: juan, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3687
2017-01-14 17:36:00 -08:00
Mark Hahnenberg d60226f0c6 [search-index] Don't removeQuotedHTML when indexing threads
Summary:
This is a very expensive operation and there seemed to be few downsides
to including quoted portions in the index. We can revisit this to
improve how we index when we have a proper scheduler.

Test Plan: Run locally

Reviewers: juan, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3682
2017-01-14 17:10:38 -08:00
Evan Morikawa 32d2ec91a6 fix(spellcheck): fix right click menu on spellcheck 2017-01-14 16:18:23 -08:00
Evan Morikawa c45dbdc48d feat(yahoo): got yahoo sending fixed 2017-01-14 14:47:33 -08:00
Halla Moore 4fd9967ffa 💄(account-onboarding): Fix margins on the accounts list 2017-01-14 10:44:26 -08:00
Evan Morikawa 5ab0173e78 fix(reset): fix the account reset button for K2
Summary: Depends on D3672

Test Plan: manual

Reviewers: mark, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3673
2017-01-13 19:00:01 -08:00
Evan Morikawa fcfae5d490 Fix references for ~/.nylas to ~/.nylas-mail
Summary: Fix references to nylas-mail

Test Plan: manual

Reviewers: jackie, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3674
2017-01-13 18:54:37 -08:00
Halla Moore 7f956af798 fix(task-labels): Remove ellipses from hardcoded labels and fix css class
The css class was accidentally renamed in another commit. Bring it back and
remove the hard-coded ellipses, since the ellipsis is now part of a css
psuedo element.
2017-01-13 13:42:43 -08:00
Evan Morikawa 45848ce3a0 fix(config): move from ~/.nylas-k2 to ~/.nylas-mail
Summary:
fix(config): move from ~/.nylas-k2 to ~/.nylas-mail

fix(auth): ignore onboarding urls that aren't Nylas

feat(sig): change default signature

bump(k2)

Test Plan: manual

Reviewers: halla, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3664
2017-01-13 12:19:42 -08:00
Halla Moore fc43bc834a fix(initial-sync-status): Change how we display the sync status
Summary:
This diff takes out the progress bars, since they can appear to
not move for very large mailboxes. Instead, just show an icon that
indicates whether the sync is complete or in progress, and add a
tooltip that displays how far back the folder has been synced to.

Submodule commit is D3662

Test Plan: tested locally

Reviewers: evan, juan

Reviewed By: evan, juan

Differential Revision: https://phab.nylas.com/D3663
2017-01-13 12:07:54 -08:00
Mark Hahnenberg ee438c7219 [thread-search] Add support for category search (i.e. "in:foo")
Summary: See title

Test Plan: Run locally, search for specific labels

Reviewers: evan, juan

Reviewed By: evan, juan

Differential Revision: https://phab.nylas.com/D3656
2017-01-13 11:53:41 -08:00
Karim Hamidou b880ee981d [feat] [autoupdater] Introduce a new channel, "Nylas Mail" + let N1
specify a preferred channel.
2017-01-13 10:59:12 -08:00
Jackie Luo 78a7388318 🎨(rename): Update Nylas N1 to Nylas Mail
Test Plan: Tested locally.

Reviewers: halla, juan, evan

Reviewed By: juan, evan

Differential Revision: https://phab.nylas.com/D3645
2017-01-12 12:05:44 -08:00
Halla Moore 99e3f732d9 fix(custom-imap): Hide custom imap accounts and settings from onboarding
Summary:
IMAP no longer appears on the onboarding account list, and the option to
edit connection settings does not appear for any of the visible account
types. Custom IMAP accounts can still be added via a menu option.

Fixes T7474

Test Plan: tested locally

Reviewers: juan, jackie, evan

Reviewed By: evan

Maniphest Tasks: T7474

Differential Revision: https://phab.nylas.com/D3636
2017-01-12 10:25:33 -08:00
Juan Tejada c40ba0a7f6 fix(notifs) Restore offline notification
Summary: See title

Test Plan: tested locally

Reviewers: evan, halla, jackie

Reviewed By: jackie

Differential Revision: https://phab.nylas.com/D3643
2017-01-11 17:26:27 -08:00
Halla Moore 0b8e8fa6d9 💄(initial-sync): Move "hide" to the top of the expanded progress
Summary: Fixes T7442

Test Plan: tested locally

Reviewers: evan, jackie

Reviewed By: jackie

Maniphest Tasks: T7442

Differential Revision: https://phab.nylas.com/D3640
2017-01-11 15:24:18 -08:00