Skip to content

MSC4446: Allow moving the fully read marker to older events#4446

Open
SpiritCroc wants to merge 4 commits intomatrix-org:mainfrom
beeper:move-fully-read-backward
Open

MSC4446: Allow moving the fully read marker to older events#4446
SpiritCroc wants to merge 4 commits intomatrix-org:mainfrom
beeper:move-fully-read-backward

Conversation

@SpiritCroc
Copy link
Copy Markdown

@SpiritCroc SpiritCroc commented Apr 2, 2026

@SpiritCroc SpiritCroc changed the title MSC0000: Allow moving the fully read marker to older events MSC4446: Allow moving the fully read marker to older events Apr 2, 2026
@tulir tulir added proposal A matrix spec change proposal client-server Client-Server API kind:maintenance MSC which clarifies/updates existing spec needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels Apr 2, 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:

  • Server that ignores attempts to roll back without the flag
  • Server that allows rolling back with the flag
  • Client that uses the flag to intentionally roll back m.fully_read
  • Testing to ensure old clients don't explode when m.fully_read rolls back

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

As mentioned in comments further down, I can currently offer:

Furthermore, here some clients that didn't explode on initial testing yet when rolling the marker back:

  • SchildiChat Next (Element X Android base)
  • SchildiChat Android Legacy (Element Android Classic base)
  • SchildiChat Web (Element Web base, though on somewhat older 1.11.112 version)
  • Beeper Android & Desktop (at the time of writing not implementing this MSC yet)

@github-project-automation github-project-automation bot moved this to Tracking for review in Spec Core Team Workflow Apr 2, 2026
@SpiritCroc SpiritCroc marked this pull request as ready for review April 7, 2026 06:49
@SpiritCroc
Copy link
Copy Markdown
Author

Synapse PR / server implementation: element-hq/synapse#19663

@SpiritCroc
Copy link
Copy Markdown
Author

SchildiChat Revenge implements this via SchildiChat/matrix-rust-sdk@e2d4ec2 / SchildiChat/ruma@54b2407 (client side code already allowed picking any message for setting the fully read marker, so only SDK-side usage of the flag was needed).

In practice the client currently only invokes the /receipt endpoint for this purpose, not /read_markers. I don't have a strong opinion on whether both endpoints should allow the new flags, but figured for consistency it makes sense to allow for both, to support clients which may want to prefer /read_markers over /receipt.

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:maintenance MSC which clarifies/updates existing spec 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.

3 participants