Skip to content

MSC4429: Profile Updates for Legacy Sync#4429

Open
anoadragon453 wants to merge 1 commit intomainfrom
anoa/legacy_sync_profile_updates
Open

MSC4429: Profile Updates for Legacy Sync#4429
anoadragon453 wants to merge 1 commit intomainfrom
anoa/legacy_sync_profile_updates

Conversation

@anoadragon453
Copy link
Copy Markdown
Member

@anoadragon453 anoadragon453 commented Mar 5, 2026

Rendered

Conflict of Interest declaration: I am employed by Element. This MSC was written as part of my work on the Element Backend Team to land a "user status" feature (based on top of custom profiles, see MSC4426) for a customer.

@anoadragon453 anoadragon453 changed the title MSCXXXX: Profile Updates for Legacy Sync MSC4429: Profile Updates for Legacy Sync Mar 5, 2026
@anoadragon453 anoadragon453 force-pushed the anoa/legacy_sync_profile_updates branch from 82ac3a7 to 3b205f6 Compare March 5, 2026 18:53
@anoadragon453 anoadragon453 marked this pull request as ready for review March 5, 2026 18:54
@anoadragon453 anoadragon453 added proposal A matrix spec change proposal client-server Client-Server API kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels Mar 5, 2026
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementation requirements:

  • Client (using)
  • Server (sending)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and compare that against an identifier stored within the provided `since` token
to know whether a client has yet to receive a given profile update.

### Clients
Copy link
Copy Markdown
Contributor

@Half-Shot Half-Shot Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do clients know when to expire the stored cache of profile updates? If the user deletes a profile key, do we get that down sync? (Covered by null above) If another user leaves the scope of the authenticated user, can the homeserver notify that we are no longer interested in the keys for that user?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. If a user leaves all rooms that you share with them, then it would make sense for homeservers to inform clients of that.

And as you suggested in DM, it would be nice to be able to send:

{
  "users": {
    "@leftdude:example.org": {
      "profile_updates": null
    }
  }
}

down /sync in order to indicate that all profile fields should be forgotten by the client.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client-server Client-Server API kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants