Commit graph

502 commits

Author SHA1 Message Date
Bruno Windels
b6a5a02a33 WIP 2020-03-30 23:56:03 +02:00
Bruno Windels
65cca83f7f notes how to implement reconnecting and status reporting 2020-03-30 22:24:38 +02:00
Bruno Windels
2f7c825d2b
Merge pull request #42 from bwindels/bwindels/fixnamechangeshownasjoin
look at prev_content when handling member events
2020-03-30 20:00:39 +00:00
Bruno Windels
e4563135bf look at prev_content when handling member events 2020-03-30 21:59:44 +02:00
Bruno Windels
3a6a2e1e99
Merge pull request #41 from bwindels/bwindels/catchsenderror
Catch errors while persisting a new message
2020-03-30 19:33:53 +00:00
Bruno Windels
c830f50325 catch errors while persisting a new message 2020-03-30 21:33:04 +02:00
Bruno Windels
53f2a5801e
Merge pull request #40 from bwindels/bwindels/fixgaplinkslost
Prevent fragment links corrupting when filling a gap and server returns duplicate events
2020-03-30 18:48:07 +00:00
Bruno Windels
234c260339 dont modify fragments in comparer until txn succeeds 2020-03-30 20:46:52 +02:00
Bruno Windels
73ea09f668 Handle sync ordering vs back-fill ordering (see synapse #7164) resulting in dupe events
Also extra robustness while filling a gap

ignore duplicate events from synapse instead considering them an
overlapping event with the adjacent fragment
2020-03-30 20:37:36 +02:00
Bruno Windels
9b2f282534 move docs about how to implement something to subdir 2020-03-28 12:36:19 +01:00
Bruno Windels
089d2fe430 some notes on the general idea of persisting network calls in brawl 2020-03-28 12:33:56 +01:00
Bruno Windels
b8eea881f8 some notes on how we might implement members and display names 2020-03-28 12:33:34 +01:00
Bruno Windels
0b25419ccd release v0.0.19 2020-03-23 23:02:46 +01:00
Bruno Windels
dc65274b8b
Merge pull request #38 from bwindels/bwindels/remote-echo-for-gaps
Look for remote echos in gap responses as well as sync responses
2020-03-23 22:00:45 +00:00
Bruno Windels
8354c58c07 also look for remote echos based on event_id 2020-03-23 23:00:33 +01:00
Bruno Windels
eda4022692 show version before login and link to release 2020-03-23 22:46:31 +01:00
Bruno Windels
f02641c808 look for transaction_id in /messages response to delete pending events 2020-03-22 00:07:37 +01:00
Bruno Windels
6d68ec1bac move fillGap to room 2020-03-21 23:40:40 +01:00
Bruno Windels
ae01a65b3c some adjustments for lumia 2020-03-21 23:20:13 +01:00
Bruno Windels
7ce13b0fd0 add prototype to test we can safely attempt to open two readwrite txns 2020-03-21 22:53:11 +01:00
Bruno Windels
3ece193931 release v0.0.18 2020-03-21 14:32:04 +01:00
Bruno Windels
72539073ec
Merge pull request #36 from bwindels/bwindels/tilescollectionupdatebeforeadd
Fix: don't emit update before add for new tile
2020-03-21 13:30:16 +00:00
Bruno Windels
f729108226 pass emit update fn through setter so we control when tile can update 2020-03-21 14:28:09 +01:00
Bruno Windels
a3714f49cc group public methods for a tile together 2020-03-21 14:26:56 +01:00
Bruno Windels
4176af56ea add failing test for problem 2020-03-21 14:22:16 +01:00
Bruno Windels
0c51df220c release script 2020-03-21 11:32:37 +01:00
Bruno Windels
396722c143 bump to 0.0.17 2020-03-21 10:50:55 +01:00
Bruno Windels
a0dd4ee159
Merge pull request #34 from bwindels/bwindels/updateprevfragwhenappending
Fix: update previous fragment in comparer when appending a new live fragment
2020-03-21 09:48:34 +00:00
Bruno Windels
44760a9f82 Revert "add logging related to fragments"
This reverts commit 2f355cabef.
2020-03-21 10:47:35 +01:00
Bruno Windels
c4a5de20c0 update previous fragment in comparer when appending a new line fragment 2020-03-21 10:45:09 +01:00
Bruno Windels
aa7e5d4e0a bump version to 0.0.16 2020-03-20 20:24:00 +01:00
Bruno Windels
2f355cabef add logging related to fragments
both when rebuilding and when sorting will be used
2020-03-20 20:23:07 +01:00
Bruno Windels
096800d91a
Merge pull request #33 from bwindels/bwindels/fixwedgie
Fix: remote id not being stored when receiving /send response
2020-03-16 23:22:41 +00:00
Bruno Windels
7e8cc7ae00 need to return the response here, not the request wrapper
we were reading back a remote id of undefined because of this,
so when for some reason we never receive the message down from sync,
the pending message keeps sending on every load. The server ignores
the send though, because the transaction id is already used, and it returns
the remote id of the event that was already sent the previous time, but
as we were not storing this remote id, we'd just try again and again.

not receiving it through sync could have happened when we were sending a bunch of events
and then receiving (this is how we encountered this bug, while trying to repro another) the
response, but not yet the sync for the message that got wedged. Then we typed stuff on another client
so we would get a limited response for that room, and boom, we would not get the remote echo of the
event that was already sent (but because of this bug we didn't store the remote id) but no echo received yet (when we remove the pending event),
so it gets wedged!
2020-03-17 00:11:50 +01:00
Bruno Windels
b69efc3425 fix errors when replaying 2020-03-17 00:07:54 +01:00
Bruno Windels
ff9e55e49c cut 0.0.15 2020-03-14 21:42:24 +01:00
Bruno Windels
06e43d9ee3 fix all tests 2020-03-14 21:38:37 +01:00
Bruno Windels
8ac230a691 upgrade deps, also acorn to 7.1.1 because of security 2020-03-14 21:38:27 +01:00
Bruno Windels
38d79026d8 upgrade to impunity 0.0.10 so tests can run again 2020-03-14 21:37:25 +01:00
Bruno Windels
2b0151c248
Merge pull request #32 from bwindels/bwindels/fixconstrainterror-part2-rebased
Also only set session and summary data once txn is committed
2020-03-14 19:53:31 +00:00
Bruno Windels
714892c3d3 this breaks the local server, so don't do it for now 2020-03-14 20:52:17 +01:00
Bruno Windels
56c87b3966 better naming 2020-03-14 20:49:15 +01:00
Bruno Windels
ac4a7f971b only apply sync changes in room summary once txn is committed
- also remove m.room.aliases support as they were wrongly implemented
   and now obsolete
 - don't count invited and joined members according to m.room.member
   events anymore as it was also wrongly implemented
   (only when prev!==new membership, but on initial sync we only get
   last member event, which might have been a nick change
2020-03-14 20:46:49 +01:00
Bruno Windels
fc741272ba only apply sync changes in session once txn is committed 2020-03-14 20:45:36 +01:00
Bruno Windels
177b03915d fix unit tests by updating impunity 2020-03-13 23:26:48 +01:00
Bruno Windels
8eea6e7296
Update e2e.md 2020-03-10 17:34:45 +00:00
Bruno Windels
3ba91835c4 bump version for release 2020-01-04 20:30:29 +01:00
Bruno Windels
063efea159
Merge pull request #27 from bwindels/bwindels/tryfixconstrainterror
Attempt to fix ConstraintError on sync
2020-01-04 19:29:10 +00:00
Bruno Windels
224d56698a only set new live key when creating a fragment after the txn succeeds
when doing a limited sync, and a new fragment is created,
this._lastLiveKey is updated immediately. If the transaction
would then fail, the fragmentId in this._lastLiveKey was incremented
but the fragment wasn't written to the store, so if sync is resumed
and would subsequently succeed, fragmentIds would be assigned to events
that don't have a corresponding fragment in the timelineFragment store.

This would throw errors when trying to load the timeline,
breaking the whole app.

This changes SyncWriter to only update this._lastLiveKey in
the emit phase, when the transactions has been committed already.
2020-01-04 20:06:49 +01:00
Bruno Windels
bdc2c3d9ad cleanup: storage is not used in SyncWriter
as the transaction is now always passed as an argument, it never
creates one on its own.
2020-01-04 20:04:57 +01:00