Commit graph

5594 commits

Author SHA1 Message Date
Juan Tejada
0c34238862 🎨 rm bad comment 2017-02-03 11:30:15 -08:00
Christine Spang
8b9f89ab14 [local-api] 🎨 Remove unused message and file GET routes
Summary:
This code is dead and has confused me grepping around the codebase before.

If for some unexpected reason we need these routes back in the future, we
can always extract them from version control. For now the routes we aren't
using are a distraction.

Test Plan: been using Nylas Mail with this local patch all week

Reviewers: evan, halla, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3833
2017-02-03 10:42:22 -08:00
Juan Tejada
07704518cc update(changelog) 2017-02-03 10:29:25 -08:00
Tomasz Finc
c46db0e0f4 Update CHANGELOG.md 2017-02-03 10:20:21 -08:00
Evan Morikawa
1ebb0607e7 bump(appveyor): build stable branches 2017-02-03 10:19:15 -08:00
Avinash Kuduvalli
a4b147452d Update README.md (#3255) 2017-02-02 21:24:43 -08:00
Juan Tejada
43e1dd6e7c Fix travis config 2017-02-02 17:48:40 -08:00
Juan Tejada
e42a36a92a bump(changelog) 2017-02-02 17:46:19 -08:00
Juan Tejada
4907c23608 Update travis config 2017-02-02 17:42:54 -08:00
Juan Tejada
018d1e895c bump(version) 1.0.21 2017-02-02 17:33:45 -08:00
Juan Tejada
dd8b860be2 fix(sync) Make sure we can correctly archive/delete/mark as spam
Summary:
Previously, when moving to trash or spam, we were not correctly removing
the inbox category. This produced slightly different results because the
generated task was slightly different.

Also, in ChangeMailTask we were removing the locks on the models before
the tasks had actually succeeded-- these locks allowed us to ignore
deltas on those models while the task was in progress, so removing them
before it completed caused threads to flicker when performing actions

This depends on D3829 which also properly addresses
archiving/deleting/moving to spam threads that contain sent messages

Addresses T7757 and #2706

Test Plan: unit

Reviewers: evan, halla, spang

Reviewed By: evan, halla, spang

Differential Revision: https://phab.nylas.com/D3830
2017-02-02 17:22:58 -08:00
Evan Morikawa
d2580b691b bump(package): upgrade Raven
fix(log): use new raven
2017-02-02 17:22:04 -08:00
Evan Morikawa
32b955ad36 [local-private] update to use hosted Sentry 2017-02-02 17:21:32 -08:00
Juan Tejada
574f171fbd [local-sync] Properly set the sent label for Gmail accounts
Summary:
We can't try to set or remove the sent label on gmail accounts because
the operation will silently fail and cause the threads to later bounce
back.

This occurred when trying to delete or archive a thread that contained a
sent message, and we incorrectly tried to overwrite or remove all of the
labels on messages, without regard for sent.

This was causing https://github.com/nylas/nylas-mail/issues/2706 and
sending and archiving to immediately bounce back.

Addresses T7757

Test Plan: unit tests

Reviewers: halla, evan, spang

Reviewed By: halla, evan, spang

Differential Revision: https://phab.nylas.com/D3829
2017-02-02 17:20:38 -08:00
Juan Tejada
7b63912955 [local-sync] Correctly retry syncback tasks
Summary:
Previously, we attempted to immeditely retry syncback tasks when a
RetryableError was encountered. However, if the error was an
IMAPConnection error, we would keep retrying with a broken connection,
which would keep failing.

The correct way to retry is to wait for the next sync loop, since at the
beginning of each loop we ensure that we are correctly connected to
imap.

To achieve this this commit simply marks a failed task as NEW if it
encoutners a RetryableError and we haven't retried too many times. To
keep track of the number of retries, we save a new field in the `props`
field of the request.

Test Plan: manual

Reviewers: evan, halla, mark, spang

Reviewed By: spang

Subscribers: khamidou

Differential Revision: https://phab.nylas.com/D3831
2017-02-02 17:19:13 -08:00
Karim Hamidou
7364ecb9fd [N1] Changes required for implementing snooze
Summary: This is a pretty small diff – it changes the snooze-store to save metadata for the individual messages affected instead of for the whole thread. We need this to have snoozing work without running an actual sync of the whole mailbox.

Test Plan: WIP.

Reviewers: evan, halla

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3815
2017-02-02 17:05:32 -08:00
Karim Hamidou
ae32666609 [cloud-api] Base infrastructure for running cloud workers
Summary:
I've decided to break my snooze patches in multiple parts to make it easier to review. This diff contains all the code related to running workers in the cloud. Cloud workers all inherit from the `Worker` class which defines a bunch of useful things like error handling.

What's left to do:
- spawn workers based on the plugin type
- add monitoring (I'm going to add a simple HTTP endpoint for that)
- writing a migration for the local sync db and the prod metadata db.

Test Plan: Tested manually.

Reviewers: halla, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3814
2017-02-02 16:14:59 -08:00
Mark Hahnenberg
51f5ca5f9d [config] Refactor config to fail faster
Summary:
We're having some strange issues regarding corruption of the config
settings at runtime. This diff refactors the code to be more
straightforward and to be louder when things don't go as expected.

Test Plan: Run locally

Reviewers: juan, evan

Reviewed By: juan, evan

Differential Revision: https://phab.nylas.com/D3828
2017-02-02 16:11:52 -08:00
Evan Morikawa
5dea41dc34 feat(db): extract db setup and don't send sync errors to config 2017-02-02 15:57:13 -08:00
Evan Morikawa
a94e1a0127 bump(k2) 2017-02-02 15:41:41 -08:00
Juan Tejada
d46cfc1cb4 feat(specs) Clean up local-sync database after each spec
Summary: Clean up k2's test database after each spec. Depends on D3826

Test Plan: unit

Reviewers: evan, halla, spang

Reviewed By: halla, spang

Differential Revision: https://phab.nylas.com/D3827
2017-02-02 14:52:22 -08:00
Juan Tejada
cb9faea6f0 [local-sync] Small restructuring of local-sync specs
Summary: Make them map the same directory structure of `src`

Test Plan: unit

Reviewers: evan, halla, spang

Reviewed By: halla, spang

Differential Revision: https://phab.nylas.com/D3826
2017-02-02 14:48:26 -08:00
Evan Morikawa
eac2346455 Revert "feat(config): move config to database"
This reverts commit 2112118332.
2017-02-01 18:04:58 -08:00
Halla Moore
288f6bfcdb fix(SyncActivity): Add keys to ellipsis components
Summary: Just a quick fix to remove the warning in the console

Test Plan: manual

Reviewers: mark

Reviewed By: mark

Differential Revision: https://phab.nylas.com/D3823
2017-02-01 14:06:33 -08:00
Evan Morikawa
2112118332 feat(config): move config to database
Summary: Move config to the database

Test Plan:
Launch app before commit.
Launch on commit.
Confirm all settings and accounts stay the same.
Console.logged progress

Reviewers: mark, halla, spang, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3820
2017-02-01 13:36:30 -08:00
Christine Spang
bf8818d208 fix(sync-status): Use sync progress from K2
Summary:
Sister diff to D3817

syncState on folders may contain arbitrarily long arrays of UIDs
(particularly, failedUIDs). If we serialize this JSON column to
edgehill.db, we can end up serializing very large objects when
persisting the local task queue. When the queue contains many tasks,
this can balloon the JSON blob to megabytes, causing the main window and
the worker window to become unresponsive.

The UI doesn't need to know about IMAP bookkeeping internals, so
serialize the sync progress instead of the sync state. This has the
advantages that (1) we don't need to worry about future keys added
to the syncState being large and (2) when we add Exchange support
we already have an abstraction for sync progress.

Test Plan: manual

Reviewers: juan, mark, halla

Reviewed By: halla

Differential Revision: https://phab.nylas.com/D3819
2017-02-01 07:16:35 -08:00
Christine Spang
c6f371aa0f [local-sync] Serialize category sync progress to edgehill rather than syncState
Summary:
syncState on folders may contain arbitrarily long arrays of UIDs
(particularly, failedUIDs). If we serialize this JSON column to
edgehill.db, we can end up serializing very large objects when
persisting the local task queue. When the queue contains many tasks,
this can balloon the JSON blob to megabytes, causing the main window and
the worker window to become unresponsive.

The UI doesn't need to know about IMAP bookkeeping internals, so
serialize the sync progress instead of the sync state. This has the
advantages that (1) we don't need to worry about future keys added
to the syncState being large and (2) when we add Exchange support
we already have an abstraction for sync progress.

Test Plan: manual

Reviewers: juan, mark, halla

Reviewed By: halla

Differential Revision: https://phab.nylas.com/D3817
2017-02-01 07:15:33 -08:00
Evan Morikawa
e4ce1f8e1e bump(version): 1.0.20 2017-02-01 06:58:37 -08:00
Evan Morikawa
7223b6b833 bump(k2) 2017-02-01 06:57:41 -08:00
Evan Morikawa
efba50bd9f [local-sync] properly cleanup broken messages 2017-02-01 06:57:30 -08:00
Evan Morikawa
0777c81e34 bump(k2) 2017-02-01 06:24:17 -08:00
Evan Morikawa
04ff46eb04 [local-sync] fix cleanup of sent messages 2017-02-01 06:24:03 -08:00
Evan Morikawa
4de572bff5 bump(changelog) 2017-01-31 18:04:30 -08:00
Evan Morikawa
2a543ac8de bump(version): 1.0.19 2017-01-31 18:01:30 -08:00
Evan Morikawa
7a8fb26773 bump(k2) 2017-01-31 18:01:09 -08:00
Evan Morikawa
47f1f440d7 [local-sync] fixed issue where single digit date would create dupes 2017-01-31 18:00:42 -08:00
Mark Hahnenberg
4a70eb563c [composer] s/console.warning/console.warn/
Summary: See title

Test Plan: yolo

Reviewers: juan

Differential Revision: https://phab.nylas.com/D3818
2017-01-31 16:38:51 -08:00
Evan Morikawa
5d7b7574b9 bump(k2) 2017-01-31 16:35:51 -08:00
Juan Tejada
4769d4d476 [local-sync] Save error when clearing tasks INPROGRESS 2017-01-31 15:59:56 -08:00
Juan Tejada
70477f54f5 Properly handle non-api errors in account delta conn 2017-01-31 12:45:57 -08:00
Juan Tejada
b47e39e229 [local-sync] Imrpove error handling in delta connections
Summary:
We were mostly ignoring errors in our delta streaming connections. This
commit makes it so that if we get an authentication error from n1Cloud we mark the
account as invalid so users know to re authenticate, and can properly receive metadata deltas

If the error is not an authentication error, it automatically retries
the delta connection.

Addresses T7744

Test Plan: manual

Reviewers: evan, spang, halla

Reviewed By: halla

Differential Revision: https://phab.nylas.com/D3813
2017-01-31 12:07:27 -08:00
Evan Morikawa
83744c73d0 Add redis back into pm2 2017-01-31 10:57:24 -08:00
Juan Tejada
7029653c00 [local-sync] Retry syncback tasks that throw retryable errors
Summary:
This will prevent us from showing error messages to the user when we
can automatically recover from the error

Test Plan: manual-- throw error from syncback task, check expected results

Reviewers: evan, mark, spang

Reviewed By: spang

Differential Revision: https://phab.nylas.com/D3812
2017-01-31 10:54:18 -08:00
Juan Tejada
71959b44fb [local-sync] Account for additional IMAP retryable errors
Summary:
There are 2 types of IMAP errors that need to be treated as retryable. See code
comments as to why.

Test Plan: manual

Reviewers: khamidou, evan, spang

Reviewed By: spang

Differential Revision: https://phab.nylas.com/D3811
2017-01-31 10:53:43 -08:00
Juan Tejada
6aa5ad509a 🎨 remove outdated comments 2017-01-30 22:28:38 -08:00
Juan Tejada
952bedf794 bump(k2) 2017-01-30 22:00:17 -08:00
Juan Tejada
9abcf7e8d8 [local-sync] Report permanent sync errors to sentry 2017-01-30 21:59:03 -08:00
Halla Moore
091ebe9de6 update(docs): Add note about Linux dependencies 2017-01-30 16:14:48 -08:00
Evan Morikawa
9bc87c1ba1 bump(electron): bump electron to 1.4.15 2017-01-30 15:55:13 -08:00
Evan Morikawa
1d6f634e1c fix(ci): add linux dependencies for keyboard-layout plugin build
https://github.com/atom/keyboard-layout/issues/27
2017-01-30 15:40:52 -08:00