Commit graph

1926 commits

Author SHA1 Message Date
Evan Morikawa 1f63680fd1 refactor(plugins): use plugin name instead of appId 2016-12-02 17:34:42 -05:00
Christine Spang a1a85e04be feat(metadata): Look up local thread IDs via message table when setting metadata
Since message IDs are now static but there's no good way to generate
static thread IDs while syncing an account from newest message first,
we give threads the ID of any message on that thread and, when setting
metadata, look up the local thread ID by first going through the
message table.
2016-12-02 14:13:58 -08:00
Evan Morikawa fcb36abbe8 fix(account): Remove unsupported account types 2016-12-02 16:44:44 -05:00
Evan Morikawa 2b2c998dee feat(sync): let N1 be aware of provider synback requests 2016-12-02 16:15:17 -05:00
Evan Morikawa cee7d05017 debug(delta): add logs 2016-12-02 15:11:48 -05:00
Evan Morikawa cfc605136b refactor(sync): sync workers only use delta syncs now 2016-12-02 14:48:56 -05:00
Ben Gotow fb13abe8f4 fix(deltas): Process all deltas of each class in a single pass
Also changed the DeltaProcessor so it doesn’t query for models before sending out `Actions.didPassivelyReceiveCreateDeltas`, and renames it to be more clear it’s about deltas.
2016-12-02 11:41:49 -08:00
Ben Gotow e3b4fc859e fix(deltas): Remove extra params passed to streaming endpoint 2016-12-01 18:42:13 -08:00
Ben Gotow 6d85a8ef81 lint(*): Fix linter errors within K2, update eslint grunt task 2016-12-01 15:38:16 -08:00
Evan Morikawa 00832b5a83 fix(auth): now authing IMAP through n1-cloud 2016-12-01 16:56:02 -05:00
Evan Morikawa 2ee11006e9 feat(auth): IMAP request to both n1-cloud and local sync 2016-12-01 16:56:02 -05:00
Ben Gotow 6fb08f55c5 fix(accounts): Save both local and cloud tokens per account 2016-12-01 13:35:20 -08:00
Evan Morikawa 77799519e4 fix(spec): fixed specs for nylas-sync-worker 2016-12-01 14:00:20 -05:00
Evan Morikawa 278a4d16d4 fix(spec): progress on spec fixes for sync worker 2016-12-01 13:17:55 -05:00
Juan Tejada d409a5a3f9 fix(delats): Warn when receiving unkown obejct class 2016-12-01 09:14:02 -08:00
Evan Morikawa 380f370e7d fix(sync): Support N1Cloud auth errors. Fix LongConnection cleanup 2016-12-01 12:04:37 -05:00
Evan Morikawa 58874e8ad3 fix(delta): JSON blob persist failed to save properly 2016-12-01 11:04:19 -05:00
Ben Gotow ed74e454d2 fix(deltas): Fix deltaProcessor handling deletes wrong 2016-11-30 17:00:11 -08:00
Ben Gotow daed7146b5 fix(deltas): Delta.id is now a transaction id, need objectId 2016-11-30 16:53:52 -08:00
Ben Gotow 063f38f211 fix(deltas): We’ve been flipping deltas by accident for a while! 2016-11-30 16:51:51 -08:00
Juan Tejada dfee7ea9b6 fix(k2) fix local sync deltas 2016-11-30 16:13:26 -08:00
Evan Morikawa 3a72987f4d fix(delta): default cursor to 0 if no transactions exist yet 2016-11-30 17:56:59 -05:00
Evan Morikawa 3d4035ac64 fix(delta): fix issues with delta sync 2016-11-30 17:55:45 -05:00
Jackie Luo a177146a6f fix(auth): Make N1 Cloud API request correctly 2016-11-30 14:13:46 -08:00
Evan Morikawa 5582782ddd refactor(delta): add a second delta stream, convert to es6, and cleanup
This reverts commit ee5609bdb0.

Updates to nylas sync worker to support multiple cursors

Convert NylasSyncWorker to es6

Convert NylasSyncWorkerPool to es6

Extract into deltaProcessor

Update names to NylasSyncWorker state

Working on spec fixes

More spec fixes

