* Added: Setting to control the priority of third-party emote providers. This lets you, as an example, prioritize emotes from 7TV over BetterTTV. Note that these priorities are still secondary to emote source priorities (personal emotes > channel emotes > global emotes). (Closes#1587)
* Added: Setting to replace the native player 'Clip' button with a custom button that better fits the style of the other buttons. (Closes#1580)
* Fixed: Highlighting messages from users with open viewer cards not working correctly with alternating background colors enabled. (Closes#1581)
* Fixed: Various directory features not working correctly. (Closes#1588)
* Fixed: Emotes unlocked with channel points appearing on FFZ emote cards with the source 'CHANNEL_POINTS'.
* Fixed: The Experiments UI failing to load correctly if an experiment has no name.
* Experiments: Preparing for a new PubSub experiment.
* API Added: `emotes.setProvider(provider: string, data: {name: string, icon: string, description: string})` for registering an emote provider. This is used by the new setting to let users customize emote provider priorities.
* API Added: All modules now have a `addon_manifest` property which will contain the add-on's manifest if the module belongs to an add-on.
* Added: Setting to hide the border around streams in the directory that have guest stars.
* Fixed: Issue with chat alternating backgrounds not appearing correctly after a Twitch update. Some settings may still not be working (notably: separators)
* Fixed: Issue where FFZ could be injected into a page twice, breaking basically everything.
* Experiments: Disable the EMQX experiment. It's not working out.
* Fixed: Bug in the sidebar processing code that may log errors when combined with other add-ons.
* API Changed: Improve messaging for manifest v3 extension mode.
* Added: Setting to use native styling for subscription notices in chat. (Closes#1551)
* Added: Setting to hide the stories UI in the side navigation. (Closes#1531)
* Added: Setting to hide specific users from the directory and sidebar.
* Changed: Hide the top navigation's search field when using minimal navigation for a cleaner look. (Closes#1556)
* Changed: More internal changes for the support to Manifest v3.
* Fixed: Uploading logs from the FFZ Control Center not working.
* API Changed: Removed support for `no_sanitize` from `setChildren`. I don't think anything was currently using this, but going forward it is unsupported. We want to avoid using `innerHTML` as much as possible to simplify the approval process.
* Added: When searching in the FFZ Control Center, you can now use the tag `@modified` to filter by settings that have been changed in the current profile.
* Added: Add-ons now have Changelog buttons that navigate to a changelog showing only entries for that add-on.
* Changed: The Changelog pages now has nicer formatting for each commit, including add-on icons and clickable links to add-on sub-pages when viewing the Add-on Changelog.
* API Added: To prevent FrankerFaceZ from loading into a page, include `disable_frankerfacez` in the URL query parameters.
* Experiment Changed: Fix incorrect roll-out percentage for API-Based Link Lookups. This should be fully enabled.
* Experiment Changed: Lower the percentage of users in the MQTT-Based PubSub experiment.
* Added: Setting for customizing how tab-completion matches emote names.
* Added: Clips pages now have support for opening emote cards when clicking an emote in the chat replay.
* Fixed: Issue where chat was not rendering as intended on clips pages.
* Fixed: Issue where the FFZ Control Center link was not added to clips pages.
* Fixed: The chat actions module being instantiated in memory twice.
* Fixed: Blank badges appearing in chat, most notably in historic messages, when a chat message has invalid badge data associated with it.
* Fixed: Use a mutation observer for detecting the drops Claim button, rather than a simple timeout, for better consistency.
* Fixed: Issue when using the webpack public path variable that may lead to URL generation with extra `/` characters, breaking some behavior in Firefox when packaged as a local extension.
* API Added: Support for displaying an emote's original name, if an emote has been given a collection-specific name, using an `original_name` field.
* Fixed: The `/ffz reload` command is now `/ffz:reload` to remove an undesirable behavior with Twitch's completion handling when backspacing.
* Fixed: Spaces being included in links when they shouldn't be.
* Fixed: Previews of emotes in chat when typing their names directly.
* Changed: Initial work on tracking the audio/video de-sync when using audio APIs for the compressor. This appears as a value in the stream latency metadata tool-tip, but currently drifts whenever the player is paused.
* Changed: Initial work on allowing the extension to be loaded from a bundled extension.
* API Changed: The load tracker now returns a list of reported loading keys when firing events.