✨ Features
- Timeline MVVM 2 - RoomTimelineViewModel (#34683). Contributed by @langleyd.
- Promote Custom Themes labs feature to devtools (#34703). Contributed by @Half-Shot.
- Update bundled URL preview implementation to reflect MSC updates (#34764). Contributed by @Half-Shot.
- Render knock membership events in notifications (#34268). Contributed by @ara4n.
- Room list: add room selection on section creation/edition (#34387). Contributed by @florianduros.
- Room list: add settings to consider activity as unread (#34748). Contributed by @florianduros.
- Reworked composer URL previews (#34279). Contributed by @Siriusmart.
- Add new module API to allow setting User Verification CAs (#34620). Contributed by @richvdh.
- Tooltip and cursor enhancements for the left panel separator (#34643). Contributed by @MidhunSureshR.
- Allow settings status directly from menu (#34707). Contributed by @dbkr.
- Wire up recent emoji to user status emoji picker (#34710). Contributed by @dbkr.
🐛 Bug Fixes
- Render textual events as plain text in chat exports (#34496). Contributed by @hayaksi1.
- Fix user levels being edited when going into room setting role tab (#34783). Contributed by @florianduros.
- RoomList: wire up "Show People" Space settings Space (#34768). Contributed by @florianduros.
- Don't let a failed screen-share source query hang the picker, and consume the display-media callback once (#34002). Contributed by @hayaksi1.
- Always show the current room, even when the Unread filter is active (#34228). Contributed by @andybalaam.
- Show the same unreads on Home as the spaces show (#34664). Contributed by @hayaksi1.
- Stop notification states emitting an update when nothing has changed (#34680). Contributed by @hayaksi1.
- Always pad the minutes of a duration if the hours place is occupied (#34734). Contributed by @robintown.
- Show the promotion warning when your own power level comes from the room default (#34658). Contributed by @hayaksi1.
- Ensure "Manage account" button in user menu opens a new tab (#34552). Contributed by @Half-Shot.
- Re-evaluate the unread state of a room when one of its events is decrypted (#34515). Contributed by @hayaksi1.
- Let the next and previous room shortcuts work before a room is opened (#34506). Contributed by @hayaksi1.
- Strip a UTF-8 byte order mark before parsing JSON files on desktop (#34504). Contributed by @hayaksi1.
- Only offer permission levels the user can actually set (#34500). Contributed by @hayaksi1.
- Show the unsent symbol on the All rooms badge (#34498). Contributed by @hayaksi1.
- Use correct emoji font on the custom status emoji button (#34708). Contributed by @dbkr.
- Stop messages flickering through the file panel as they are sent (#34608). Contributed by @hayaksi1.
- Fix illegible text on hovered Spotlight results in high-contrast theme (#34465). Contributed by @PrinceXDev.
- Format relative timestamps using the locale's own date order (#34484). Contributed by @hayaksi1.
- Stop showing an unread count on a room you have left (#34595). Contributed by @hayaksi1.
- Avoid destroying a still-valid session when the OS keychain is temporarily unreadable (#33986). Contributed by @hayaksi1.
- Restore the read marker fade by using a valid CSS easing function (#34485). Contributed by @hayaksi1.
- Stop one finished sound from cutting off another (#34576). Contributed by @hayaksi1.
- Add Sentry frame rewriting for Element Desktop integration (#34667). Contributed by @PrinceXDev.
- Replace the selected text when inserting a new line in the composer (#34509). Contributed by @hayaksi1.
- Open the quick settings theme menu upwards so every theme is reachable (#34501). Contributed by @hayaksi1.
- Keep the original URL when deserialising markdown links (#34488). Contributed by @hayaksi1.
- Stop reporting a search you cancelled yourself as a failure (#34594). Contributed by @hayaksi1.
- Respect retry_after_ms and stop retrying rate limited invites forever (#34480). Contributed by @hayaksi1.