* Changed: Implemented FFZ rendering of Channel Points redemption notices with no associated messages. (Experiment, 50% roll-out)
* Fixed: Channel not properly detecting the current channel's branding color.
* Fixed: Unable to delete the profile 0 (Default Profile)
* Fixed: Twitch prevented viewer cards from appearing when moved out of the chat area.
* Fixed: `addons` should not block loading while its data loads.
* Fixed: Issue accessing `i18n` before `settings` has fully loaded.
* Fixed: `main_menu` tries to use `i18n` before `i18n` is ready.
* Fixed: Main menu throws error if profiles are changed while main menu is open.
* Fixed: `site` should not block loading waiting for `settings`
* Maintenance: Updated dependencies.
* API Added: Initial support for using IndexedDB to store settings rather than localStorage
* API Added: Messages now have a `highlights` object if they've matched filters, describing which filters they matched.
* Fixed: Disabling auto-play of channels on the front page not working. (Closes#848)
* Fixed: Automatic theater mode not working correctly when navigating between pages on Twitch. (Closes#846)
* Fixed: The Channel Title settings profile not working.
* Fixed: Remove an unnecessary import that VS Code *helpfully* forced into the channel module last commit.
* Changed: Only load the `safe-regex` module on demand, it's kind of hefty.
* Added: Setting to disable Channel Hosting.
* Added: Setting to hide streams tagged as Promoted from the directory.
* Fixed: Tool-tips not appearing when an element is open in fullscreen.
* Fixed: Bug when destroying a tool-tip instance.
* Fixed: Directory cards not updating with FFZ features on the front page.
* API Added: `Subpump` module for manipulating Twitch PubSub events.
* API Changed: Add-Ons can now define custom settings profile filters.
* Fixed: Not automatically selecting Norwegian when Twitch's native language is set to Norwegian.
* Fixed: Not supporting the channels in your language sections of the directory.
* Added: Option to only hide side navigation when the page is in portrait mode.
* Added: Option to reveal hidden thumbnails after a short delay.
* Changed: Hidden thumbnails are now blurred by default, rather than replaced with a generic live thumbnail.
* Fixed: Directory features.
* Fixed: Position of theater metadata when in portrait mode.
* Changed: Start fetching FFZ badges based on user ID rather than user login, for both data savings and resilience against name changes.
* Changed: Implement a hot path for the Supporter badge (which is now applied to over 20,000 users) to reduce resource usage, notably RAM.
* API Changed: Update to a newer method of getting an APIv2 authentication token that doesn't require a socket server connection.
* Added: Settings for replacing the native Twitch viewer count with a custom display that doesn't animate when changing. (Closes#841)
* Fixed: Replace rendering for the Chat Paused footer so that we can render the correct text and disable mouse interaction when appropriate.
* Fixed: Hiding Recommended Channels causing the Online Friends section of the side navigation bar to disappear. (Closes#482)
* Added: Chat Action for editing a user's displayed name and color. Only applies to chat.
* Changed: Re-enable the setting for hiding offline channels from the side-bar.
* Changed: Updated dependencies.
* Fixed: Issue with multiple copies of FFZ emotes appearing in tab-completion.
* Fixed: Issue with tab-completion crashing sometimes in mod view. (Closes#839)
* Fixed: Support for swapping sidebars with the latest Twitch changes.
* Fixed: Hiding Recommended Channels from the sidebar. (Closes#840)
* Removed: Setting for hiding Recommended Friends from the sidebar, since that section no longer exists.
* Added: Setting to hide the 'Open Mod View' button from chat.
* Fixed: Theater metadata appearing off-screen when navigating from a channel's landing page.
* Fixed: Whispers not appearing at all when the option to not display whispers in theater mode is enabled.
* Fixed: Reset Player causing the playback position of non-live content to reset to zero.
* Added: Setting to automatically open chat when navigating to an offline channel.
* Added: Support for multi-month gift sub messages.
* Fixed: The FFZ Control Center, when maximized, disappearing beneath chat on channel pages. (Closes#833)
* Fixed: Metadata appearing in theater mode when hovering over the player.
* Fixed: Automatic theater mode enabling theater mode when navigating back to a channel's landing page.
* Added: Option to open the emote menu with Ctrl+E, similar to how Discord's works.
* Added: Warning to the Debugging > Experiments list that they are not intended for end-users.
* Changed: Rewrote tab-completion of emotes to fully respect hidden emotes from the emote menu and to cache more useful data.
* Changed: The Experiments list now hides inactive experiments by default.
* Fixed: Updated the Host button's menu to restore functionality after Twitch removed the old API.
* Fixed: Some avatar images remaining rounded despite the square avatars setting.
* Added: Option to hide Twitch's native stream uptime. Enabled by default when using FFZ's own stream uptime.
* Fixed: Implement stream metadata for the new Twitch layout.
* Fixed: Display the subscription tier in badge tool-tips for Tier 2 and Tier 3 subscriber badges.
This release involves significant changes under the hood. Due to Twitch's heavy use of functional React components and effects in recent updates to their site, we need to start listening for DOM nodes rather than components in many cases. To that end, I've implemented the Elemental module to grab elements using MutationObservers. I didn't want to, but this is where we're at. In a future release I'll be using Elemental to add support back to the directory for certain features.
* Added: Emote Visibility Control for Emote Menu. You can now hide emotes you don't want from your emote menu. You still have them, and they'll still appear in chat if someone else uses them, but it helps keep the clutter down in your menu. (Closes#811)
* Added: Setting to toggle mute for the player when middle-clicking it. (Closes#812)
* Added: Setting to toggle the bold style applied to chat mentions. (Closes#816)
* Fixed: No background color being applied to Highlight My Message chat messages when using the new Twitch layout. Now, the default Twitch purple will be used when FFZ hasn't yet extracted the color for the current channel. Extracting the channel color is still broken at this time. (Closes#821)
* Fixed: The player volume resetting to 100% when changing channels. (Closes#820)
* Fixed: Chat appearing incorrectly when a custom width smaller than 340 pixels is set. (Closes#819)
**Note**: This update does not fix all issues with features not working on Twitch's new channel page layout. Due to changes Twitch has been making to their coding practices, it is significantly harder to support their newer pages. We are still trying to determine the best way to support things going forward.
* Added: Chat Actions can be copied as JSON and imported from JSON. (Closes#782)
* Fixed: The player stuttering when attempting to play a clip when the Audio Compressor is set to be enabled by default.
* Fixed: Custom chat widths, swapping sidebars, and portrait mode not working correctly with the new channel page layout. (Closes#799, Affects #794)
* Fixed: Square Avatars not working correctly on the new channel page layout.
* Fixed: Searching settings would not properly search for items in Experiments.
* Fixed: Emotes ending in punctuation (specifically: `.`, `,`, and `!`) were not being displayed correctly.
* Fixed: The order of actions reversing after an inheritance point. (Closes#791)
* Changed: Rename `Chat > Bits and Cheering > Display Top Cheerers` to `Chat > Appearance > Display Leaderboard` to bring it in line with the current state of the feature.
* Removed: Option to hide offline channels from sidebar. This is no longer trivial to implement due to Twitch changes. (Closes#801)
* Fixed: The chat input field resizing when a different font size has been set. This is a Twitch bug, but I'm tired of users reporting it so FFZ will temporarily fix it until Twitch patches it themselves.
* Fixed: Highlighting messages when viewer cards are not open no longer working. Note: They still don't work in the Mod View, which is coded in a way that makes it harder to work with.
* Fixed: Appearance of the tool-tip for the FFZ Control Center button.
* Fixed: Player volume not saving correctly when using the mouse wheel to adjust volume, causing it to suddenly return to incorrect values in certain cases.
* Fixed: The Picture-in-Picture and Reset Player buttons appearing in the wrong location when using the Mod View.
* Changed: Updated strings for several settings to be less confusing, and added a disclaimer to Directory settings that they are currently broken due to changes Twitch made to how the directory functions.
* Fixed: Only show unlocked bits emotes from the current channel on the Channel page of the FFZ Emote Menu.
* Fixed: Sort locked bits emotes in the FFZ Emote Menu by the unlock value of the bits emotes. Note: This only works for locked bits emotes. Unlocked bits emotes do not have the necessary data to sort them correctly.
* Fixed: Issue with the player volume not updating correctly when using the Reset Player feature.
* Added: Setting to hide Twitch's new `Celebrations` feature.
* Fixed: Unlocked Bits Emotes not appearing correctly in the Channel tab of the FFZ Emotes Menu.
* Added: Display bits emote rewards in the FFZ Emote Menu alongside subscription emotes.
* Changed: 2FA reward emotes are now labelled as such in their tool-tips.
* Changed: Update the style for the chat pause notice at the bottom of chat to match the latest Twitch style and language.
* Fixed: Disabling hosting not working on Mod View.
* Fixed: Emote sets not being sorted correctly in the FFZ Emote Menu when combining multiple sets (such as multiple subscription tiers) into one section.
* API Changed: The `setting-color-box` component now allows you to open the color picker up and not only down.
* Added: Support for the new Mod View.
* Fixed: Changes to chat room state not updating room actions correctly.
* Fixed: Chat room state not being detected correctly when the client loads.
* Fixed: Error loading bits configuration after a Twitch update changed the format, causing an exception that prevents the add-on from initializing fully.
* Added: Setting to disallow polls from being displayed in chat.
* Fixed: Polls not being displayed in chat. (Somehow, the setting got erased from the previous release.)
* Added: Setting to stop Hype Trains from appearing in chat.
* Changed: Megacheer messages will be disabled when bits UI has been hidden.
* Fixed: Mass subscription messages displaying an empty square in chat when attempting to hide them.
* Added: Socket debugging information, including if the client is connected, latency, ping, etc.
* Changed: Make the text for profile rules more clear about what happens if you have multiple rules for a profile.
* Changed: Remove the word `Enable` from the tool-tip for the Audio Compressor button, bringing it in line with how other player buttons work. (Example: `Fullscreen` and not `Enter Fullscreen`)
* Changed: Sort the available languages into Supported Languages and Joke Languages, in preparation for listing translations intended to be humorous.
* Fixed: Display of check-boxes in various places throughout FrankerFaceZ's UI.
* Fixed: The Reset All Players button not working.
* Fixed: Resetting the player with the compressor enabled resetting the volume to 100% until manually changed.
* Fixed: The Audio Compressor feature causing audio to break when viewing a clip due to CORS permission issues.
* Fixed: Settings relating to hiding whispers.
* Changed: Make the descriptions for the new compressor settings a bit more useful.
* Added: Audio Compression for the Twitch Player. Make loud sounds quieter and quiet sounds louder for a better listening experience.
* Fixed: Player modifications not applying on the Stream Manager and Squad Stream pages.
* Added: Option to hide timestamps from Chat on Videos.
* Added: TwitchCon and Overwatch League badges are now sorted into their own categories for controlling badge visibility.
* Fixed: Automatically exit Picture-in-Picture when entering fullscreen mode.
* Fixed: Do not let users enter Picture-in-Picture when already in fullscreen.
* Fixed: Minimal Navigation not actually sliding the top navigation bar out of view.
* Added: Setting for disabling the highlight on messages highlighted with channel points.
* Fixed: Badges not appearing correctly in chat. (Fixed detection of the `chat-container` component.)
* Fixed: Partially fixed rendering of subscription messages in Chat on Videos. Twitch's data format is broken and doesn't distinguish between the system message (Example: `X resubscribed for 3 months ...`) and the actual user message (Example: `Hi thanks for three months`) so rendering them properly is difficult.
* Changed: Replace a few unnecessary menu components that only display markdown with a generic component.
* Changed: Initial work for letting users override display names and user colors in chat.
* Changed: The FFZ menu button no longer depends on add-ons being loaded to load itself.
* Fixed: Rendering of highlighted messages in Chat on Videos.
* Fixed: Featured channels menu not working when a bad channel is in the list.
* Added: Better support for settings profiles on the dashboard.
* Fixed: Bug with the new title-based filtering for settings profiles frequently toggling on and off.
* Fixed: Bug with settings context inheritance.
* Added: Current Title rule for settings profiles. Matches against the title of the current stream or video. Allows for regular expressions.
* API Added: Added several methods for working with polls to the Twitch data module.
* Changed: Move queries into a separate file to reduce initial load file size.
* Fixed: Remove debug logging from stream up-time metadata.
* Fixed: Display the count of new settings on the FFZ menu button when not disabled.
* Maintenance: Updated to the current version of `displacejs`, no longer using a fork.
* Added: Control badge visibility by group and not simply by individual badge.
* Fixed: When possible, sort emote IDs numerically for the emote menu.
* Changed: Blacklist a few more invalid errors from automatic reporting.
* Changed: Include add-on versions in error reports.