- Guard against double-patching when ChatInputActions and
ChatInputSendButton resolve to the same component
- Always patch both targets but conditionally render avatar
based on position setting, so changes apply without restart
Enforces a minimum update interval of 60 seconds when Libre.fm is the active service, as requested by the Libre.fm team to reduce server load.
- Added LIBREFM_MIN_UPDATE_INTERVAL to Constants.
- Updated PluginManager to enforce the new minimum for Libre.fm.
- Disabled user-configurable update interval in UI when Libre.fm is active.
Closes#4