-
-
Notifications
You must be signed in to change notification settings - Fork 595
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Load Thread List with server-side assistance (MSC3856) #2602
Load Thread List with server-side assistance (MSC3856) #2602
Conversation
aec5b7e
to
4dfe884
Compare
c1fd56a
to
c5aff2d
Compare
a3be071
to
ba48a6f
Compare
d5e339b
to
662fe0b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a few questions, also as the CI notes this could use just a little bit more coverage
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good now as long as CI becomes happy
e3aafbc
to
fbb39af
Compare
* Changes the `uploadContent` API, kills off `request` and `browser-request` in favour of `fetch`, removed callback support on a lot of the methods, adds a lot of tests. ([\matrix-org#2719](matrix-org#2719)). Fixes matrix-org#2415 and matrix-org#801. * Remove deprecated `m.room.aliases` references ([\matrix-org#2759](matrix-org#2759)). Fixes element-hq/element-web#12680. * Remove node-specific crypto bits, use Node 16's WebCrypto ([\matrix-org#2762](matrix-org#2762)). Fixes matrix-org#2760. * Export types for MatrixEvent and Room emitted events, and make event handler map types stricter ([\matrix-org#2750](matrix-org#2750)). Contributed by @stas-demydiuk. * Use even more stable calls to `/room_keys` ([\matrix-org#2746](matrix-org#2746)). * Upgrade to Olm 3.2.13 which has been repackaged to support Node 18 ([\matrix-org#2744](matrix-org#2744)). * Fix `power_level_content_override` type ([\matrix-org#2741](matrix-org#2741)). * Add custom notification handling for MSC3401 call events ([\matrix-org#2720](matrix-org#2720)). * Add support for unread thread notifications ([\matrix-org#2726](matrix-org#2726)). * Load Thread List with server-side assistance (MSC3856) ([\matrix-org#2602](matrix-org#2602)). * Use stable calls to `/room_keys` ([\matrix-org#2729](matrix-org#2729)). Fixes element-hq/element-web#22839. * Fix POST data not being passed for registerWithIdentityServer ([\matrix-org#2769](matrix-org#2769)). Fixes matrix-org/element-web-rageshakes#16206. * Fix IdentityPrefix.V2 containing spurious `/api` ([\matrix-org#2761](matrix-org#2761)). Fixes element-hq/element-web#23505. * Always send back an httpStatus property if one is known ([\matrix-org#2753](matrix-org#2753)). * Check for AbortError, not any generic connection error, to avoid tightlooping ([\matrix-org#2752](matrix-org#2752)). * Correct the dir parameter of MSC3715 ([\matrix-org#2745](matrix-org#2745)). Contributed by @dhenneke. * Fix sync init when thread unread notif is not supported ([\matrix-org#2739](matrix-org#2739)). Fixes element-hq/element-web#23435. * Use the correct sender key when checking shared secret ([\matrix-org#2730](matrix-org#2730)). Fixes element-hq/element-web#23374.
@@ -711,6 +752,63 @@ describe("MatrixClient event timelines", function() { | |||
}); | |||
|
|||
describe("getLatestTimeline", function() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should also add some tests for the thread scenarios added to getLatestTimeline(...)
in this PR.
It was originally only intended for the main live timeline (room.getUnfilteredTimelineSet(...)
) and our only usage in the SDK from room.refreshLiveTimeline(...)
is still for that purpose
@@ -5438,27 +5444,36 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa | |||
* @return {Promise} Resolves: | |||
* {@link module:models/event-timeline~EventTimeline} timeline with the latest events in the room | |||
*/ | |||
public async getLatestTimeline(timelineSet: EventTimelineSet): Promise<EventTimeline> { | |||
public async getLatestTimeline(timelineSet: EventTimelineSet): Promise<Optional<EventTimeline>> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function is expected to always return an EventTimeline
and was introduced during a time where getEventTimeline(...)
always returned a timeline as well, see #2299. I see that this PR is just updating the signature to match what getEventTimeline(...)
can do to us though.
This will break the assumptions in room.refreshLiveTimeline()
For reference, we're also thinking about how to make getEventTimeline(...)
play nicely here for another bug scenario in #2521 (comment). So there probably isn't any action here besides sparing a thought if you can think of a good solution.
Type: Enhancement
Related: element-hq/element-web#21877
Related: element-hq/element-web#21911
Here's what your changelog entry will look like:
✨ Features