* Added: Setting to hide the "New Settings" badge that displays on the FFZ Control Center button when there are new settings.
* Fixed: Incorrect locale detection causing Algolia queries to fail when loading auto-completion for tags.
* Added: Option to automatically opt-out of getting redirected to a Squad Stream page when viewing a channel using Squad Streaming.
* Added: Option to automatically pin the chat message that allows you to share a re-subscription.
* Added: Setting to hide the "LIVE" indicator on live channel pages.
* Added: Setting to invert portrait mode, placing chat at the top rather than the bottom.
* API Added: New icons to the default icon set: `user`, `clip`, `sort-down`, `sort-up`, `sort-alt-up`, `sort-alt-down`, and `language`.
* API Added: All Vue components now have access to a `getReactURL(route, ...)` method for building URLs.
* API Fixed: `<react-link />` will not attempt a React navigation if given a non-relative link.
* API Fixed: Issue with `getTagImmediate` throwing an exception when not given a callback function.
* Changed: Use the new Twitch Data module for fetching stream up-time when it isn't known, rather than forcing queries to re-fetch.
* Changed: Add a method to Twitch Data for looking up stream up-time.
* Fixed: The autocompletion component should not swallow key-presses when modifier keys are being held.
* Fixed: Issue when comparing against `null` with `deep_equals`.
* Added: `Current Channel` rule for profiles, to match all pages associated with a certain channel without needing many page rules.
* Fixed: Unreadable text in light theme when importing a profile.
* Changed: Display a matching page URL in the `Current Page` rule for profiles.
* Changed: Do not display an inactive profile warning on the Add-Ons settings page, since those are not affected by profiles.
* Changed: Update Vue to a more recent version.
* Maintenance: Update the chat types enum based on the latest version of Twitch.
* API Added: `TwitchData` module (`site.twitch_data`) for querying Twitch's API for data.
The Profile Update! Now, it's possible to create custom settings profiles. The important thing about profiles is that you can have different profiles run according to different rules. Want some settings to only apply on your dashboard? Use a Current Page rule set to Dashboard. Want your chat wider in theater mode? Create a profile for Theater Mode.
* Added: Profile Editor.
* Added: Ability to import and export specific profiles.
* Added: Ability to update profiles from JSON files for more advanced users.
* Fixed: Update `sortablejs` dependency to fix issue with sorting behavior.
* Fixed: Several issues in the settings profile system which never came up because custom profiles weren't available.
* Fixed: Hotkeys freezing chat when they shouldn't, up until the first time the mouse hovers over chat.
* API Added: `deep_equals(object, other, ignore_undefined = false)` method of `FrankerFaceZ.utilities.object` for comparing two objects, deeply.
* API Changed: `<setting-check-box />` controls can now display their indeterminate state.
* API Fixed: `deep_copy()` eating Promises and Functions.
* Fixed: Maintain the mouse hover state for chat when moving the mouse over the context menu from an in-line chat action.
* Fixed: Do not allow mouse interaction with the notice at the bottom of chat when chat if frozen, ensuring that users can interact with the bottom chat line.
* Fixed: Block and Hide Thumbnails buttons not appearing on Directory pages.
* API Fixed: `deep_copy()` converting `null` into `{}`.
* API Changed: Tooltips can now emit hover events.
* Fixed: Unable to see in-line chat action context menus in theater mode.
* Changed: Add a new socket server to the list to take pressure off the others.
* API Added: `debounce` method in `FrankerFaceZ.utilities.object`.
* API Added: `<autocomplete>` Vue component for implementing text fields with auto-completion.
* API Changed: Update localized Vue strings immediately when the i18n debug transformation changes.
* API Changed: `<icon-picker />` now has a closed and open state. It doesn't always show the drawer of icons.
* API Changed: Include the `vue-clickaway` mixin in everything.
* Added: Setting to hide the "Not Live" bar beneath videos and clips that appears when the channel is currently live.
* Fixed: Handling of `https://www.twitch.tv/<channel>/clip/<slug>` urls for rich chat embeds and rich link tool-tips.
* Fixed: Lower the priority of custom highlight terms so they will not break links.
* Fixed: Holding multiple modifier keys to display in-line chat actions.
* Fixed: Clean up out-dated avatar display setting for the directory.
* API Added: Allow add-ons to access the Popper JS library via `FrankerFaceZ.utilities.popper`.
* API Added: `<icon-picker />` Vue component for selecting an icon.
* API Added: `<react-link />` Vue component for creating links that cause the React app to navigate without a page load.
* API Added: `<t-list />` Vue component for translating text including Vue elements.
* API Added: `maybeLoad(icon)` function for font awesome to only load the font if the icon is from font awesome.
* API Added: `generateUUID()` function to `FrankerFaceZ.utilities.object`
* API Added: The `vue-observe-visibility` module is now loaded with Vue and made available in all Vue contexts.
* Add setting to hide live notification when watching a clip / video
* Also move Event, Rerun and Squad Streaming Bar settings from the Player to the Channel section
* Fixed: Update Switchboard to allow FFZ to load normally on Twitch's latest update, which updated their version of React Router.
* Fixed: Apply the setting to hide Recommended Channels from the sidebar to Popular Channels as well.
* Fixed: Words being highlighted as mentions incorrectly when they start with the user's name.
* API Changed: New `<react-link>` and `<aspect>` global Vue components.
Fixed: Issue with Recommended Channels query.
Changed: Add information on loaded add-ons to generated logs.
API Changed: Add the missing utility modules to `FrankerFaceZ.utilities` exports, for use in add-ons.
API Changed: Make the Dialog class a bit more flexible.
Fixed: Hide the red dot added to chat by the `gem_gem_gem_gem` experiment.
Changed: Attempt to read the stream start time from a new property for directory cards.
This is a fairly hefty update, behind the scenes. We've rewritten all code that deals with chat scrolling in order to integrate with Twitch's last batch of changes that made chat pausing accessible for moderators. This update also enables the Add-Ons System for all users.
* Added: Setting to allow you to pause chat with a hot key, even when the mouse isn't hovering over chat.
* Added: Setting to control how long chat remains paused due to move movement.
* Fixed: Chat row backgrounds changing when messages are removed from chat.
* Changed: Integrate with Twitch's own chat pausing code, where it makes sense.
* Changed: Remove the experiment locking down access to the Add-Ons Loader.
* Changed: When using the current time as a cache buster, truncate it to the nearest 5 second interval.
* Fixed: Mentions not appearing in bold font.
* Fixed: Highlighting messages in chat when opening a viewer card by clicking a mention that wasn't all lower-case.
* Fixed: Detection of External add-ons when there is a name collision.
* Changed: Do not report name collision errors.
* Changed: Allow for multi-line add-on descriptions.
I finally got tired of putting `-rc` in my version numbers. It's time for normal numbers.
* Added: The Add-On Loader System. This is in, however, until the add-ons are ready it's going to remain disabled. There is an Experiment to enable it for those who find themselves curious.
* Fixed: Round avatars in Theater Mode.
* Fixed: Minor string formatting issues in the Experiments menu.
Implements an Add-on Loader so that other add-ons, such as the FFZ Add-on Pack, can be loaded directly by FFZ without requiring the user to install multiple extensions into their browser.
* Added: Option to highlight messages from a user when their viewer card is open.
* Fixed: Every word in whisper messages being highlighted as a mention.
* Fixed: Square avatars in the left sidebar.
* Fixed: Rich tooltips for `i.stack.imgur.com` images.
* Changed: Priority of socket servers for connection.
* Added: Option to open viewer cards when clicking a mention in chat.
* Fixed: Mention matching in chat. (Now using the same regular expression as vanilla Twitch.)
* Added: Setting to remove rounding applied to avatars.
* Fixed: New settings not being marked as seen when you see them.
* Fixed: Position of the FFZ Control Center icon in the navigation bar.
* Fixed: Position of the Whisper button when in theater mode with a custom Chat Width.
* Fixed: Hiding Recommended Channels from the Following Directory.
* Fixed: Rendering of badges in slot zero.
* Added: Button to mark all settings as seen to the main menu, only visible when there are new settings.
* Fixed: Formatting of metadata.
* Fixed: Custom Chat Width and Theater Mode.
* Fixed: Scrolling issue with the FFZ Control Center when using certain controls.
* Fixed: Visibility checkboxes in the In-Line Chat Actions editor not working correctly when multiple actions are in edit mode.
* Added: In-Line Chat Actions can now be set to display with specific modifier keys being held. This feature currently requires that Freeze Chat Scrolling is enabled. (Though, why you'd want to use this without that feature is beyond me.)
* Fixed: Bug with custom chat width in theater mode.
* Fixed: The `Get Bits` button appearing when disabled.
* Fixed: Issue with highlighting chat usernames when using Firefox.
* Fixed: Misc minor bugs.
* Fixed: In-Line Chat Actions appearing when Visibilty: Mod Icons is set to True while in a channel where the user is not a moderator.
* Fixed: When looking up badge data and data has not been pulled from chat yet, try pulling data from chat immediately.
* Added: Room Actions for Chat. Easily send canned messages or open relevant links.
* Changed: Refactor how action data is passed to in-line chat actions. Should perform better now, and also allow using the message text in actions.
* Changed: Blacklist a few errors from automatic error reporting.
* Fixed: Include the Squad Bar when calculating the player height for Portrait Mode.
* Fixed: Issue with rich content embeds breaking chat rendering when an error occurs loading their data.
* Fixed: Duplicate icon keys in chat action editor.
* Changed: Better DOM scanning performance by giving up faster.
* Fixed: More stupid changes in order to force events to fire on the component we grab badge data from.
* Changed: Remember which sections of the settings menu a user has expanded and restore that state when re-opening the menu.
* Changed: Begin tracking which settings a user has seen, so that a future update can begin highlighting newly added settings.
* Changed: Clean up the new localization code a bit more.
* Added: Option to hide Squad Streaming banners on channel pages.
* Changed: Rewrite the entire i18n system to use the standard ICU message format.
* Changed: Render the context menu for chat messages in Chat on Videos.
* Fixed: Badges not appearing correctly in chat.
* Fixed: Messages in Chat on Videos with embeds appearing too wide.
More performance!
* Changed: Push the chat scroll to bottom into a new animation frame to avoid costly recalculations as much as possible.
* Fixed: Runaway performance issue when using FontAwesome icons for in-line chat actions due to an overabundance of CSS.
* Fixed: Emitting updated events for settings that haven't changed, resulting in frequent re-rendering of all chat lines.
* Added: Reason context menus for in-line timeout and ban actions.
* Fixed: Certain FFZ tool-tips using the wrong input handlers.
* Fixed: Do not update CSS whenever bits configuration changes, only when necessary. (Performance fix for the bleed purple campaign.)
* Changed: Mark certain page elements with a flag to avoid crawling them with MutationObservers. (More performance~~)
* Added: Highlight messages based on usernames and badges.
* Added: Block messages based on usernames and badges.
* Fixed: Display the number of months a subscriber has subscribed in badge tool-tips.
* Fixed: Rendering of chat messages sent from Twitch Extensions.
* Added: More settings under Chat > Behavior >> Deleted Messages to control the display of moderated messages.
* Fixed: Deleted messages displaying for non-moderated users using the settings that would be applied were that user a moderator.
* Changed: In-line Chat Actions that only display when you are a moderator now only display when you have moderation powers over that user. Moderators will no longer see those actions next to other moderators.
* Fixed: Add initial support for Twitch's new message moderation display styles.
* Fixed: Tooltips in pop-out chat not appearing correctly.
* Fixed: Opening the FFZ Control Center from pop-out chat.
* Fixed: Chat not appearing if a window is too thin with Portrait Mode enabled.