* Fixed: Force Apollo queries to reload if there is missing data in the cache. This should fix the loading errors.
* Fixed: Use `Tier 1`, `Tier 2`, `Tier 3`, etc. in the emote menu when the price is not available for a subscription product.
* Added: Setting to disable player auto-play. (Closes#515)
* Fixed: Cheers not appearing in chat messages.
* Fixed: Reasons not working for timeouts / bans in in-line actions. (Closes#513)
* Fixed: Typo in chat code fixes causing message deletion setting to not work correctly.
* Fixed: Remove request causing following directory to crash, until such time as we can figure out why it's happening.
* Not Fixed: Directory stuff.
* Fixed: Chat handling.
This is an initial release to add support for Twitch's changes to how chat works internally. Everything should be working. I'm not entirely happy with the code though, so I'll be reviewing this in the future when I have time to clean things up.
I haven't had a chance to go over directory features yet, and likely won't for several days because of my job.
* Fixed: Twitch changed the internal structure of their dynamically loaded component system, preventing FrankerFaceZ from being able to force a new chunk to load to grab the internals of webpack.
* Fixed: Issue where settings context was not being set up correctly in pop-out chat.
* Fixed: Chat Width setting on various channel sub-pages on the old layout.
* Changed: Limit emote menu subscription benefit requests to 75 items per request due to issues with Twitch's GraphQL API periodically returning errors when requesting 100 items.
* Changed: Set the API stress testing experiment to 100% roll-out.
* Changed: Add a mouse hover event handler for emote menu sections to force emotes to display in the event that the IntersectionObserver fails to update correctly.
* Changed: Display gift icons in the emote menu next to gifted subscriptions.
* Changed: Force the IntersectionObserver in the emote menu to update whenever a new section is added to ensure that there's always a valid state.
* Changed: Set the API Stress Testing experiment to 35%.
* Fixed: Chat Width not applying correctly on pages like Videos on the old channel layout.
* Changed: Implement an IntersectionObserver into the emote menu in an attempt to get the menu rendering faster when there are an incredible number of emote sets.
* Changed: Roll out the new API experiment to 25%. (This is still pulling data from the old server, and merely serves to test the performance of the new server stack.)
* Fix emote menu not loading more than 100 subscription benefits
* Implement @last support in .get
Modify `curr_cursor` to use the new get @last modifier
* Fixed: Socket server not joining the correct room when using the new channel layout, causing some metadata to work incorrectly.
* Fixed: Featured Follow buttons not disappearing correctly when they are removed from a channel.
* Added: Toggle the Player Stats pop-up when you click on the stream latency metadata tag.
* Fixed: Bug where the chat would not appear at full width when combining portrait mode, theater mode, and swap sidebars.
* Fixed: Subscription balloon appearing off screen with the new layout and the Swap Sidebars option.
* Fixed: Metadata not updating correctly on the legacy layout.
* Fixed: Controls to block/unblock games and hide/unhide thumbnails not appearing on the directory with the new layout.
* Fixed: Take a few more variables into account when sizing the player for Portrait Mode.
* Changed: Fade in the Host button, not responding to user interaction while it's fading to give users a chance to react to the UI change.
* Added: Portrait Mode Threshold setting for customizing at precisely which point Portrait Mode kicks in.
* Fixed: Do not automatically hide chat because of a narrow window when Portrait Mode is enabled.
* Added: Portrait Mode! Put chat beneath the player when your window is taller than it is wide to make the best use of space for both the player and chat.
* Fixed: Better route matching for when we're actually on the new channel page.
* Fixed: Unable to effectively collapse chat with a custom width on the new layout.
* Added "Chat > Behavior > Deleted Message Style" setting to customize how deleted messages appear when set to always be visible.
* Added "Chat > Filtering > Filter your own messages." setting to control whether or not your own chat messages are filtered. Defaults to disabled.
* Fixed: Channel Hosting, via better detection of new vs old channel component style.
* Changed: Do not hide the emote menu when it's taller than the whisper UI.
* Fixed: Chat features not working on the dashboard.
* Fixed: Player features not working with Twitch's new player loading scheme.
* Added: Emoji to the Emote Menu.
* Changed: Do not look up all a user's emote sets until they actually open the emote menu to reduce server load.
* Changed: Ignore a few extra useless errors with automatic error reporting.
* Fixed: Adding the Prime icon to Subscribe buttons when your free Prime sub is available.
* Fixed: Uncaught exceptions when a pop-up blocker stops us from opening a new tab.
* Fixed: Update Fine to deal with changes to how the React Root is stored in the DOM.
Behind the Scenes
* Working on the UI for Translation Editing
* Refactor some of the main menu dialog logic into a more generic Dialog class
* Added: Separate setting for hiding the Get Bits button in the site header without hiding the bits UI in chat.
* Added: Setting to hide avatars in the side navigation bar.
* Fixed: Do not inject FFZ into the Extension Testing Rig.
* Fixed: Users mentioning themselves in Chat on Videos and Clips Chat appearing to highlight the user.
* Fixed: Attempting to read Twitch experiment state from an uninitialized controller.
* Fixed: Appearance of Twitch emotes in locally displayed `/me` messages in chat.
* Fixed: Rendering of international usernames in Clips Chat.
* Changed: Tag error reports with the current site.
Fix the implementation of rate-limiting in the socket server to use data from the sealed request. Load a list of acceptable origins from the config file.
* Added: Initial support for chat on Clips.
* Fixed: Do not attempt to apply the dark theme to the Twitch Prime landing page.
* Fixed: Remove debug logging from Chat on Videos.
* Added: Initial support for Chat on Videos.
Please note that moderation features are not currently available when FFZ features for Chat on Videos are enabled. There is a setting to disable custom FFZ rendering which makes moderation tools accessible.
More work has also been done on getting custom viewer cards ready.
* Added: Notify users when a new build of FrankerFaceZ is available.
* Fixed: The option to disable channel hosting. (Revert to previous channel hosting data scheme from 21 days ago.)
* Fixed: Emotes in locally echoed chat messages. (Update code for parsing emotes in locally echoed chat messages to find emote data in the new location.)
* Fixed: Automatic opting out from raids not working in pop-out chat.
* Fixed: Error causing messages in the delayed buffer to not be removed when a user is timed out.
* Changed: Add localization support for message when a clear chat is ignored.
* Added: Setting to ignore moderators clearing chat.
* Added: Setting to remove deleted messages from chat entirely.
* Added: Setting to control the delay before chat messages appear.
* Fixed: Twitch emotes not displaying in Whispers.
* Fixed: Alignment of in-line actions when using Emote Alignment: Padded.
* Changed: Display the git commit hash for the current build in the FFZ Control Center, rather than the webpack build hash.