Skip to content

fix: render new messages divider when read receipt anchors on a filtered event#1101

Merged
7w1 merged 1 commit into
SableClient:devfrom
eleboucher:fix/new-messages-divider-filtered-anchor
Jul 16, 2026
Merged

fix: render new messages divider when read receipt anchors on a filtered event#1101
7w1 merged 1 commit into
SableClient:devfrom
eleboucher:fix/new-messages-divider-filtered-anchor

Conversation

@eleboucher

@eleboucher eleboucher commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Description

Follow-up to #1095. The divider re-anchoring worked, but in busy rooms the divider often didn't show up at all after tabbing back in.
Now the divider position is tracked across every iterated event, before the render filters run, so a receipt on a filtered event still places the divider on the next rendered message. Regression tests cover each filtered anchor type; they fail on dev and pass here.

Fixes #

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

AI disclosure:

  • Partially AI assisted (clarify which code was AI assisted and briefly explain what it does).
  • Fully AI generated (explain what all the generated code does in moderate detail).

@eleboucher
eleboucher requested review from 7w1 and hazre as code owners July 16, 2026 20:46
@7w1
7w1 added this pull request to the merge queue Jul 16, 2026
Merged via the queue into SableClient:dev with commit b05d5f9 Jul 16, 2026
12 checks passed
charm-cloudhub-social Bot pushed a commit to CloudHub-Social/Charm-1.0 that referenced this pull request Jul 17, 2026
> **Preview the next release on [dev.sable.moe](https://dev.sable.moe)**

> [!IMPORTANT]
> Merging this PR will create a new release.

## Security

* This release includes an important security fix. Please update as soon
as possible. Sensitive Matrix account data is not exposed by this issue.
([SableClient#1107](<SableClient#1107>) by @7w1)

## Features

* Add Native OIDC (OAuth 2.0) login so you can sign in to and register
on homeservers that use delegated authentication, such as continuwuity
and Synapse with the Matrix Authentication Service. Sessions stay signed
in through automatic token refresh, and signing out revokes the tokens
on the server.
([SableClient#1071](<SableClient#1071>) by
@eleboucher)
* Show the unread mention count in the page title.
([SableClient#1093](<SableClient#1093>) by
@eleboucher)

### Improve sliding sync.
([SableClient#1069](<SableClient#1069>) by @7w1,
@eleboucher)

- Make sliding sync easier to enable during login or loading and from
settings.
- Move the sliding sync toggle from Experimental to the bottom of
General settings.
- Start faster and restore rooms and spaces sooner.
- Reduce unnecessary background room data.
- Improve room details, memberships, presence, and unread indicators.
- Make startup loading smoother for both sliding and classic sync.
- It's fast now :3

## Fixes

* Use attachment filenames instead of captions when downloading files
and harden unsafe download names.
([SableClient#1086](<SableClient#1086>) by @7w1)
* Allow users to send messages in encrypted rooms when they have
permission to send `m.room.encrypted` events.
([SableClient#1098](<SableClient#1098>) by @7w1)
* Allow users without a locally configured LiveKit focus to join calls
started by others.
([SableClient#1099](<SableClient#1099>) by @7w1)
* Fix the new messages divider not appearing when the read receipt
points at an event hidden from the timeline (reaction, edit, thread
reply). ([SableClient#1101](<SableClient#1101>) by
@eleboucher)
* Fix the new messages divider staying at the room-open position instead
of re-anchoring at the last read when the window loses focus.
([SableClient#1095](<SableClient#1095>) by
@eleboucher)
* Fix redacted messages rendering as "Unsupported message (no body)"
instead of "Message deleted" with sliding sync.
([SableClient#1089](<SableClient#1089>) by
@eleboucher)
* Display redacted state events (membership, room name/topic/avatar,
pins and other state events) as a "deleted" tombstone in the timeline
instead of rendering them with empty/redacted content or hiding them, so
the reply-to of a redaction highlights the redacted event.
([SableClient#1090](<SableClient#1090>) by
@eleboucher)
* Fix joining spaces with sliding sync enabled.
([SableClient#1085](<SableClient#1085>) by
@eleboucher)
* Display the explicit room name for non-direct channels with two
members. ([SableClient#1098](<SableClient#1098>) by
@7w1)
* Fix resetting animal identity
([SableClient#1070](<SableClient#1070>) by @nushea)
* Fix the sliding-sync presence fallback consuming one-time-key updates
and to-device messages without processing them.
([SableClient#1078](<SableClient#1078>) by @7w1)
* Fix clickable handles
([SableClient#1068](<SableClient#1068>) by @nushea)
* Hide the "Register" link on the login page when the homeserver has
registration disabled and offers no SSO to register through, so you are
no longer sent to a dead-end registration page.
([SableClient#1073](<SableClient#1073>) by
@eleboucher)
* Add uploaded Sable CSS theme loading, automatic catalog updates, and a
cleaner theme browser with full CSS viewing.
([SableClient#1087](<SableClient#1087>) by @7w1)
* Show room members in developer tools.
([SableClient#1088](<SableClient#1088>) by @7w1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants