v2.5.0
What's Changed
- Major: Twitch follower emotes can now be correctly tabbed in other channels when you are subscribed to the channel the emote is from. (#4922)
- Major: Added
/automod
split to track automod caught messages across all open channels the user moderates. (#4986, #5026) - Major: Moderators can now see restricted chat messages and suspicious treatment updates. (#5056, #5060)
- Minor: Migrated to the new Get Channel Followers Helix endpoint, fixing follower count not showing up in usercards. (#4809)
- Minor: Moderation commands such as
/ban
,/timeout
,/unban
, and/untimeout
can now be used via User IDs by using theid:123
syntax (e.g./timeout id:22484632 1m stop winning
). (#4945, #4956, #4957) - Minor: The
/usercard
command now accepts user ids. (/usercard id:22484632
) (#4934) - Minor: Added menu actions to reply directly to a message or the original thread root. (#4923)
- Minor: The
/reply
command now replies to the latest message from the user. Due to this change, the message you intended to reply to is now shown in the reply context, instead of the first message in a thread. (#4919)
More Changes
- Minor: The chatter list button is now hidden if you don't have moderator privileges. (#5245, #5336)
- Minor: Live streams that are marked as reruns now mark a tab as yellow instead of red. (#5176, #5237)
- Minor: Allowed theming of tab live and rerun indicators. (#5188)
- Minor: The Restart on crash setting works again on Windows. (#5012)
- Minor: Added an option to use new experimental smarter emote completion. (#4987)
- Minor: Added support for FrankerFaceZ channel badges. These can be configured at https://www.frankerfacez.com/channel/mine - currently only supports bot badges for your chat bots. (#5119)
- Minor: Added support to send /announce[color] commands. Colored announcements only appear with the chosen color in Twitch chat. (#5250)
- Minor: The whisper highlight color can now be configured through the settings. (#5053)
- Minor: Added an option to always include the broadcaster in user completions. This is enabled by default. (#5193, #5244)
- Minor: Added a warning message if you have multiple commands with the same trigger. (#4322)
- Minor: Chatters from message history are now added to autocompletion. (#5116)
- Minor: Added support for the
{input.text}
placeholder in the Split -> Run a command hotkey. (#5130) - Minor: Added
--activate <channel>
(or-a
) command line option to focus or add a certain Twitch channel on startup. (#5111) - Minor: Added the
--incognito/--no-incognito
options to the/openurl
command, allowing you to override the "Open links in incognito/private mode" setting. (#5149, #5197) - Minor: Added the ability to change the top-most status of a window regardless of the Always on top setting (right click the notebook). (#5135)
- Minor: Added the ability to show AutoMod caught messages in mentions. (#5215)
- Minor: Added the ability to configure the color of highlighted AutoMod caught messages. (#5215)
- Minor: Updated to Emoji v15.1. Google emojis are now used as the fallback instead of Twitter emojis. (#5182)
- Minor: Added icons for newer versions of macOS. (#5148)
- Minor: Added more menu items in macOS menu bar. (#5266)
- Minor: Improved color selection and display. (#5057)
- Minor: Added a System theme setting that updates according to the system's color scheme (requires Qt 6.5). (#5118)
- Minor: Normalized the input padding between light & dark themes. (#5095)
- Minor: The account switcher is now styled to match your theme. (#4817)
- Minor: Added a fallback theme field to custom themes that will be used in case the custom theme does not contain a color Chatterino needs. If no fallback theme is specified, we'll pull the color from the included Dark or Light theme. (#5198)
- Minor: Added a new completion API for experimental plugins feature. (#5000, #5047)
- Minor: Added a new Channel API for experimental plugins feature. (#5141, #5184, #5187)
- Minor: Introduce
c2.later()
function to Lua API. (#5154) - Minor: Added
--safe-mode
command line option that can be used for troubleshooting when Chatterino is misbehaving or is misconfigured. It disables hiding the settings button & prevents plugins from loading. (#4985) - Minor: Added wrappers for Lua
io
library for experimental plugins feature. (#5231) - Minor: Added permissions to experimental plugins feature. (#5231)
- Minor: Added missing periods at various moderator messages and commands. (#5061)
- Minor: Improved Streamlink documentation in the settings dialog. (#5076)
- Minor: The installer now checks for the VC Runtime version and shows more info when it's outdated. (#4847)
- Minor: All sound capabilities can now be disabled by setting your "Sound backend" setting to "Null" and restarting Chatterino. (#4978)
- Minor: Added an invisible resize handle to the bottom of frameless user info popups and reply thread popups. (#4795)
- Minor: Updated the flatpakref link included with nightly builds to point to up-to-date flathub-beta builds. (#5008)
- Minor: Image links now reflect the scale of their image instead of an internal label. (#5201)
- Minor: IPC files are now stored in the Chatterino directory instead of system directories on Windows. (#5226)
- Minor: 7TV emotes now have a 4x image rather than a 3x image. (#5209)
- Minor: Add
reward.cost
reward.id
,reward.title
filter variables. (#5275) - Minor: Change Lua
CompletionRequested
handler to use an event table. (#5280) - Minor: Changed the layout of the about page. (#5287)
- Minor: Add duration to multi-month anon sub gift messages. (#5293)
- Minor: Added context menu action to toggle visibility of offline tabs. (#5318)
- Minor: Report sub duration for more multi-month gift cases. (#5319)
- Minor: Improved error reporting for the automatic streamer mode detection on Linux and macOS. (#5321)
- Bugfix: Fixed a crash that could occur on Wayland when using the image uploader. (#5314)
- Bugfix: Fixed split tooltip getting stuck in some cases. (#5309)
- Bugfix: Fixed the version string not showing up as expected in Finder on macOS. (#5311)
- Bugfix: Fixed links having
http://
added to the beginning in certain cases. (#5323) - Bugfix: Fixed topmost windows from losing their status after opening dialogs on Windows. (#5330)
- Bugfix: Fixed a gap appearing when using filters on
/watching
. (#5329) - Bugfix: Fixed an issue where certain emojis did not send to Twitch chat correctly. (#4840)
- Bugfix: Fixed the
/shoutout
command not working with usernames starting with @'s (e.g./shoutout @forsen
). (#4800) - Bugfix: Fixed capitalized channel names in log inclusion list not being logged. (#4848)
- Bugfix: Trimmed custom streamlink paths on all platforms making sure you don't accidentally add spaces at the beginning or end of its path. (#4834)
- Bugfix: Fixed a performance issue when displaying replies to certain messages. (#4807)
- Bugfix: Fixed an issue where certain parts of the split input wouldn't focus the split when clicked. (#4958)
- Bugfix: Fixed an issue in the
/live
split that caused some channels to not get grayed-out when they went offline. (#5172)\ - Bugfix: User text input within watch streak notices now correctly shows up. (#5029)
- Bugfix: Fixed selection of tabs after closing a tab when using "Live Tabs Only". (#4770)
- Bugfix: Fixed input in the reply thread popup losing focus when dragging said window. (#4815)
- Bugfix: Fixed the Quick Switcher (CTRL+K) sometimes showing up on the wrong window. (#4819)
- Bugfix: Fixed the font switcher not remembering what font you had previously selected. (#5224)
- Bugfix: Fixed too much text being copied when copying chat messages. (#4812, #4830, #4839)
- Bugfix: Fixed issue on Windows preventing the title bar from being dragged in the top left corner. (#4873)
- Bugfix: Fixed an issue where Streamer Mode did not detect that OBS was running on MacOS. (#5260)
- Bugfix: Remove ":" from the message the user is replying to if it's a /me message. (#5263)
- Bugfix: Fixed the "Cancel" button in the settings dialog only working after opening the settings dialog twice. (#5229)
- Bugfix: Fixed an issue where the setting
Only search for emote autocompletion at the start of emote names
wouldn't disable if it was enabled when the client started. (#4855) - Bugfix: Fixed an empty page being added when showing the out of bounds dialog. (#4849)
- Bugfix: Fixed an issue preventing searching a redemption by it's title when the redemption contained user text input. (#5117)
- Bugfix: Fixed an issue where reply context didn't render correctly if an emoji was touching text. (#4875, #4977, #5174)
- Bugfix: Fixed the input completion popup sometimes disappearing when clicking on it on Windows and macOS. (#4876)
- Bugfix: Fixed Twitch badges not loading correctly in the badge highlighting setting page. (#5223)
- Bugfix: Fixed double-click text selection moving its position with each new message. (#4898)
- Bugfix: Fixed an issue where notifications on Windows would contain no or an old avatar. (#4899)
- Bugfix: Fixed headers of tables in the settings switching to bold text when selected. (#4913)
- Bugfix: Fixed tooltips appearing too large and/or away from the cursor. (#4920)
- Bugfix: Fixed thread popup window missing messages for nested threads. (#4923)
- Bugfix: Fixed an occasional crash for channel point redemptions with text input. (#4949)
- Bugfix: Fixed triple-click on message also selecting moderation buttons. (#4961)
- Bugfix: Fixed badge highlight changes not immediately being reflected. (#5110)
- Bugfix: Fixed emotes being reloaded when pressing "Cancel" in the settings dialog, causing a slowdown. (#5240)
- Bugfix: Fixed double-click selection not correctly selecting words that were split onto multiple lines. (#5243)
- Bugfix: Fixed some emotes not appearing when using Ignores. (#4965, #5126)
- Bugfix: Fixed a freeze from a bad regex in Ignores. (#4965, #5126)
- Bugfix: Fixed lookahead/-behind not working in Ignores. (#4965, #5126)
- Bugfix: Fixed Image Uploader accidentally deleting images with some hosts when link resolver was enabled. (#4971)
- Bugfix: Fixed a rare crash with the Image Uploader when closing a split right after starting an upload. (#4971)
- Bugfix: Fixed an issue on macOS where the Image Uploader would keep prompting the user even after they clicked "Yes, don't ask again". (#5011)
- Bugfix: The usercard button is now hidden in the User Info Popup when in special channels. (#4972)
- Bugfix: Fixed support for Windows 11 Snap layouts. (#4994, #5175)
- Bugfix: Fixed some windows appearing between screens. (#4797)
- Bugfix: Fixed a crash that could occur when clicking
More messages below
button in a usercard and closing it quickly. (#4933) - Bugfix: Fixed a crash that could occur when using certain features in a Usercard after closing the split from which it was created. (#5034, #5051)
- Bugfix: Fixed a crash that could occur when using certain features in a Reply popup after closing the split from which it was created. (#5036, #5051)
- Bugfix: Fixed a bug on Wayland where tooltips would spawn as separate windows instead of behaving like tooltips. (#4998, #5040)
- Bugfix: Fixes to section deletion in text input fields. (#5013)
- Bugfix: Fixed avatar in usercard and moderation button triggering when releasing the mouse outside their area. (#5052)
- Bugfix: Fixed a bug where buttons would remain in a hovered state after leaving them. (#5077)
- Bugfix: Fixed an issue where you had to click the
reply
button twice if you already had that users @ in your input box. (#5173) - Bugfix: Fixed popup windows not persisting between restarts. (#5081)
- Bugfix: Fixed splits not retaining their focus after minimizing. (#5080)
- Bugfix: Fixed Copy message copying the channel name in global search. (#5106)
- Bugfix: Fixed some Twitch emotes sizes being wrong at certain zoom levels. (#5279, #5291)
- Bugfix: Fixed a missing space when the image uploader provided a delete link. (#5269)
- Bugfix: Reply contexts now use the color of the replied-to message. (#5145)
- Bugfix: Fixed top-level window getting stuck after opening settings. (#5161, #5166)
- Bugfix: Fixed link info not updating without moving the cursor. (#5178)
- Bugfix: Fixed an upload sometimes failing when copying an image from a browser if it contained extra properties. (#5156)
- Bugfix: Fixed tooltips getting out of bounds when loading images. (#5186)
- Bugfix: Fixed split header tooltips showing in the wrong position on Windows. (#5230)
- Bugfix: Fixed split header tooltips appearing too tall. (#5232)
- Bugfix: Fixed past messages not showing in the search popup after adding a channel. (#5248)
- Bugfix: Fixed pause indicator not disappearing in some cases. (#5265)
- Bugfix: Fixed the usercard popup not floating on tiling WMs on Linux when "Automatically close user popup when it loses focus" setting is enabled. (#3511)
- Bugfix: Fixed moderator-only topics being subscribed to for non-moderators. (#5056)
- Bugfix: Truncated IRC messages to be at most 512 bytes. (#5246)
- Bugfix: Fixed a data race when disconnecting from Twitch PubSub. (#4771)
- Bugfix: Fixed messages not immediately disappearing when clearing the chat. (#5282)
- Bugfix: Fixed highlights triggering for ignored users in announcements. (#5295)
Commit List
- Encode
modes
file in UTF8 by @Nerixyz in #4791 - Set
QT_ENABLE_HIGHDPI_SCALING
to0
on Qt 6 on Windows by @Nerixyz in #4767 - Fix input completion tests on Qt6 & run tests on 22.04 by @pajlada in #4774
- Fix memory leaks & data races in tests by @pajlada in #4772
- Bump lib/signals from
6561aa5
toca452a8
by @dependabot in #4789 - Bump lib/settings from
f168c09
tof92bc7b
by @dependabot in #4788 - Bump ncipollo/release-action from 1.12.0 to 1.13.0 by @dependabot in #4786
- Fix data race in PubSub by @pajlada in #4771
- Remove BaseSettings & merge ConcurrentSettings by @pajlada in #4775
- Remove offset logic from
BaseWindow::moveTo
by @Nerixyz in #4798 - Fixed
/shoutout
command not working with usernames starting with @'s (e.g./shoutout @forsen
) by @pajlada in #4800 - Remove boost::noncopyable use & boost::random dependency by @pajlada in #4776
- Fix all warnings from the cppcoreguidelines-pro-type-member-init clang-tidy check by @pajlada in #4426
- Use
QFontMetrics::elidedText
over manual implementation by @Nerixyz in #4807 - Migrate to the new Get Channel Followers Helix endpoint, fixing follower count not showing up in usercards by @pajlada in #4809
- Bump actions/checkout from 3 to 4 by @dependabot in #4806
- Bump lib/lua/src from
ea39042
to9b4f39a
by @dependabot in #4782 - Select correct notebook tab after closing while filtered by @dnsge in #4770
- Only layout visible
ChannelView
s by @Nerixyz in #4811 - Bump ZedThree/clang-tidy-review from 0.13.3 to 0.13.4 by @dependabot in #4814
- Bump lib/lua/src from
9b4f39a
to6baee9e
by @dependabot in #4813 - Refactor
Image
& Image'sFrames
by @pajlada in #4773 - Fix input in reply thread popup losing focus when dragging by @Nerixyz in #4815
- Style account switcher to match the current theme by @Nerixyz in #4817
- Fix signal connection nodiscard warnings by @pajlada in #4818
- Add the Changelog Category Check workflow by @pajlada in #4821
- Fixed Usercard Popup not floating on tiling WMs on Linux by @qooq69 in #3511
- Add
WindowManager::getLastSelectedWindow()
to replacegetMainWindow()
by @Mm2PL in #4816 - Cleanup Windows helpers by @Nerixyz in #4820
- Add (invisible) resize handle to frameless usercards and reply threads by @Nerixyz in #4795
- Fixed too much text being copied when copying chat messages by @Nerixyz in #4812
- fix: QuickSwitcherPopup now pops up in the selected window by @pajlada in #4819
- Mention filters in the note for features that nicknames don't work with by @Felanbird in #4826
- fix fedora build dependencies by @pajlada in #4828
- streamlink: trim custom paths by @brian6932 in #4834
- Fix selection rendering by @Nerixyz in #4830
- fix: double margin by @pajlada in #4839
- Consolidate input completion code in preparation for advanced completion strategies by @dnsge in #4639
- Allow any window to be bounds-checked by @Nerixyz in #4802
- Check VCRT and show installed/shipped version by @Nerixyz in #4847
- fix: Commands now completable when not starting with / by @dnsge in #4846
- Fix flickering when running with Direct2D by @Nerixyz in #4851
- Fix to interpret logger channel names as lowercase by @GongBingWong in #4848
- Fix empty page added when showing OOB dialog by @Nerixyz in #4849
- Update Nightly to 2.4.6 and get qt6-related-changes from 2.4.6 by @pajlada in #4856
- fix: Fix username tab completion without @ by @dnsge in #4853
- Don't download non-existant qt 5.15 debug symbols for Windows by @pajlada in #4857
- Implement compile-time flag to disable automatic update checks. by @libklein in #4854
- Update changelog entry for 4854 by @Felanbird in #4860
- Fix qtkeychain include for Qt6 users by @pajlada in #4863
- Fix Chatterino logo in readme by @Felanbird in #4865
- Bump pajlads/changelog-checker from 1.0.0 to 1.0.1 by @dependabot in #4866
- Add cmake flag to use system-provided miniaudio by @h3o66 in #4867
- Fix websocketpp depending on boost::random by @kornes in #4869
- Ignore invisible widgets when hit testing by @Nerixyz in #4873
- Update vcpkg to Qt6 by @kornes in #4872
- Fix emoji unified/non-qualified version for sending & parsing by @pajlada in #4840
- Adjust
DontFocus
window flags on Windows and macOS by @Nerixyz in #4876 - Display all parsed elements when parsing emojis in replies by @Nerixyz in #4875
- Replace boost::optional with std::optional by @pajlada in #4877
- Update Windows build instructions & contributing docs by @GongBingWong in #4858
- Fix LTO support by @pajlada in #4884
- fix: Don't use QCompleter prefix filter by @dnsge in #4855
- fix: Remove tab completion caching of source by @dnsge in #4893
- Test filters context map & message builder by @pajlada in #4886
- Bump ZedThree/clang-tidy-review from 0.13.4 to 0.14.0 by @dependabot in #4890
- Bump lib/WinToast from
5e441fd
to821c481
by @dependabot in #4894 - perf: reduce repaints amount caused by selection by @kornes in #4889
- Add some more filter tests by @pajlada in #4897
- Bump lib/crashpad from
432ff49
to3182e3b
by @dependabot in #4902 - refactor: Toast by @Nerixyz in #4899
- refactor: simplify double click selection by @kornes in #4898
- Remove direct dependency on Qt 5 compatibility module by @Nerixyz in #4906
- Add selection tests by @kornes in #4904
- refactor: Use override instead of virtual where possible by @pajlada in #4917
- refactor: debug count and popup by @Nerixyz in #4921
- refactor: Change lifetime of context menus by @Nerixyz in #4924
- refactor: FilterParser by @pajlada in #4925
- refactor: ChannelView by @pajlada in #4926
- refactor: IrcMessageHandler by @pajlada in #4927
- ci: Use clang-format 16 by @pajlada in #4929
- Bugfix: Fixed a crash when clicking
More messages below
button in a usercard and closing it quickly. by @Mm2PL in #4933 - refactor: Message by @pajlada in #4915
- Bump cmake/sanitizers-cmake from
c3dc841
to3f0542e
by @dependabot in #4936 - feat: Add VERSIONINFO resource for windows by @kornes in #4912
- refactor: KeyboardSettingsPage by @pajlada in #4937
- chore: Add a 10m timeout to the clang-tidy CI job by @pajlada in #4939
- refactor: move ban/banid/timeout to their own file by @pajlada in #4938
- Handle follower emotes differently if subscribed by @baines in #4922
- Fix tooltips appearing too large and/or away from the cursor by @Nerixyz in #4920
- Disable clickable sections in tables by @Nerixyz in #4913
- feat: forward logging from miniaudio by @pajlada in #4836
- feat:
/reply
command now replies to the latest message of the user by @iProdigy in #4919 - Improve reply popup after thread update by @iProdigy in #4923
- Add support for opening usercards by ID by @Mm2PL in #4934
- fix: avoid reward redemption crash via buffer refactor by @iProdigy in #4949
- refactor: Move all commands to their own files by @pajlada in #4946
- chore(deps): bump lib/miniaudio from
3898fff
tob19cc09
by @dependabot in #4948 - feat: Allow id: prefix in /ban and /timeout by @pajlada in #4945
- Dont invalidate paint buffer when selecting by @kornes in #4911
- chore(deps): bump lib/miniaudio from
b19cc09
to3b50a85
by @dependabot in #4955 - feat:
/unban
and/untimeout
by id by @pajlada in #4956 - fix: /banid and /ban id: performing duplicate bans by @pajlada in #4957
- fix: Split input sometimes not accepting focus by @pajlada in #4958
- refactor: Remove
Outcome
from network requests by @Nerixyz in #4959 - chore(deps): bump actions/github-script from 6 to 7 by @dependabot in #4964
- chore(deps): bump lib/miniaudio from
3b50a85
to4a5b74b
by @dependabot in #4967 - Remove unused parseMessage function by @Mm2PL in #4968
- refactor: Ignores and Replacements by @Nerixyz in #4965
- Fix: dont select mod buttons at triple click by @kornes in #4961
- feat: Run tests on Windows & macOS in CI by @Wissididom in #4970
- Refactored the Image Uploader feature. by @Mm2PL in #4971
- Finish renaming Viewer list to Chatter list by @Mm2PL in #4974
- fix: Only display spaces between words in reply context by @Nerixyz in #4977
- fix: deadlock and use-after-free in tests by @Nerixyz in #4981
- ci: Build benchmarks on Ubuntu 22.04 runner by @pajlada in #4982
- refactor: Remove Emoji's EmojiMap with a vector by @pajlada in #4980
- refactor: common/Credentials by @pajlada in #4979
- Add support for sound backends & some miniaudio changes by @pajlada in #4978
- Make emote completion a lot smarter by @Mm2PL in #4987
- Update magic_enum from v0.9.3 to v0.9.5 by @pajlada in #4992
- Do bounds-checking on more windows by @Nerixyz in #4797
- fix: typo in debug log for hotkeys by @pajlada in #4997
- Move clang-tidy to its own CI job by @pajlada in #4996
- Return correct hit-test values for title bar buttons on Windows by @Nerixyz in #4994
- feat: add channel for messages caught by AutoMod by @iProdigy in #4986
- feat: add
--safe-mode
command line option by @Mm2PL in #4985 - conan: Update Boost to 1.83 & OpenSSL to 3.2.0 by @pajlada in #5007
- Update flatpak nightly build link by @ilya-zlobintsev in #5008
- Fix missing parent of tooltips for Wayland by @crazysmc in #4998
- chore(deps): bump lib/crashpad from
3182e3b
to89991e9
by @dependabot in #5005 - Hide the Usercard button in the User Info Popup in special channels by @Mm2PL in #4972
- perf: query fewer historical messages on reconnects by @iProdigy in #5001
- Fixed "Yes, don't ask again" image uploader prompt not working on macOS by @pajlada in #5011
- Add a new completion API for experimental plugins feature. by @Mm2PL in #5000
- Add crazysmc to the contributors list by @crazysmc in #5020
- chore(deps): bump actions/upload-artifact from 3 to 4 by @dependabot in #5025
- chore(deps): bump actions/download-artifact from 3 to 4 by @dependabot in #5024
- fix: Fixed some compiler warnings by @Nerixyz in #5028
- fix: show user message on watch streak notice by @iProdigy in #5029
- BREAKING: Replace custom
import()
with normal Luarequire()
. by @Mm2PL in #5014 - fix: request more historical messages on wake by @iProdigy in #5018
- chore(deps): bump dawidd6/action-download-artifact from 2 to 3 by @dependabot in #5021
- Fixes to ctrl+backspace behavior by @gremble0 in #5013
- Migrate tests on macOS to the same way tests are run on windows by @Wissididom in #5032
- fix: UserInfoPopup now requires a split as its parent by @pajlada in #5034
- dev: Rename
tools
directory toscripts
by @pajlada in #5035 - fix: ReplyThreadPopup now requires a split as its parent by @pajlada in #5036
- chore: Unify
.clang-format
file by @pajlada in #5037 - Allow
ChannelView
s without aSplit
by @Nerixyz in #4747 - docs: cleanup/polish Markdown files by @Nerixyz in #5038
- feat: Add crash recovery on Windows by @Nerixyz in #5012
- fix: Tooltip parenting on Windows by @Nerixyz in #5040
- perf: skip update from GIF timer if no animated elements are shown by @Nerixyz in #5042
- feat: add sound and flash alert for automod caught messages by @iProdigy in #5026
- perf: Only update regions with animated elements by @Nerixyz in #5043
- fix: Add check for tall messages by @Nerixyz in #5045
- chore: add SputNikPlop to the contributors list by @SputNikPlop in #5046
- fix: some buttons triggering when releasing mouse outside by @Nerixyz in #5052
- fix: non-native drag on Windows by @Nerixyz in #5051
- refactor: Make
Args
less of a singleton by @pajlada in #5041 - Improve docs/supplemental files for plugins by @Nerixyz in #5047
- Allow customization of whisper colors in settings by @Nerixyz in #5053
- Autogenerate docs/plugin-meta.lua by @Mm2PL in #5055
- feat: show restricted chats and suspicious treatment updates by @iProdigy in #5056
- refactor: Logging (chat logger) by @pajlada in #5058
- chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 by @dependabot in #5062
- Added missing periods at mod-related messages and some system messages by @fraxxio in #5061
- Add Fraxx list of contributors by @fraxxio in #5064
- Add some tests for NotebookTab by @pajlada in #5070
- fix: Avoid unnecessary
NotebookTab
updates by @Nerixyz in #5068 - fix: Avoid duplicate scale in settings dialog by @Nerixyz in #5069
- refactor: Twitch PubSub client by @pajlada in #5059
- feat: add badges, emotes, and filters for suspicious messages by @iProdigy in #5060
- Improve color selection and display by @Nerixyz in #5057
- dev: Add RecentMessages benchmark by @Nerixyz in #5071
- refactor: NetworkPrivate by @Nerixyz in #5063
- fix: button hover state-change not visible in some cases by @Nerixyz in #5077
- Improve Streamlink documentation by @fraxxio in #5076
- chore(deps): bump ZedThree/clang-tidy-review from 0.14.0 to 0.15.0 by @dependabot in #5078
- fix: restore focus of last split when restoring by @Nerixyz in #5080
- refactor: SplitOverlay by @pajlada in #5082
- fix: ignore save requests after closing all windows by @Nerixyz in #5081
- refactor: fix clang-tidy auto*, const&, and curly braces by @pajlada in #5083
- chore(deps): bump lib/settings from
f92bc7b
to7a0e373
by @dependabot in #5085 - chore(deps): bump ZedThree/clang-tidy-review from 0.15.0 to 0.15.1 by @dependabot in #5087
- chore(deps): bump lib/serialize from
bbf0a34
to17946d6
by @dependabot in #5086 - chore(deps): bump lib/signals from
ca452a8
tod067706
by @dependabot in #5084 - refactor: move Network files from src/common/ to src/common/network/ by @pajlada in #5089
- clang-tidy: Make protected & private suffix underscore optional by @pajlada in #5090
- refactor: Remove the
NullablePtr
class by @pajlada in #5091 - refactor: Un-singletonize Paths & Updates by @pajlada in #5092
- refactor: Fix a bunch of minor things by @pajlada in #5094
- Use the same input padding between light & dark themes by @pajlada in #5095
- refactor: Move TwitchBadges to Application by @pajlada in #5096
- chore(deps): bump ZedThree/clang-tidy-review from 0.15.1 to 0.16.0 by @dependabot in #5097
- chore(deps): bump actions/cache from 3 to 4 by @dependabot in #5098
- chore(deps): bump lib/lua/src from
6baee9e
to7923dbb
by @dependabot in #4983 - chore(deps): bump lib/settings from
87ed4d9
to7e99623
by @dependabot in #5099 - fix: assert for GUI thread in getters instead of
get(I)App
by @Nerixyz in #5102 - fix: ignore channel name when copying message by @Nerixyz in #5106
- refactor: Make ChatterinoBadges less of a singleton by @pajlada in #5103
- refactor: Remove most raw accesses into Application by @pajlada in #5104
- chore(deps): bump ZedThree/clang-tidy-review from 0.16.0 to 0.17.0 by @dependabot in #5105
- deps(conan): use
boost
in header-only mode by @Nerixyz in #5107 - Remove reference to lua import() by @Mm2PL in #5108
- refactor: make Application::emotes private by @pajlada in #5109
- fix: badge highlights not immediately updating color by @pajlada in #5110
- feat: add command line argument to select/add tab with a channel by @Nerixyz in #5111
- refactor: remove ColorProvider::setColor by @pajlada in #5112
- Chatters from recent-messages are now tab-completable by @Nerixyz in #5116
- refactor: mini reorganization of FfzEmotes.cpp by @pajlada in #5117
- refactor: Move Emotes to Application by @pajlada in #5120
- perf: add signal to invalidate buffers without doing layout by @Nerixyz in #5123
- chore(deps): bump lib/settings from
7e99623
toad12188
by @dependabot in #5124 - chore: specialize
Atomic<std::shared_ptr<T>>
by @Nerixyz in #5133 - Add support for
input.text
in commands run with hotkeys by @Mm2PL in #5130 - feat: add system theme on Qt 6.5 and up by @Nerixyz in #5118
- fix: support captures in ignores by @Nerixyz in #5126
- chore(deps): bump ZedThree/clang-tidy-review from 0.17.0 to 0.17.1 by @dependabot in #5136
- fix: more MSVC warnings by @Nerixyz in #5137
- chore(deps): bump lib/lua/src from
7923dbb
toe288c5a
by @dependabot in #5129 - Add developer_name appdata field by @ilya-zlobintsev in #5138
- chore(deps): bump lib/settings from
53be078
toe5346c3
by @dependabot in #5140 - fix: Twitch global emotes not loading by @pajlada in #5144
- fix: Benchmarks segfaulting/asserting on missing emotes by @pajlada in #5146
- fix: use neutral or username color for reply messages by @Nerixyz in #5145
- chore: Include all requires sizes in macOS icon file. by @Manfred in #5148
- feat: Allow /openurl to force use private/non-private mode by @pajlada in #5149
- feat: Add "Copy message as JSON" option when shift-right-clicking a message by @pajlada in #5150
- Add a new Channel API for experimental plugins feature by @Mm2PL in #5141
- feat: add option to change the top-most status of a window by @Nerixyz in #5135
- chore(deps): bump lib/settings from
e5346c3
tob791880
by @dependabot in #5153 - chore: Build with Qt6 by default on Windows by @pajlada in #5155
- chore(deps): bump ncipollo/release-action from 1.13.0 to 1.14.0 by @dependabot in #5160
- chore: Use OpenSSL 3 by default in conan by @pajlada in #5159
- fix: avoid promoting child widgets to child windows by @Nerixyz in #5161
- feat: build Ubuntu images in Docker by @pajlada in #5151
- revert: uncomment NCCALCSIZE adjustment by @Nerixyz in #5166
- chore: Add a full-build shell script for use in CI/docker by @pajlada in #5167
- chore: update the ci full build script by @pajlada in #5168
- chore: Run Ubuntu tests in Docker by @pajlada in #5170
- fix: minimize button remaining hovered on Windows by @Nerixyz in #5175
- fix: resolve /live channel liveness using their channel ID by @KleberPF in #5172
- fix: searching redemptions that require user input by @KleberPF in #5177
- feat: add the ability to unit test some aspects of SplitInput by @pajlada in #5179
- fix: "reply to message" now takes usernames with @'s & commas into consideration by @KleberPF in #5173
- refactor: Turn link-info into its own element and class by @Nerixyz in #5178
- Update emoji-data to v15.1.1 by @Nerixyz in #5182
- Live streams that are marked as reruns now mark a tab as yellow instead of red by @Mm2PL in #5176
- fix: double ellipsis in reply by @Nerixyz in #5174
- Make Lua CommandContext use a ChannelRef by @Mm2PL in #5184
- Update plugin documentation document by @Mm2PL in #5185
- Update chatterino.d.ts for the ChannelRef change by @Mm2PL in #5187
- fix: /openurl can now open urls with spaces, assuming the url allows it by @pajlada in #5197
- fix: tooltips showing out-of-bounds after loading images by @Nerixyz in #5186
- Allow theming of tab live and rerun indicators by @Mm2PL in #5188
- Fix incomplete traversal of clipboard data when an image is present resulting in Not an Image error by @hemirt in #5156
- Add option always include broadcaster in user completions by @KleberPF in #5193
- feat: Add a fallback theme to custom themes by @pajlada in #5198
- feat: Show FrankerFaceZ channel badges by @pajlada in #5119
- Introduce
c2.later()
function to Lua API. by @Mm2PL in #5154 - perf: prevent unnecessary layouts at leaveEvent by @kornes in #4879
- feat: Send messages using Helix API by @Nerixyz in #5200
- Estimate size of images to avoid layout shifts by @Nerixyz in #5192
- chore(deps): bump lib/settings from
b791880
to56a1597
by @dependabot in #5202 - fix: show correct scale factor of images by @Nerixyz in #5201
- feat: use 4x images on 7TV instead of 3x by @Nerixyz in #5209
- Add launchable attribute to the Linux appdata file by @ilya-zlobintsev in #5210
- Disable tests & benchmarks on ubuntu 20.04 docker builds by @pajlada in #5213
- chore(deps): bump lib/settings from
56a1597
to41ef789
by @dependabot in #5214 - refactor: turn
StreamerMode
into a singleton(-like thing) by @Nerixyz in #5216 - fix: correctly load twitch badges in highlights page by @pajlada in #5223
- chore: clean up and optimize resources by @Nerixyz in #5222
- chore: remove dead message element code by @Nerixyz in #5225
- fix: store IPC file in application directory by @Nerixyz in #5226
- fix: the font switcher now remembers your previous font by @pajlada in #5224
- chore(deps): update ccache-action back to upstream repo by @Felanbird in #5233
- chore(deps): update sccache version comments by @Felanbird in #5234
- fix(streamer-mode): check setting on startup by @Nerixyz in #5236
- Fix rerun flag not being unset after stream finishes by @Mm2PL in #5237
- fix(tooltips): hide image label by default by @Nerixyz in #5232
- fix(windows): show split tooltip before move by @Nerixyz in #5230
- Add highlight color and show in mentions to automod messages by @KleberPF in #5215
- fix: settings "Cancel" button doesn't work first time by @pajlada in #5229
- fix: compare settings before updating them by @pajlada in #5240
- Add plugin permissions and IO API by @Mm2PL in #5231
- Disable homebrew auto updating by @pajlada in #5242
- Add myself to contributors.txt by @KleberPF in #5241
- fix: Don't attempt to put the broadcaster username at the top by @pajlada in #5244
- Hide chatter list button for non-moderators by @pajlada in #5245
- fix: truncate outgoing IRC messages to ensure we don't send more than 512 bytes by @pajlada in #5246
- refactor: Fonts by @pajlada in #5228
- feat: add /announce[color] commands by @4rneee in #5250
- fix(channel-view): use
underlyingChannel_
overchannel_
by @Nerixyz in #5248 - fix: Compile Lua as a C library by @pajlada in #5251
- Show line indicator instead of rectangle while dragging in tables by @Nerixyz in #5252
- feat: Warn for commands with duplicate triggers by @askepticaldreamer in #4322
- Fix double click to select full words by @KleberPF in #5243
- fix: output less qt debug stuff in tests by @pajlada in #5253
- Revert "Show line indicator instead of rectangle while dragging in tables" by @Felanbird in #5255
- chore(deps): bump ZedThree/clang-tidy-review from 0.17.1 to 0.17.2 by @dependabot in #5257
- fix: create NetworkManager statics in
init()
by @Nerixyz in #5254 - refactor: adapt magic_enum to Qt by @Nerixyz in #5258
- fix: check broadcast binaries without case sensitivity by @iProdigy in #5260
- fix: Update Linux build instructions by @pajlada in #5262
- fix: remove ":" from the message the user is replying to if it's a /me message by @Heryin in #5263
- fix: add trailing space if deletion link included in image upload response by @DatGuy1 in #5269
- chore(deps): bump ZedThree/clang-tidy-review from 0.17.2 to 0.17.3 by @dependabot in #5271
- Prepare changelog for v2.5.0 release by @Felanbird in #5264
- feat: add more items in macOS menu bar by @mavjs in #5266
- fix(helix-chat): show better error messages by @Nerixyz in #5276
- ci: run clang-tidy with Qt 6 and update action by @Nerixyz in #5273
- fix: rerender when unpausing by @Nerixyz in #5265
- Add
reward.cost
reward.id
,reward.title
filter variables by @Mm2PL in #5275 - fix: override broken base sizes & scales for some Twitch emotes by @pajlada in #5279
- chore: require newline at EOF by @Nerixyz in #5278
- lua: Change CompletionRequested handler to use an event table. by @Mm2PL in #5280
- refactor: improve LuaLS generator by @Nerixyz in #5283
- fix: missing rerender on clear by @Nerixyz in #5282
- Fix some documentations & comments by @pajlada in #5286
- refactor: About page by @Nerixyz in #5287
- fix: use 3x scale factor for base size multiplier by @pajlada in #5291
- feat: report duration for multi-month anon sub gifts by @iProdigy in #5293
- fix: use login name when parsing highlights by @Nerixyz in #5295
- fix: use
deleteLater
for network objects and order them by @Nerixyz in #5297 - Release v2.5.0-beta.1 by @pajlada in #5303
- fix: hide tooltip on window leave event by @Nerixyz in #5309
- fix: the version string not showing up as expected in Finder on macOS by @nealxm in #5311
- add nealxm to contributors list by @nealxm in #5312
- chore(deps): bump DoozyX/clang-format-lint-action from 0.16.2 to 0.17 by @dependabot in #5320
- feat: include duration in more multi month gifts by @iProdigy in #5319
- Add context menu entry to toggle offline tabs by @Nerixyz in #5318
- Fix Wayland image upload crash if confirmation dialog is enabled by @pajlada in #5314
- fix: improve error messaging when pgrep fails streamer mode detection by @pajlada in #5321
- Fixed links having
http://
added to the beginning in certain cases. by @Mm2PL in #5323 - chore(deps): bump lib/settings from
ceac9c7
to70fbc72
by @dependabot in #5325 - fix: set maximum of scrollbar after filtering by @Nerixyz in #5329
- fix: don't change the topmost value of child windows by @Nerixyz in #5330
- Change order of query parameters of Twitch Player URLs. by @mavjs in #5326
- fix: Remove "Show chatter list" entry from split header menu for non-mods by @pajlada in #5336
- chore(deps): bump lib/lua/src from
e288c5a
to0897c0a
by @dependabot in #5316 - Release v2.5.0 by @pajlada in #5337
New Contributors
- @GongBingWong made their first contribution in #4848
- @libklein made their first contribution in #4854
- @h3o66 made their first contribution in #4867
- @baines made their first contribution in #4922
- @crazysmc made their first contribution in #4998
- @gremble0 made their first contribution in #5013
- @fraxxio made their first contribution in #5061
- @Manfred made their first contribution in #5148
- @KleberPF made their first contribution in #5172
- @Heryin made their first contribution in #5263
- @nealxm made their first contribution in #5311
Full Changelog: v2.4.5...v2.5.0