Delta stream refactor fixes
2016-11-30 13:42:10 -05:00
Jackie Luo 7b7fbb3b1b refactor(nylas-api): Create API requests from tasks 2016-11-29 16:33:44 -08:00
Jackie Luo bab39a5c21 fix(nylas-api): Send API and options as object 2016-11-29 16:33:44 -08:00
Ben Gotow 4baf80ac21 rm(*): Internal packages don’t need engine version locking 2016-11-29 15:12:52 -08:00
Ben Gotow 848feaad60 fix(sync-worker): Missing binding arrow… 2016-11-29 12:44:02 -08:00
Juan Tejada 0b5f2841d5 fix(deltas) Update syncworker signature 2016-11-29 12:39:36 -08:00
Ben Gotow 56fded79c7 fix(sync): Put K2 dashboard into work window 2016-11-28 18:03:27 -08:00
Evan Morikawa ee5609bdb0 Rename DeltaStreamingConnection -> LocalDeltaSyncConnection 2016-11-28 17:13:18 -08:00
Evan Morikawa caba64d39d Update nylas-sync-worker to better fetch metadata 2016-11-28 16:59:04 -08:00
Evan Morikawa 9cbc284ed5 Fetch folders and labels at the same time 2016-11-28 16:11:10 -08:00
Evan Morikawa e1f1c23626 Introduce N1CloudAPI as endpoint 2016-11-28 15:38:53 -08:00
Ben Gotow 864766d463 fix(sync): Throttle instead of debounce for better initial sync 2016-11-28 12:05:41 -08:00
Ben Gotow d3bfe3fa71 fix(auth): Stop sending other crap with key 2016-11-28 11:05:00 -08:00
Ben Gotow ddc442d271 fix(auth): Support gmail auth against K2 2016-11-23 16:26:40 -08:00
Ben Gotow 6ac3637420 fix(auth): Use new endpoints for Gmail auth 2016-11-23 16:26:40 -08:00
Evan Morikawa 144fd7f372 Remove EdgehillAPI from auth and fix NylasRequest and perspective 2016-11-23 12:37:05 -08:00
Evan Morikawa e8ac7c6338 fix(auth): don't send unncessary IMAP params to local-sync/auth 2016-11-23 11:48:58 -08:00
Ben Gotow 9fbde1c3e9 fix(onboarding): Remove support for local sync engine 2016-11-23 09:41:49 -08:00
Ben Gotow 20317358cb Update auth to hit new hosted N1-cloud 2016-11-22 18:04:35 -08:00
Halla Moore f4357ce166 change(API) Prevent N1 from sending "view" parameters in some API requests
- Threads: N1 always asks for the 'expanded' view, so K2 just always returns
the expanded view. N1 no longer needs to specify this.
- Messages: N1 only needed a 'count' view to display the initial sync progress
We've removed this progress bar and the corresponding request.
2016-11-21 15:16:04 -08:00
Juan Tejada a2a897b369 fix(cal): Disable event search for now 2016-11-21 13:50:09 -08:00
Juan Tejada cf321258ed 💄(md) Fix markdown styles 2016-11-18 15:38:26 -08:00
Evan Morikawa 9ee8eae633 fix(search): allow custom search result elements 2016-11-17 16:01:55 -08:00
Juan Tejada 91f74f7482 fix(spellchecker) Fix spellchecker specs 2016-11-17 14:51:24 -08:00
Juan Tejada 5c7518e958 fix(sidebar): Correctly show all accounts in sidebar during initial sync
Ref #1587
2016-11-16 22:48:14 -08:00
Ben Gotow d53edbffea feat(db): background flag to exec queries in a single forked node process
Summary:
This is an initial attempt to fix an issue we’ve had with long-running queries interrupting the N1 user experience. Node-sqlite3 used an async approach that ran sqlite’s synchronous query methods on a worker thread, but doing that involves copying memory more and node-sqlite3 was just generally slow.

However, moving to better-sqlite3 made /everything/ synchronous. Even with the right indexes some of our queries just suck.

This diff adds `DatabaseStore.findAll(…).background().then()` which allows you to mark a query as “unimportant”. These queries are run in a separate process which is forked from the window and can take an extra 10-50ms to complete. That said, they’re totally async and don’t jam up the app.

I’m personally a fan of the flag and less a fan of the implementation. The “agent” process can handle many queries in it’s lifetime if they keep coming and quits after 10 seconds of inactivity. (Both to save memory and to avoid scenarios where it might end up oprhaned and running forever). While running it uses about 40MB of RAM, which is a bit on the crazy side.

Test Plan: No new tests yet

Reviewers: evan, juan

Reviewed By: evan, juan

Differential Revision: https://phab.nylas.com/D3420
2016-11-16 17:47:24 -08:00