* feat(iRememberYou): show server and DM group ID next to name in menu
* feat(iRememberYou): add tt to authors list
* fix(iRememberYou): only render server ID on guilds (oops: thought DM collections had valid group IDs)
Fixes:
- Webpack Patcher: incorrect patch error handling could lead to some functional patches not being applied
- CommandsAPI: subcommands were impossible to unregister
- useAwaiter: on error, the value was set to null even if a fallbackValue was specified, violating the type contract
- Patcher: build check boolean logic was grouped incorrectly due to missing parantheses
- CustomCommands: commands weren't unregistered on stop, leading to error when enabling, disabling & re-renabling the plugin
- Notification Log: delete was by timestamp instead of ID and non-atomic
- FixSpotifyEmbeds: settings listener was registered inside browser-window-created event handler, leading to duplicate listeners
- CustomRPC: changing activity type or timestamp didn't update the RPC
- CopyStickerLinks: message patch had non-sense code, just removed it
- XSOverlay: UDP socket wasn't closed on stop
- VoiceMessages: Web recorder never closed the mic media stream, which continues showing the OS mic indicator
- PictureInPicture: Video clone wasn't properly cleaned up, which leaked memory
- Themes (Extension version): theme object urls were never cleaned up, which leaked memory on theme change
- Themes (Extension version): Upload Theme button hitbox was only the text, not the whole button. Also added Drag & Drop from file manager support
- Dearrow: toggling for one embed flipped the global dearrow by default setting
- Extension Installer: the zip extract function was vulnerable to path traversal, although we only ever used this for React DevTools obtained via https so it has low impact
- FileWatchers: ensure always properly cleaned up
- components/Link: mutated props which is a very bad practice
All fixes are human written, only the audit was done by Claude Fable (thanks for ur tokens, Zere).
* feat(RichPresence): Add Navidrome RPC integration
* fix: Update Star123451 ID
* Implement Subsonic GetNowPlaying for album art
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix(Navidrome): address PR review comments, remove Uguu.se plugin violation
* fix(Navidrome) Fix clearing activities, add standard music RPC default config
* fix(Navidrome) Patched Credential Leak in cover art fallback code, fix non-selectable settings entries
* fix(Navidrome) fix settings cache bug, implement typescript hygiene suggestion, and make fetching album art a toggle, added note that grabbing album art exposes server URL and Navidrome username to Discord.
* fix(Navidrome): Changed cachedSettingsJSON to only affect Navidrome-specific settings, updated polling interval slider to take affect during runtime, not just start up
* feat(RichPresence): overhaul Navidrome RPC with formatting system and activity types, add fast.fm album art fetching, update settings to instantly update
* fix(RichPresence) Fix last.fm cache leak, add privacy disclosure for last.fm album fetch method, remove dead settings
* fix(RichPresence): remove unused import and fix default activity type inconsistency
* fix(RichPresence): add parseUrl valdiation to serverUrl/publicUrl, fix SwitchSetting regression, strip auth param from getCoverArt, added abort signal to prevent accidental presence revival when disabled, remove "as const" rule violation for settings.use()
* fix(RichPresense): Fix forceUpdate orphan timer leaks, correct MD5 behavior for passwords using accented characters
* fix(RichPresence): remove MD5 auth for simpler hex auth, include optional space to provide a last.fm API key, implement lodash.debounce in place of setTimeout, fixed navidrome intersepting settings from other RPC included in the plugin
* fix(RichPresence): fix hex auth code to support special characters
* fix(RichPresence): fix lastFmCache invalidation code
* fix(RichPresence): remove unused lodash import from SettingsPanel.tsx
* chore(richPresence): remove violating comments in navidrome.ts
* chore(richPresence): update navidrome.ts
* fix(richPresence): change settings to use settings.plain, fix flicker found when changing non-related plugin settings, correct || vs ?? rule violations, fetch large and small image concurrently to speed up presence update
* feat(richPresence): add status display type option for navidrome rich presence
* fix(richPresence): add lastMinutesAgo cache to detect if the same song is on repeat in order to reset song progress bar
* fix(richPresence): Fix to only show music of the username given in navidrome settings
* fix(richPresence): remove stale onServiceChange import
* fix(richPresence): fix stale activity cache when same track is replayed
* fix(richPresence): omit end property when no media duration is known
* chore(richPresence): add instance-based album art fetching disclaimer for local instances
* chore(richPresence): centralize get_activity() and forceUpdate() JSON.stringify usage
* fix(richPresence): removed unused settings migration in migrartion.ts, remove empty lines in SettingsPanel, revert syncServices to use settings.store, remove local ip instances support
* fix(richPresence): revert to md5 implementation in utils.ts for secure auth, fix album fetching from navidrome instances
* chore(richPrecence): switch to ts-md5 source for a robust MD5 implementation
* richPresence(fix): simplify public instance checking
* boom
* richPresence(fix): fix md5 implementation and revert back to getCoverArt for navidrome instance album art fetching
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: thororen1234 <78185467+thororen1234@users.noreply.github.com>
* feat(plugin): ExtraConnectionLinks
* feat(EquicordHelper): add being able to open links to more connections
* Remove unused connectionLinks from EquicordHelper
Removed unused connectionLinks array and its related logic.
* Remove ConnectionLink interface from utils.tsx
Removed the ConnectionLink interface and its documentation.
---------
Co-authored-by: thororen <78185467+thororen1234@users.noreply.github.com>
* CommandPalette: Rewrite with modular API and Raycast-style UI
Replace the monolithic palette with a command/page registry, capture-phase keyboard routing, fuzzy search with pins and aliases, form pages including Send DM with markdown preview, and a top-anchored shell layout.
* CommandPalette: Fix stylelint errors in palette CSS
Reorder selectors for no-descending-specificity, replace deprecated word-break, and use overflow shorthand on picker list.
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>