Commit Graph

198 Commits

Author SHA1 Message Date
Abdullah Atta
7b458a56b2 core: revert "make sync hub connection more reliable" 2022-10-26 08:51:18 +05:00
Abdullah Atta
e25d4a3039 global: update qclone to 1.2.0 2022-10-19 12:10:31 +05:00
Abdullah Atta
0b971bda38 core: minor refactors 2022-10-17 22:46:43 +05:00
Abdullah Atta
73b09847b8 core: make sync hub connection more reliable 2022-10-17 22:46:31 +05:00
Abdullah Atta
e1fc116994 core: improve content conflict detection using proper HTML diffing (#1183)
Since HTML is a tree-like language it is futile to compare it character
for character. `html1 === html2` is almost always false. This commit
introduces a simple diffing algorithm that only checks the text inside
the html + a few other attributes to decide whether the 2 HTMLs are
actually different or not. This is obviously not foolproof and it will
ignore everything aesthetic (b, em, strong tags etc.). This is actually
desireable because in our case only the text difference should
warrant a conflict. Everything else can easily be brought back.
Similarly, this also ignores whitespace differences surrouding the
tags.

All in all it'll provide a more reliable alternative to MD5 hashing the
2 HTMLs.
2022-10-13 19:22:32 +05:00
Abdullah Atta
f3fa7fe744 core: update core version to 5.8 2022-10-13 19:18:52 +05:00
Abdullah Atta
c09715d053 core: make item migration fall through all db versions
this was not exactly a bug but it can cause a lot of unintended
behaviour. Previously, you'd have to manually specify which version the
item migration should jump to. This was buggy and poorly designed.
This change makes the item iterate over all the db migrations one by one
automatically.

For example:

An item at version 5.2 will go through:
- 5.3
- 5.4
- and so on
2022-10-13 19:18:52 +05:00
Abdullah Atta
7c99c3acb9 core: add migrations for notebooks & settings (#1020) 2022-09-21 11:47:09 +05:00
Abdullah Atta
6c613c6f1e Merge branch 'move-pins-out' 2022-09-21 10:45:58 +05:00
Ammar Ahmed
e5e965415d feat: realtime & auto sync for all users (#944) 2022-09-20 18:33:55 +05:00
Abdullah Atta
ca0d746966 core: fail fast if sync connection fails
this adds reslience to the sync logic in cases where network
isn't responding or is very slow to respond. Previously there were
cases where the sync would get stuck in Connecting state.
This will no longer happen.
2022-09-19 16:20:12 +05:00
ammarahm-ed
c8dc5207b4 core: fix auto sync does not send sync complete event 2022-09-08 18:30:49 +05:00
Abdullah Atta
201366b39e core: get rid of noteIds in notebook topics
This is a BREAKING change in the core & will require updating the
clients. The way it works is instead of keeping noteIds of all the
notes in the topic, it keeps an in-memory cache. This in-memory
cache `topicReferences` lives in the notes collection & decouples
notes from notebooks/topics. This also simplifies all the different
actions where references would persist after the note was deleted.
Since the note acts as the source of truth for where it currently is,
there is nothing else to do except rebuild the `topicReferences`
cache.
2022-09-08 13:39:06 +05:00
Abdullah Atta
ac7aad93b3 core: shorcuts -> shortcuts 2022-09-07 14:13:26 +05:00
Abdullah Atta
1e99d7732c core: add new collection for shortcuts 2022-09-07 12:47:02 +05:00
Abdullah Atta
d81f5dba65 refactor: migrate to theme-ui from rebass 2022-08-31 07:26:27 +05:00
Abdullah Atta
c317774c8a docs: add license header 2022-08-30 16:17:04 +05:00
thecodrr
f1ceecf982 fix: log error (as warning) during connection check 2022-08-16 09:23:49 +05:00
thecodrr
e4b1399d45 fix: refresh monographs on sync complete 2022-08-15 19:08:43 +05:00
thecodrr
87b778db94 test: improve overall test coverage 2022-08-15 10:57:25 +05:00
thecodrr
db324b6b87 test: fix collector test 2022-08-06 11:05:16 +05:00
thecodrr
cf9bad7db8 fix: content type being set to "content" during sync
this bug broke export/publishing & basically
everything that depends on content type
to function.
2022-08-06 10:45:15 +05:00
thecodrr
5b96009875 fix: merge settings with conflict expectation 2022-07-20 19:55:00 +05:00
thecodrr
b4db7d5923 fix: avoid sync locking 2022-07-20 17:39:02 +05:00
thecodrr
e0d2cbc019 fix: make sure connection is disconnected before reconnecting 2022-07-20 16:55:48 +05:00
thecodrr
93be4c7e31 fix: reconnect synchub if connection has been closed 2022-07-20 16:47:29 +05:00
thecodrr
d3e77a9063 feat: remove migrated property 2022-07-20 08:33:50 +05:00
thecodrr
32d4cfa594 feat: disable interruptible syncing 2022-07-20 07:19:48 +05:00
thecodrr
530a1cc625 feat: add log messages all over the place 2022-07-19 11:16:46 +05:00
thecodrr
732ef2cac8 fix: check for conflicts before syncing 2022-07-15 15:48:13 +05:00
thecodrr
61e608b2dc fix: remove notebook reference from notes that are removed from topic during merge 2022-07-13 14:58:21 +05:00
thecodrr
4e34f33f1d fix: expect merge conflicts in notebooks 2022-07-13 12:21:00 +05:00
thecodrr
27dade850a fix: properly handle concurrent syncs 2022-07-09 21:24:18 +05:00
thecodrr
e67ee7534e fix: throw error if sync is already in progress 2022-07-08 12:13:03 +05:00
thecodrr
3f54f36d50 feat: migrate from tiny -> tiptap 2022-07-07 13:17:55 +05:00
thecodrr
3f6f5e6f9c fix: sanitize color before assigning it to a note 2022-04-15 23:32:59 +05:00
thecodrr
c64f867d18 test: add test to check for colors 2022-04-14 01:11:12 +05:00
thecodrr
f774948838 fix: speed up sync by skipping negotiation 2022-04-14 01:10:46 +05:00
thecodrr
7b57b0b916 fix: parse & throw json errors from signalr errors 2022-04-13 16:46:19 +05:00
thecodrr
0a7f80cad5 fix: data collection & upload progress on sync 2022-04-01 20:03:00 +05:00
thecodrr
d67576d04d test: skip all sync tests 2022-04-01 18:49:29 +05:00
thecodrr
f8bb3d2d71 fix: improve fetch items progress 2022-04-01 14:50:12 +05:00
thecodrr
d2e6cffa55 fix: resolve if device synced 2022-04-01 10:38:43 +05:00
thecodrr
9378a205d7 fix: make fetch queue properly async 2022-03-31 17:14:09 +05:00
thecodrr
c234c87a76 feat: use messagepack for syncing 2022-03-31 16:18:34 +05:00
thecodrr
1703420ca9 feat: allow grouping by none 2022-03-31 14:32:24 +05:00
thecodrr
b90858e199 fix: don't run autosync for localOnly items 2022-03-31 11:46:48 +05:00
thecodrr
2d6824cc73 fix: set last synced time from server if there is nothing to sync locally 2022-03-31 11:37:13 +05:00
thecodrr
baa2b8ab81 fix: incorrect upload progress 2022-03-31 10:33:38 +05:00
thecodrr
e02f368f4c fix: force sync & sync progress 2022-03-31 09:40:51 +05:00