Conversation
|
From IRC: |
|
my only other concern is the amount of stuff it doesn't address. i'm particularly concerned that this helps us get further with the application services API (i.e. subscribing to events on behalf of virtual users, and possibly expose virtual rooms(?)) |
There was a problem hiding this comment.
What happens if the server gets old events for a room as part of resolving a net split. Does it just force a resync of the client? How does it do so if the client has already done an initialSync. Does it just expire the old stream tokens?
There was a problem hiding this comment.
Out of order events in general are not covered by this proposal.
|
Would it make sense to have a clear concept of a "session of actively using the client", i.e. hitting the event stream, using the API? It might make timing out presence and typing notifications due to inactivity simpler. Currently this seems to be wrapped up in the "stream token" concept. |
|
Do have any way of identifying individual devices for presence and push notifications? |
|
This is a good start. Inline CommentsAPI Changes Summary
How does this relate to room initial sync?
I'm not sure how this is going to work given the fact that we might receive out of order events? I think this may possible, but will require a lot of thought. Resolves issues
I don't understand how the "fixes" solve these problems.
Do we also want to be able to "paginate" on room members?
Again, I don't follow what the solution here is. Issues not addressed
The current API enforces atomic updates of power levels, which is quite a nice property.
From a federation/server point of view, its easy and reliable to get events before a given event. Its harder to reliably get events after.
Rejection can be either "I should not have shown you that event and its no longer part of the history of a room", or it may be included as part of history in its redacted form.
It would be nice if we separated all types EDUs from PDUs.
I really really want us to use timestamps. Either you have a date library or you don't. If you don't, then timestamps are easier to work with. If you do, then changing timestamps into ISO8601 is easy. I am of the opinion that first and foremost we should make the JSON easy to parse before we make it easy for humans to read. Meta APIsGenerating an event filtering tokenDo we also want to be able to specify negative filters? e.g. don't give me topic events. What is the lifecycle of these tokens? When do they die? Should we have some predefined default tokens? Action APIsJoining a roomWe probably also want an API that allows us to specify a room ID and list of hosts to join via. Syncing (aka I want live data)
I don't think this is such a huge concern necessarily, since the home server can return less than the clients have requested. Home servers will probably have an internal limit (e.g. 100 or 1000) to make sure that clients can't do exactly this. Examples#2 Less buggy SYWEB recreation
These look like they could/should be combined into one. Unaddressed topics
|
|
There doesn't seem to be any mention of the requirements. We are told that a "Less buggy SYWEB recreation" does "GET /initialSync max=1", but we have no idea what client-side requirement that is supposed to fulfil. I think it would be worthwhile to specify the requirements for each of the hypothetical clients in more detail. |
|
We also have lost improvements to the public room API (e.g. paginating or searching it) |
|
Closing to avoid confusion. |
* Update link to API viewer Fixes matrix-org#2
Version 2 of the client server API.