Age | Commit message (Collapse) | Author |
|
* Make handling of edited messages MSC1849 compatible
Server side aggregation replaces `content` with `new_content` in
edited messages. The same must be done at client side on
incremental updates to keep timeline consistent.
As server side aggregations is in use by default from Synapse 1.2.0
this patch fixes a real issue.
|
|
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
|
|
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
device_one_time_keys_count
Signed-off-by: Alexey Andreev <aa13q@ya.ru>
|
|
|
|
|
|
Specifically, handle colons and long file names gracefully. Closes #366.
|
|
|
|
|
|
As a result of the typo, the extension was never attached to returned
file names if there was none originally.
|
|
The tags can now be applied not only to the current room but also
propagated to its predecessors and successors.
|
|
|
|
|
|
Closes #361.
|
|
|
|
redact
It seems that sometimes redactions may precede the unredacted events
within the same sync batch.
|
|
Fixes #318
|
|
|
|
Xcode 10 doesn't have it, and value() is not quite fitting
mostly-exceptionless Quotient anyway.
|
|
That breaks API all over the place but:
1. The fixes are trivial.
2. More of std:: is used instead of home-baking the same stuff.
|
|
When homeserver's csapi is in a subdomain, e.g. matrix.example.org, the
authority of api endpoint url differs from server name, example.org.
This causes Room::localAliases() to fail.
|
|
|
|
|
|
Invading into std:: is frowned upon, even though legitimate from the C++ standard perspective. Given that it's possible to pass a hash object to unordered_map, it only takes an alias for std::unordered_map to avoid having to specialize std::hash. And besides, a generic compatibility bridge between qHash and std::hash has been long needed.
std::hash<QString> in converters.h remains for now; it will be dropped separately when the API files get regenerated to use UnorderedMap.
|
|
Better BaseJob
|
|
The Spec now allows it, even if with a disclaimer that
it's subject for further removal.
|
|
As before, completely transparent for clients, driven by 529 errors from
the server (but cases of rate limiting are signalled by
BaseJob::rateLimited). That brings changes to BaseJob API: timeouts now
use int64_t and also can be handled in std::chrono terms; aboutToStart()
-> aboutToSendRequest(); started() -> sentRequest(). Closes #292.
|
|
That's a matter of another upcoming commit.
|
|
|
|
|
|
Update the cache for sure if unread counters were changed
|
|
|
|
In Quaternion, I was able to reproduce a process where
`d->notificationCount` and `d->highlightCount` were changed in
`Room::updateData()` meanwhile `roomChanges` indicated `NoChange`
thus the cache became permanently inconsistent with running state.
Without deep understanding of `roomChanges` logic, I've applied
this straightforward change which made this phenomenon
unreproducible.
|
|
Closes #326.
|
|
|
|
|
|
|
|
This is an addition in https://github.com/matrix-org/synapse/pull/5805 -
Synapse no more tolerates fake state events (which actually obviates
the need for this test but fake state events still go through on older
Synapses). To allow checking for both cases Room behaviour has been
slightly changed (without compat breakage) to make sure the pending
event status is set to ReachedServer (and pendingEventChanged() is
emitted, if necessary) before merging the pending event into the
timeline.
|
|
|
|
|
|
Unified *Key -> *KeyL identifiers in roommessageevent.cpp along the way.
|
|
|
|
* struct EventRelation; class ReactionEvent; Room::relatedEvents()
* Reaction events are processed in both history and sync batches
* Redacting a reaction removes it from the list of related events
* QMCTest::sendReaction()
|
|
|
|
|
|
|
|
Also: refactoring to streamline state events submission.
|
|
|