From f8ab188515cc4b276243a4645d8e4a766f6da7cb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Jul 2026 21:24:35 +0000 Subject: [PATCH] chore: prepare release 1.21.0 --- .changeset/add-msc4466-profile-propagation.md | 5 --- .changeset/add-offline-account-actions.md | 5 --- .changeset/android-media-upload.md | 5 --- .../cache-sliding-sync-room-metadata.md | 5 --- .changeset/desktop-shortcuts.md | 5 --- .changeset/desktop-window-chrome.md | 5 --- .changeset/fix-android-media-loading-stall.md | 5 --- .changeset/fix-autocomplete-focus-mobile.md | 5 --- .../fix-bridged-avatars-sliding-sync.md | 5 --- .changeset/fix-double-leave.md | 5 --- .changeset/fix-mobile-edit-keyboard.md | 5 --- .../fix-overlapping-panels-mobile-swipe.md | 5 --- .../fix-sliding-sync-member-profiles.md | 5 --- .changeset/fix-sliding-sync-subspaces.md | 5 --- .changeset/fix-space-icons-sliding-sync.md | 5 --- .changeset/fix-sticker-packs-sliding-sync.md | 5 --- .changeset/fix-tauri-sso-device-removal.md | 5 --- .changeset/fix-timeline-auto-follow.md | 5 --- .../fix-typing-indicator-scroll-snap.md | 5 --- .changeset/fix-various-visual-fixes.md | 5 --- ...apping_bookmarks_and_bold_text_shortcut.md | 5 --- .../hide-desktop-settings-tauri-mobile.md | 5 --- .changeset/mobile-native-ux.md | 5 --- .changeset/perf-cold-start-bundle.md | 5 --- .changeset/polish-account-settings-mobile.md | 5 --- .changeset/tauri.md | 5 --- CHANGELOG.md | 34 +++++++++++++++++++ package.json | 4 +-- src-tauri/tauri.conf.json | 18 +++++++--- 29 files changed, 49 insertions(+), 137 deletions(-) delete mode 100644 .changeset/add-msc4466-profile-propagation.md delete mode 100644 .changeset/add-offline-account-actions.md delete mode 100644 .changeset/android-media-upload.md delete mode 100644 .changeset/cache-sliding-sync-room-metadata.md delete mode 100644 .changeset/desktop-shortcuts.md delete mode 100644 .changeset/desktop-window-chrome.md delete mode 100644 .changeset/fix-android-media-loading-stall.md delete mode 100644 .changeset/fix-autocomplete-focus-mobile.md delete mode 100644 .changeset/fix-bridged-avatars-sliding-sync.md delete mode 100644 .changeset/fix-double-leave.md delete mode 100644 .changeset/fix-mobile-edit-keyboard.md delete mode 100644 .changeset/fix-overlapping-panels-mobile-swipe.md delete mode 100644 .changeset/fix-sliding-sync-member-profiles.md delete mode 100644 .changeset/fix-sliding-sync-subspaces.md delete mode 100644 .changeset/fix-space-icons-sliding-sync.md delete mode 100644 .changeset/fix-sticker-packs-sliding-sync.md delete mode 100644 .changeset/fix-tauri-sso-device-removal.md delete mode 100644 .changeset/fix-timeline-auto-follow.md delete mode 100644 .changeset/fix-typing-indicator-scroll-snap.md delete mode 100644 .changeset/fix-various-visual-fixes.md delete mode 100644 .changeset/fix_overlapping_bookmarks_and_bold_text_shortcut.md delete mode 100644 .changeset/hide-desktop-settings-tauri-mobile.md delete mode 100644 .changeset/mobile-native-ux.md delete mode 100644 .changeset/perf-cold-start-bundle.md delete mode 100644 .changeset/polish-account-settings-mobile.md delete mode 100644 .changeset/tauri.md diff --git a/.changeset/add-msc4466-profile-propagation.md b/.changeset/add-msc4466-profile-propagation.md deleted file mode 100644 index 6cc996b55f..0000000000 --- a/.changeset/add-msc4466-profile-propagation.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: minor ---- - -Add MSC4466 profile change propagation controls for homeservers that advertise support. diff --git a/.changeset/add-offline-account-actions.md b/.changeset/add-offline-account-actions.md deleted file mode 100644 index 81891c6c69..0000000000 --- a/.changeset/add-offline-account-actions.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Add account switching and logout actions to the homeserver offline screen. diff --git a/.changeset/android-media-upload.md b/.changeset/android-media-upload.md deleted file mode 100644 index 69a316d2b4..0000000000 --- a/.changeset/android-media-upload.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -stream android media uploads to fix OOM and show progress and diverse input improvement. also purge orphaned upload temp files on startup. diff --git a/.changeset/cache-sliding-sync-room-metadata.md b/.changeset/cache-sliding-sync-room-metadata.md deleted file mode 100644 index 2f29d79fb5..0000000000 --- a/.changeset/cache-sliding-sync-room-metadata.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Cache room banners, abbreviations, power-level labels, and widgets for faster sliding sync warm starts. diff --git a/.changeset/desktop-shortcuts.md b/.changeset/desktop-shortcuts.md deleted file mode 100644 index 2c1dfa4025..0000000000 --- a/.changeset/desktop-shortcuts.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: minor ---- - -Desktop: add keyboard accelerators for settings, close and quit (macOS via the native menu, Windows/Linux via Ctrl shortcuts) and a global show/hide-window hotkey. diff --git a/.changeset/desktop-window-chrome.md b/.changeset/desktop-window-chrome.md deleted file mode 100644 index 78017e0c8c..0000000000 --- a/.changeset/desktop-window-chrome.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: minor ---- - -Desktop: unify the macOS titlebar (native traffic lights float over the content), add a custom titlebar with window controls on Linux, surface sync/connection status as a pill in the custom titlebar, and suppress the webview's default context menu everywhere except editable fields. diff --git a/.changeset/fix-android-media-loading-stall.md b/.changeset/fix-android-media-loading-stall.md deleted file mode 100644 index ad5614ca36..0000000000 --- a/.changeset/fix-android-media-loading-stall.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fix media loading stalling on Android after browsing through message history. diff --git a/.changeset/fix-autocomplete-focus-mobile.md b/.changeset/fix-autocomplete-focus-mobile.md deleted file mode 100644 index 26d0b26ac3..0000000000 --- a/.changeset/fix-autocomplete-focus-mobile.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Keep the message composer focused when tapping an autocomplete suggestion on mobile, so selecting an emoji, mention, or command no longer unfocuses the input. diff --git a/.changeset/fix-bridged-avatars-sliding-sync.md b/.changeset/fix-bridged-avatars-sliding-sync.md deleted file mode 100644 index 29137df5c3..0000000000 --- a/.changeset/fix-bridged-avatars-sliding-sync.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fix missing profile pictures for bridged users in the timeline when using sliding sync. diff --git a/.changeset/fix-double-leave.md b/.changeset/fix-double-leave.md deleted file mode 100644 index 1e7f535d42..0000000000 --- a/.changeset/fix-double-leave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fixed leaving a room not reflecting immediately in the UI. diff --git a/.changeset/fix-mobile-edit-keyboard.md b/.changeset/fix-mobile-edit-keyboard.md deleted file mode 100644 index 54e6d20f6f..0000000000 --- a/.changeset/fix-mobile-edit-keyboard.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fix editing messages on mobile where tapping the edit field flickered the keyboard shut. diff --git a/.changeset/fix-overlapping-panels-mobile-swipe.md b/.changeset/fix-overlapping-panels-mobile-swipe.md deleted file mode 100644 index 2c2ad21691..0000000000 --- a/.changeset/fix-overlapping-panels-mobile-swipe.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Smoother mobile navigation and faster room opening. diff --git a/.changeset/fix-sliding-sync-member-profiles.md b/.changeset/fix-sliding-sync-member-profiles.md deleted file mode 100644 index ff8c00a00d..0000000000 --- a/.changeset/fix-sliding-sync-member-profiles.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fix display names for read receipts, event relations, and state events when using sliding sync with the member drawer closed. diff --git a/.changeset/fix-sliding-sync-subspaces.md b/.changeset/fix-sliding-sync-subspaces.md deleted file mode 100644 index 5dcb5d2a08..0000000000 --- a/.changeset/fix-sliding-sync-subspaces.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fix a regression making subspaces with emote packs being listed as separate spaces on sliding-sync. diff --git a/.changeset/fix-space-icons-sliding-sync.md b/.changeset/fix-space-icons-sliding-sync.md deleted file mode 100644 index 1a10dfca81..0000000000 --- a/.changeset/fix-space-icons-sliding-sync.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fix space icons staying blank on first open with sliding sync until the sidebar was remounted. diff --git a/.changeset/fix-sticker-packs-sliding-sync.md b/.changeset/fix-sticker-packs-sliding-sync.md deleted file mode 100644 index b2394926bc..0000000000 --- a/.changeset/fix-sticker-packs-sliding-sync.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fix sticker and emote packs hosted on space rooms not loading with sliding sync, and load pack rooms before the emoji board is first opened. diff --git a/.changeset/fix-tauri-sso-device-removal.md b/.changeset/fix-tauri-sso-device-removal.md deleted file mode 100644 index 0d3b7e96af..0000000000 --- a/.changeset/fix-tauri-sso-device-removal.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fix OIDC device removal, sessions dashboard, and cross-signing reset not opening a browser on Tauri mobile. diff --git a/.changeset/fix-timeline-auto-follow.md b/.changeset/fix-timeline-auto-follow.md deleted file mode 100644 index 893328474b..0000000000 --- a/.changeset/fix-timeline-auto-follow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Fix the timeline not reliably following new messages when pinned to the bottom, and stop the browser's scroll anchoring from fighting the virtualized message list. diff --git a/.changeset/fix-typing-indicator-scroll-snap.md b/.changeset/fix-typing-indicator-scroll-snap.md deleted file mode 100644 index 4150ebc62e..0000000000 --- a/.changeset/fix-typing-indicator-scroll-snap.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Show the typing indicator as its own row instead of an overlay so it no longer hides the last message, and stop the timeline from snapping to the bottom when you scroll back down after messages arrived off-screen. diff --git a/.changeset/fix-various-visual-fixes.md b/.changeset/fix-various-visual-fixes.md deleted file mode 100644 index 88a49fd85d..0000000000 --- a/.changeset/fix-various-visual-fixes.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Various visual tweaks diff --git a/.changeset/fix_overlapping_bookmarks_and_bold_text_shortcut.md b/.changeset/fix_overlapping_bookmarks_and_bold_text_shortcut.md deleted file mode 100644 index dbb16e16c4..0000000000 --- a/.changeset/fix_overlapping_bookmarks_and_bold_text_shortcut.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -# Fix overlapping Bookmarks and Bold Text shortcut diff --git a/.changeset/hide-desktop-settings-tauri-mobile.md b/.changeset/hide-desktop-settings-tauri-mobile.md deleted file mode 100644 index 4c95d16ef9..0000000000 --- a/.changeset/hide-desktop-settings-tauri-mobile.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Hide the desktop settings section on Tauri mobile and web. diff --git a/.changeset/mobile-native-ux.md b/.changeset/mobile-native-ux.md deleted file mode 100644 index 5b536e9dee..0000000000 --- a/.changeset/mobile-native-ux.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: minor ---- - -Mobile: bridge the Android hardware back button to the app (closes overlays and pops routes, backgrounds instead of exiting), add haptic feedback on swipe-to-reply, chat swipe and drawer commits, set the iOS keyboard inset so the composer stays above the keyboard, and scroll the composer into view on focus. diff --git a/.changeset/perf-cold-start-bundle.md b/.changeset/perf-cold-start-bundle.md deleted file mode 100644 index 7b6bcaa3e4..0000000000 --- a/.changeset/perf-cold-start-bundle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Speed up cold start by keeping the PDF viewer out of the initial bundle (it now loads on demand), cutting the amount of JavaScript fetched and parsed on launch. The desktop and mobile windows also paint the app's background color immediately, so startup no longer flashes a blank black screen before the first frame. diff --git a/.changeset/polish-account-settings-mobile.md b/.changeset/polish-account-settings-mobile.md deleted file mode 100644 index ea729ff920..0000000000 --- a/.changeset/polish-account-settings-mobile.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: patch ---- - -Polish the account panel and settings layout on mobile. diff --git a/.changeset/tauri.md b/.changeset/tauri.md deleted file mode 100644 index 45ccde0da2..0000000000 --- a/.changeset/tauri.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -default: minor ---- - -Add beta builds for desktop and mobile. diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f07503ace..bcb3ad57e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,39 @@ # Sable Client Changelog +## 1.21.0 (2026-07-20) + +### Features + +* Add MSC4466 profile change propagation controls for homeservers that advertise support. ([#1117]() by @7w1) +* Desktop: add keyboard accelerators for settings, close and quit (macOS via the native menu, Windows/Linux via Ctrl shortcuts) and a global show/hide-window hotkey. ([#1153]() by @7w1, @eleboucher) +* Desktop: unify the macOS titlebar (native traffic lights float over the content), add a custom titlebar with window controls on Linux, surface sync/connection status as a pill in the custom titlebar, and suppress the webview's default context menu everywhere except editable fields. ([#1153]() by @7w1, @eleboucher) +* Mobile: bridge the Android hardware back button to the app (closes overlays and pops routes, backgrounds instead of exiting), add haptic feedback on swipe-to-reply, chat swipe and drawer commits, set the iOS keyboard inset so the composer stays above the keyboard, and scroll the composer into view on focus. ([#1153]() by @7w1, @eleboucher) +* Add beta builds for desktop and mobile. ([#1103]() by @7w1, @eleboucher, @hazre, @mortebrume, @nikiwastaken, @TastelessVoid) + +### Fixes + +* Add account switching and logout actions to the homeserver offline screen. ([#1115]() by @7w1) +* stream android media uploads to fix OOM and show progress and diverse input improvement. also purge orphaned upload temp files on startup. ([#1154]() by @eleboucher) +* Cache room banners, abbreviations, power-level labels, and widgets for faster sliding sync warm starts. ([#1118]() by @7w1) +* Fix media loading stalling on Android after browsing through message history. ([#1129]() by @eleboucher) +* Keep the message composer focused when tapping an autocomplete suggestion on mobile, so selecting an emoji, mention, or command no longer unfocuses the input. ([#1103]() by @7w1, @eleboucher, @hazre, @mortebrume, @nikiwastaken, @TastelessVoid) +* Fix missing profile pictures for bridged users in the timeline when using sliding sync. ([#1112]() by @7w1, @eleboucher) +* Fixed leaving a room not reflecting immediately in the UI. ([#1146]() by @7w1) +* Fix editing messages on mobile where tapping the edit field flickered the keyboard shut. ([#1130]() by @eleboucher) +* Smoother mobile navigation and faster room opening. ([#1144]() by @eleboucher) +* Fix display names for read receipts, event relations, and state events when using sliding sync with the member drawer closed. ([#1111]() by @7w1) +* Fix a regression making subspaces with emote packs being listed as separate spaces on sliding-sync. ([#1119]() by @mortebrume) +* Fix space icons staying blank on first open with sliding sync until the sidebar was remounted. ([#1112]() by @7w1, @eleboucher) +* Fix sticker and emote packs hosted on space rooms not loading with sliding sync, and load pack rooms before the emoji board is first opened. ([#1112]() by @7w1, @eleboucher) +* Fix OIDC device removal, sessions dashboard, and cross-signing reset not opening a browser on Tauri mobile. ([#1136]() by @eleboucher) +* Fix the timeline not reliably following new messages when pinned to the bottom, and stop the browser's scroll anchoring from fighting the virtualized message list. ([#1105]() by @eleboucher) +* Show the typing indicator as its own row instead of an overlay so it no longer hides the last message, and stop the timeline from snapping to the bottom when you scroll back down after messages arrived off-screen. ([#1113]() by @eleboucher) +* Various visual tweaks ([#1114]() by @nushea) +* Fix overlapping Bookmarks and Bold Text shortcut ([#1120]() by @cyrneko) +* Hide the desktop settings section on Tauri mobile and web. ([#1155]() by @eleboucher) +* Speed up cold start by keeping the PDF viewer out of the initial bundle (it now loads on demand), cutting the amount of JavaScript fetched and parsed on launch. The desktop and mobile windows also paint the app's background color immediately, so startup no longer flashes a blank black screen before the first frame. ([#1127]() by @7w1, @eleboucher) +* Polish the account panel and settings layout on mobile. ([#1131]() by @eleboucher) + ## 1.20.0 (2026-07-17) ### Security diff --git a/package.json b/package.json index deaa0cc1d6..f0d55bb018 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sable", - "version": "1.20.0", + "version": "1.21.0", "description": "An almost stable Matrix client", "keywords": [], "license": "AGPL-3.0-only", @@ -160,4 +160,4 @@ "jsdom>undici": "^7.28.0" } } -} +} \ No newline at end of file diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 1683889815..9f4ee95ecc 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "../node_modules/@tauri-apps/cli/config.schema.json", "productName": "sable", - "version": "1.20.0", + "version": "1.21.0", "identifier": "moe.sable.client", "build": { "frontendDist": "../dist", @@ -57,7 +57,9 @@ }, "plugins": { "updater": { - "endpoints": ["https://github.com/SableClient/Sable/releases/latest/download/latest.json"], + "endpoints": [ + "https://github.com/SableClient/Sable/releases/latest/download/latest.json" + ], "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEM0NDc2QkI0NjdCODlEQUUKUldTdW5iaG50R3RIeFBQeGFwcDZNcGhCQ2Y4UFgzVnptRmNRZjRoVDl0MkdOZmREdC9pTUZrZnAK" }, "typegen": { @@ -68,14 +70,20 @@ }, "deep-link": { "desktop": { - "schemes": ["sable", "moe.sable.app"] + "schemes": [ + "sable", + "moe.sable.app" + ] }, "mobile": [ { - "scheme": ["sable", "moe.sable.app"], + "scheme": [ + "sable", + "moe.sable.app" + ], "appLink": false } ] } } -} +} \ No newline at end of file