Skip to content

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

Open
SpiritCroc wants to merge 6 commits into
matrix-org:mainfrom
beeper:move-fully-read-backward
Open

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

Conversation

@SpiritCroc

@SpiritCroc SpiritCroc commented Apr 2, 2026

Copy link
Copy Markdown

@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. Process state. A-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.

@anoadragon453 anoadragon453 left a comment

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.

This looks fine overall to me just now. Currently providing a drive-by review as I review the Synapse PR.

Some small things below.

Comment thread proposals/4446-move-fully-read-backwards.md
Comment thread proposals/4446-move-fully-read-backwards.md Outdated
Comment thread proposals/4446-move-fully-read-backwards.md
SpiritCroc and others added 2 commits July 9, 2026 17:05
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-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. Process state.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants