Bruno Windels
41fb30c68b
add relations store
2021-06-03 16:50:37 +02:00
Bruno Windels
36a35d92f0
pass ownUserId to RelationWriter
...
We'll need to to aggregate whether we have reacted to a message
Create writers at room level and pass subwriter is dependency, rather
than creating them in sync and gap writer.
2021-06-03 16:50:37 +02:00
Bruno Windels
46bfab3eb7
fix some lint and comment
2021-06-03 16:50:11 +02:00
Bruno Windels
d965d57be7
don't leak timeline when an error is thrown while opening it
...
or you are just stuck with "not dealing with race" errors until refresh
2021-06-02 18:44:03 +02:00
Bruno Windels
0c4c018ceb
add note that powerlevels won't update when the state event is changed
2021-06-02 18:43:47 +02:00
Bruno Windels
d2f5b412ac
don't try to hook up local relations for events that are not relations
...
and do unnecessary work
2021-06-02 18:43:16 +02:00
Bruno Windels
365bd5cad0
fix the race
2021-06-02 18:42:46 +02:00
Bruno Windels
84ecaa2ee1
don't trip over missing create events when loading power levels
...
as the test from previous commit fails because of that, and powerlevels
works fine without
2021-06-02 18:41:52 +02:00
Bruno Windels
4a8a6168cd
add failing test for race between sync & subscribing after openTimeline
2021-06-02 18:41:03 +02:00
Bruno Windels
d8acf63e1d
change mock event api a bit to be easier to read
2021-06-02 18:38:16 +02:00
Bruno Windels
31075d601f
load power levels before decryption closes the txn
2021-06-02 15:06:30 +02:00
Bruno Windels
cef94fea45
fix lint
2021-06-02 12:38:41 +02:00
Bruno Windels
bf951bd322
fix logging wrong value
2021-06-02 12:34:14 +02:00
Bruno Windels
c3754fdbd4
fix the race, make test succeed
2021-06-02 12:34:02 +02:00
Bruno Windels
87ebdbb0b4
add failing test for unhandled race between sync and send
...
see comments in code
2021-06-02 12:33:15 +02:00
Bruno Windels
edbac25613
prepare storage to work with alternative idb impl
2021-06-02 12:31:13 +02:00
Bruno Windels
7a96f84cab
also show redaction reason for redaction local echo
2021-06-02 12:17:09 +02:00
Bruno Windels
addddf1f26
remove need for transferLocalEchoState, just add local relations again
2021-05-31 16:33:05 +02:00
Bruno Windels
13a4a0169c
remove obsolete comments
2021-05-31 16:23:59 +02:00
Bruno Windels
25ce06c9d5
clarify
2021-05-31 15:55:31 +02:00
Bruno Windels
00231443d3
timeline has the own member, so can just use timeline, not ownUserId
2021-05-31 15:18:44 +02:00
Bruno Windels
2bd7c23076
fix lint
2021-05-31 15:08:49 +02:00
Bruno Windels
d68d14358f
use lower return
2021-05-31 14:08:45 +02:00
Bruno Windels
492a8fe359
remove extra whiteline
2021-05-31 14:05:37 +02:00
Bruno Windels
5d35caf85f
no need to emit, timeline finds out by themselves with remote echo
2021-05-31 14:03:22 +02:00
Bruno Windels
23459aad52
check if you are allowed to redact a message
2021-05-31 13:52:03 +02:00
Bruno Windels
63b371b6ef
support findAndUpdate with same predicate semantics in SortedArray too
2021-05-31 10:47:32 +02:00
Bruno Windels
fa37e8fedb
findAndUpdate uses predicate, just add callback to update method
2021-05-31 10:46:16 +02:00
Bruno Windels
2da7ef4280
can only look in remote entries here as PEEs never return an event id
2021-05-27 10:28:02 +02:00
Bruno Windels
5e9ce365bf
also apply local relations when loading at top
2021-05-27 10:27:44 +02:00
Bruno Windels
a93b1af047
ensure these don't fail on a gap entry
2021-05-27 09:16:25 +02:00
Bruno Windels
afc3db2f33
unrelated todo note for later
2021-05-27 09:11:57 +02:00
Bruno Windels
2b5dcff836
consistent naming
2021-05-27 09:11:13 +02:00
Bruno Windels
da02b5fe2d
transfer local echo state when replacing event entry
...
e.g. after decryption or remote echo of other relation comes in
2021-05-26 13:10:19 +02:00
Bruno Windels
ce7147e463
put redactions in their own view, and allow aborting while still queued
2021-05-26 13:07:56 +02:00
Bruno Windels
af45810582
add support for redactions (and relations) local echo
2021-05-21 16:59:29 +02:00
Bruno Windels
b55efb7f11
ensure updateEntries is always set in the result of GapWriter
2021-05-21 16:58:04 +02:00
Bruno Windels
c934049523
also resolve related event ids when removing remote echo during sync
...
as /sync races with /send, and remote echo may happen first.
It's important for local echo that the pending redaction/relation
will also get attached to the remote echo before /send returns,
otherwise the remote echo would be "unannotated" until /send returns
2021-05-21 10:52:46 +02:00
Bruno Windels
c3fb35848b
emit update when receiving event id for related event ahead in the queue
2021-05-20 15:02:45 +02:00
Bruno Windels
619cf9bcbb
this should be filter rather than find, we iterate it
2021-05-20 15:02:24 +02:00
Bruno Windels
f271517446
log redaction during sync
2021-05-20 15:02:14 +02:00
Bruno Windels
8a8c5569dc
provide redact method on tile and room
...
also add some logging
2021-05-20 14:53:17 +02:00
Bruno Windels
9721432a8c
remove pending events that failed because of permanent error
...
so they don't get stuck
2021-05-20 14:52:30 +02:00
Bruno Windels
4ce66fc8a1
allow concurrent removals when iterating pending events
...
so we can remove failed events in the next commit
2021-05-20 14:51:04 +02:00
Bruno Windels
618a32e6c0
revert last tried pending event status to waiting when offline
...
so we don't fail the check if we can immediately remove when redacting
2021-05-20 14:49:54 +02:00
Bruno Windels
df9e886f32
fix lint
2021-05-20 13:22:54 +02:00
Bruno Windels
b655c34bbb
also show reason for redaction
2021-05-20 13:20:12 +02:00
Bruno Windels
780ad44032
render redacted messages
2021-05-20 13:15:35 +02:00
Bruno Windels
94b0bc82ef
writing relations is async
2021-05-20 12:50:16 +02:00
Bruno Windels
814e92ad92
fix missing import
2021-05-20 12:50:16 +02:00