Skip to content

Bring sliding sync out of experimental - #1069

Merged
7w1 merged 39 commits into
devfrom
sliding-sync-stablization
Jul 17, 2026
Merged

Bring sliding sync out of experimental#1069
7w1 merged 39 commits into
devfrom
sliding-sync-stablization

Conversation

@7w1

@7w1 7w1 commented Jul 12, 2026

Copy link
Copy Markdown
Member

Description

  • Moved sliding sync into a shared "Data Sync" general section with the settings sync
  • Added a sliding sync toggle to the login screen, added a "swap to sliding/classic sync" clickable message to the loading screen.
  • Removed all the instance host options for sliding sync for an instance (afaik, it's usable ootb on Synapse, c10y, and tuwunel, so no reason to force it to be disabled). Sliding sync is still disabled by default, it's just more accessible now and should allow larger accounts to actually log in instead of using work arounds to log in so they can toggle the setting.
  • UI shell is rendered prior to full sdk init, technically means things load ever so slightly faster, but also feels faster since it's less loading screen and more UI shell. Also applies to standard sync.
  • Removed fallback loading screens from config and spec version checkers to prevent brief flickers of their messages and added the background grid to the base index.html to remove the flicker of white prior to any other files loading in.
  • Made the initial config fetch & versions check async, probably only saving a few milliseconds but easy enough. Applies to standard sync as well.
  • Made crypto start up concurrent instead of linear
  • Adjusted the initial sliding sync to be more minimal, aiming for only what's necessary to render a space/room.
  • I think I've fixed all mentioned bugs that are sliding sync specific that I can isolate in Experimental: Sliding Sync Issues #39
  • cached rooms and spaces in sidebar that get updated as syncs complete so the ui is usable prior to syncing all data on refreshes

Fixes #1091

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).

AI did the tests, and also reviewed my code because some of this stuff is confusing. anyway. it works. i think.

@7w1 7w1 mentioned this pull request Jul 16, 2026
2 tasks
@7w1
7w1 marked this pull request as ready for review July 16, 2026 19:33
@7w1
7w1 requested a review from hazre as a code owner July 16, 2026 19:33
7w1 and others added 11 commits July 16, 2026 14:44
### Description

Open db should be closed so they don't leaks

<!-- Please include a summary of the change. Please also include
relevant motivation and context. List any dependencies that are required
for this change. -->

Fixes #

#### Type of change

- [x] 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:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] 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).
<!-- Write any explanation required here, but do not generate the
explanation using AI!! You must prove you understand what the code in
this PR does. -->
doesn't work on c10y :(
@github-actions

Copy link
Copy Markdown
Contributor

Deploying with  Cloudflare Workers  Cloudflare Workers

Status Preview URL Commit Alias Updated (UTC)
✅ Deployment successful! https://pr-1069-sable.raspy-dream-bb1d.workers.dev c2dd174 pr-1069 Fri, 17 Jul 2026 02:37:50 GMT

@7w1
7w1 merged commit 30204f5 into dev Jul 17, 2026
12 of 16 checks passed
@7w1
7w1 deleted the sliding-sync-stablization branch July 17, 2026 03:29
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.

my offline status keeps reseting to online after a bit

2 participants