✨ New
- Plugins can annotate messages and read attachments: plugins can show their own text under a message (
zam.messages.annotate/refresh, for example a transcript under a voice message), read a message's decrypted attachment withzam.matrix.getMedia, and see the message'smsgtypein a message action'swhenandonSelect.
🐛 Fixed
- Discord Rich Presence reaches Discord (desktop): an app's activity is now passed on to the real Discord only after Discord has answered the handshake, so it no longer gets dropped. Apps that connect over WebSocket, such as browser-based ones, are passed on too.
- App names in activity cards (desktop): apps that don't name their activity show the name registered with Discord again, instead of "Discord app", and a lookup that failed is retried.
- Restart Discord keeps its tray icon (Windows): Discord's tray icon no longer goes missing after the restart; Zam clears the stale icon the old Discord leaves behind before it reopens it.
- Notification ping no longer ducks other apps (Windows): the ping plays on its own audio context and closes it afterwards, so it no longer leaves an audio stream open that dipped the volume of other apps, such as a video, after a ping.
Full Changelog: v1.54.1...v1.54.2