This is the full release of v2.5.4.
The full changelog can be found at https://chatterino.com/changelog#2.5.4
Commit list
- chore(conan): don't create
CMakeUserPresets.json
by @Nerixyz in #6117 - Fix: Don't create native messaging manifest file if browser directory doesn't exist by @4rneee in #6116
- fix(cmake): use
--force-openssl
on Qt 6.8+ by @Nerixyz in #6129 - fix: make reply-cancel button less coarse-grained by @leungbk in #6106
- make paused chat indicator more apparent by @jacob-thompson in #6123
- fix: receive bttv live updates again by @iProdigy in #6132
- fix cmd+backspace behavior in main chat dialog input by @jacob-thompson in #6111
- Fixes #3545 Allow disabling fading recent messages by @fourtf in #6121
- fix: allow scrolling by inputs in settings by @Nerixyz in #6128
- fix: missing space char in settings by @mastondzn in #6134
- feat(plugins): add
c2.WebSocket
by @Nerixyz in #6076 - fix: complete Twitch commands with slash by @Nerixyz in #6143
- Only draw outline for overlay when hovered over by @teknsl in #6140
- Add cached emotes fallback for failed provider fetches by @occluder in #6125
- fix: don't clear message when closing reply by @pajlada in #6145
- Add occluder to contributors list by @occluder in #6149
- refactor: split by @pajlada in #6148
- fix: add more image sizes to shared chat badge by @Nerixyz in #6146
- Feat: (Linux) Themes allow transparency on chat windows background by @apa420 in #6137
- Feature/user notes Fixes #2413 by @fourtf in #6122
- fix: split drag & drop on KDE Plasma by @pajlada in #6147
- feat: make filters searchable with Settings dialog search by @apa420 in #5890
- chore(deps): bump ZedThree/clang-tidy-review from 0.20.1 to 0.21.0 by @dependabot[bot] in #6142
- chore(deps): bump lib/expected-lite from
54ca18b
to194b3f6
by @dependabot[bot] in #6089 - chore(deps): bump lib/twitch-eventsub-ws/lib/date from
d18e8b1
toa45ea7c
by @dependabot[bot] in #6112 - fix: don't include
.inc
in outputs by @Nerixyz in #6154 - fix: handle
aboutToQuit()
by @Nerixyz in #6159 - refactor: trim down PubSub implementation by @Nerixyz in #6158
- fix: use qlogging in eventsub lib (through a hoop) by @pajlada in #6161
- feat(6156): disable tab renaming on double-click via setting by @jupjohn in #6163
- chore(deps): bump lib/settings from
c141a40
to104e1c8
by @dependabot[bot] in #6150 - chore(deps): bump lib/qtkeychain from
ad7344c
to35c4f40
by @dependabot[bot] in #6135 - chore(deps): bump codecov/codecov-action from 5.4.0 to 5.4.2 by @dependabot[bot] in #6152
- feat: update emojis to Unicode 16.0 by @Nerixyz in #6155
- fix: emote popup logging messages to "Other" directory by @pajlada in #6165
- chore(deps): bump DoozyX/clang-format-lint-action from 0.18 to 0.20 by @dependabot[bot] in #6151
- chore: re-export Qt's string literals by @Nerixyz in #6175
- chore: bump deprecated cutoff to Qt 6.4.3 by @Nerixyz in #6169
- dep: update googletest to v1.17.0 by @pajlada in #6180
- fix: don't include blocked users in join/part messages by @pajlada in #6181
- refactor(TwitchAccount): mostly include cleanup by @pajlada in #6182
- feat: add tooltip for rename on double-click setting by @jupjohn in #6184
- chore(deps): bump hendrikmuhs/ccache-action from 1.2.16 to 1.2.18 by @dependabot[bot] in #6179
- chore(deps): bump jurplel/install-qt-action from 4.1.1 to 4.2.1 by @dependabot[bot] in #6170
- chore: bump settings version by @pajlada in #6185
- Do not hide WebSocket API when missing permission by @Mm2PL in #6186
- feat: run-and-kill script by @pajlada in #6188
- refactor(WindowManager): remove some
getApp
uses by @pajlada in #6194 - Add hotkey action for opening account switcher by @teknsl in #6192
- fix(plugins): TSTL
HTTPRequest.create
generation by @2547techno in #6190 - feat(uploader): extend JSON selectors by @Nerixyz in #6193
- refactor: fix some spelling mistakes by @pajlada in #6196
- fix: crash that could occur when force-closing 7tv/bttv live updates by @pajlada in #6197
- refactor: move event api initializations to TwitchIrcServer by @pajlada in #6198
- feat: make Nicknames searchable with settings dialog search bar by @apa420 in #5886
- docs: update natvis repo by @Nerixyz in #6202
- use
QMetaObject::invokeMethod
to post to thread by @pajlada in #6203 - fix: send weak ptr to session's checkKeepalive timer by @pajlada in #6204
- chore(deps): bump lib/WinToast from
1c841d3
to11e76e5
by @dependabot[bot] in #6090 - chore(deps): bump codecov/codecov-action from 5.4.2 to 5.4.3 by @dependabot[bot] in #6211
- chore: remove bad event api init comments by @pajlada in #6212
- fix: don't construct images after we're quitting by @pajlada in #6213
- attempt to fix crashes on exit by @pajlada in #6187
- refactor(notebook): merge top/bottom and left/right layout by @Nerixyz in #6215
- refactor: use std::_Exit in rungui instead of _exit by @pajlada in #6218
- refactor: move
TimeoutStackStyle
to its own file by @pajlada in #6216 - refactor: move Notebook enums to their own file by @pajlada in #6220
- refactor: remove Application.hpp dependency in Plugin.hpp by @pajlada in #6219
- Forward declare some things to speed up compile by @Mm2PL in #6162
- Fix plugin docs: HTTPRequest enum by @ynot01 in #6225
- Add ynot01 to contributors list by @ynot01 in #6226
- fix: crash on older versions of Qt by @pajlada in #6229
- refactor: floatify messages by @Nerixyz in #6231
- fix(plugins): TSTL static method generation by @2547techno in #6223
- refactor: buttons by @Nerixyz in #6102
- fix: don't indent inner namespaces by @pajlada in #6235
- chore: require clang-format 19 by @Nerixyz in #6236
- fix(once-flag): make
flag
atomic by @Nerixyz in #6237 - chore: update .git-blame-ignore-revs by @pajlada in #6239
- feat: add support for automatic streamer mode check from flatpak by @ilya-zlobintsev in #6250
- chore(deps): bump lib/twitch-eventsub-ws/lib/date from
a45ea7c
to6d7739e
by @dependabot[bot] in #6252 - fix: use integers for message layout bounds by @Nerixyz in #6254
- fix(button): use DPR for cached pixmap scale by @Nerixyz in #6255
- chore(deps): bump dawidd6/action-download-artifact from 9 to 10 by @dependabot[bot] in #6246
- chore(deps): bump lib/qtkeychain from
35c4f40
tod972099
by @dependabot[bot] in #6247 - chore(deps): bump lib/expected-lite from
194b3f6
tof17940f
by @dependabot[bot] in #6251 - chore(deps): bump lib/settings from
0a47aa7
to9b5c05e
by @dependabot[bot] in #6222 - feat: implement display name specializations for enums by @pajlada in #6238
- Move EventSub Python test to a separate GitHub Actions workflow by @iZarrios in #6260
- refactor: Make Account & Settings buttons SVGs by @pajlada in #6267
- fix(clang-tidy): modernize-type-traits by @pajlada in #6269
- fix(clang-tidy): modernize-use-std-numbers by @pajlada in #6270
- feat: setting to change emote/badge thumbnail size by @4rneee in #6126
- fix: stop click when dragging over notebook buttons by @Nerixyz in #6266
- fix context menu extra option to reply to invalid messages by @hemirt in #6119
- fix: ensure twitchchannel dtor doesn't do stuff if we're quitting by @pajlada in #6271
- fix: don't post contents of unknown commands to chat by @pajlada in #6272
- fix(clang-tidy): modernize-raw-string-literal by @pajlada in #6274
- fix(clang-tidy): performance-for-range-copy by @pajlada in #6275
- fix: explicitly queue forced layouts by @Nerixyz in #6278
- Remove duplication of openssl by @SimplyCrow in #6280
- feat: optionally parallelize
clang-format-all.sh
by @pajlada in #6281 - chore: slight restructuring of
check-clang-tidy.sh
by @pajlada in #6282 - fix: update lineedit if setting changed externally by @pajlada in #6286
- chore(deps): bump dawidd6/action-download-artifact from 10 to 11 by @dependabot[bot] in #6276
- chore(deps): bump jurplel/install-qt-action from 4.2.1 to 4.3.0 by @dependabot[bot] in #6261
- refactor: remove now-unused SettingPage::createLineEdit by @pajlada in #6290
- fix: don't try to save emote popup bounds when we're quitting by @pajlada in #6292
- fix:
SettingWidget::dropdown
not working well on enums with value gaps by @pajlada in #6293 - refactor: use
SettingWidget::dropdown
for emoji style by @pajlada in #6300 - fix: middle & right click buttons not working on
Button
class by @pajlada in #6302 - Add svg recreation of logo to
resources
by @treejadey in #6296 - feat: add SettingWidget::dropdown support for int style enums by @pajlada in #6303
- refactor: remove unused ignoredPhraseReplace setting by @pajlada in #6304
- feat: add REPL for plugins by @Nerixyz in #6120
- fix: don't autocomplete commands mid-sentence by @pajlada in #6273
- feat(SvgButton): Allow custom color by @pajlada in #6268
- refactor: remove GeneralPageView.addCheckbox by @pajlada in #6305
- refactor: remove GeneralPageView.addIntInput by @pajlada in #6306
- fix(OnceFlag): add
isSet
and check before waiting by @Nerixyz in #6316 - fix(plugins): check websocket callbacks before calling by @Nerixyz in #6314
- chore(deps): bump ncipollo/release-action from 1.16.0 to 1.18.0 by @dependabot[bot] in #6309
- chore(deps): bump lib/twitch-eventsub-ws/lib/date from
6d7739e
to229c687
by @dependabot[bot] in #6310 - feat(WebSocket): add open event by @Nerixyz in #6315
- Fix eventsub message delete disable by @Mm2PL in #6233
- chore(deps): bump lib/expected-lite from
f17940f
toe45e8d5
by @dependabot[bot] in #6298 - chore: factor out AUMID creation by @Nerixyz in #6321
- fix: correctly override user color in sub gifts by @pajlada in #6322
- fix: correctly color usernames in most other notice scenarios by @pajlada in #6323
- fix: elide user notes by @pajlada in #6318
- some more small settingwidget refactors by @pajlada in #6317
- fix: relayout notebook if any custom buttons change by @pajlada in #6328
- Enhancement: add image uploader settings import/export functionality by @knobby-tires in #6284
- Add knobby-tires to contributors list by @knobby-tires in #6329
- fix: allow messages of just dots by @Nerixyz in #6330
- fix(clang-cl): reduce warnings in tests by @Nerixyz in #6331
- fix: Fix a crash that would occur on exit if a ping sound played recently by @pajlada in #6332
- chore: add some channel view layout commands by @Nerixyz in #6342
- fix: don't detach threads by @pajlada in #6333
- fix: Re-set SVG renderer aspect ratio after load by @pajlada in #6334
- chore(deps): bump lib/twitch-eventsub-ws/lib/date from
229c687
toe32a0d8
by @dependabot[bot] in #6324 - Adding option to customize log file timestamps. by @droidicus in #6338
- feat: Search commandpage [8/9] by @apa420 in #5891
- Adding droidicus to contributors list by @droidicus in #6347
- fix: more gently quit eventsub thread by @pajlada in #6136
- feat: add optional improved text wrapping by @Nerixyz in #6265
- fix: Fix searching in emote popup if not in a twitch channel by @vincent0955 in #6357
- feat: show text if emote failed to load by @Nerixyz in #6355
- fix: split header "add split" button inconsistency by @pajlada in #6349
- Add vincent0955 to contributors list by @vincent0955 in #6360
- chore: Update vcpkg baseline by @ScrubN in #6359
- Add option to use server timestamp from the message instead of the local clock time for logging. by @droidicus in #6346
- refactor(SettingWidget): use custom setting widgets by @pajlada in #6361
- feat(plugins): add basic message construction by @Nerixyz in #5754
- refactor: make chatter list its own widget by @pajlada in #6365
- fix: tabular number message length by @pajlada in #6366
- chore: modify text & tooltip for colon completion setting by @pajlada in #6370
- chore: use DrawnButton instead of NotebookButton by @pajlada in #6371
- chore: make split header menu button drawn by @pajlada in #6372
- fix(settings): prevent command triggers from being elided by @jupjohn in #6369
- feat: dynamically track mutability of messages by @Nerixyz in #6367
- Stop sending
JOIN
/PART
commands for channels starting with/
by @Mm2PL in #6376 - fix: better handle Windows shutting down in newer Qt versions by @pajlada in #6368
- fix(plugins): lookup by main lua state in http request by @Nerixyz in #6375
- fix: do full update on invalidation and theme change by @Nerixyz in #6373
- Add emote completion widget filter for only zero-width emotes using :~ by @droidicus in #6362
- fix: don't use same websocket connection for multiple accounts by @pajlada in #6348
- fix: hide lines in search by @pajlada in #6381
- chore(deps): bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #6374
- fix: only upload codecov on main repo by @Nerixyz in #6391
- test: Add snapshot tests for imageuploader import/export by @Nerixyz in #6394
- chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #6388
- fix note/description not filtering in/out when it should by @hemirt in #6389
- chore(deps): bump lib/twitch-eventsub-ws/lib/date from
e32a0d8
toa5db3ae
by @dependabot[bot] in #6390 - fix: take handler for
sol_lua_check
as function reference by @Nerixyz in #6393 - feat: show live indicator in usercard by @Nerixyz in #6383
- fix: stop resize when ctrl is released by @pajlada in #6396
- fix: svgify user card pin button by @jupjohn in #6399
- feat: add tooltips with follow/sub durations to usercard by @Nerixyz in #6384
- fix: svgify chatters button by @pajlada in #6397
- fix: svgify moderation button by @pajlada in #6398
- feat: pulse split input on self message received by @pajlada in #6380
- fix: make moderation button pretty by @pajlada in #6412
- fix: update input size on completion by @Nerixyz in #6411
- chore: consolidate twitch URLs with www by @cqttv in #6407
- chore(deps): bump codecov/codecov-action from 5.4.3 to 5.5.0 by @dependabot[bot] in #6410
- fix: notes behavior on users with no id by @isgkm in #6413
- feat: Add
Open in custom player
totwitch.tv/<channel>
link context menus by @brian6932 in #6403 - fix: reduce visual "insetting" of new enabled moderation icon by @jupjohn in #6414
- fix: self drawn add button alignment and color by @Nerixyz in #6385
- fix: Twitch dropping
MAGIC_MESSAGE_SUFFIX
by @brian6932 in #6417 - fix: make notebook add button 1dp smaller on all sides by @Nerixyz in #6423
- Add isgkm to contributors list by @isgkm in #6425
- fix(plugin-repl): add padding to pin button by @Nerixyz in #6426
- ci: remove invalid
strategy
and guard winget/homebrew to main repo by @Nerixyz in #6427 - fix: image uploader setting import by @x3rt in #6387
- Release v2.5.4-beta.1 by @pajlada in #6419
- ci(macos): use locally installed version of cmake by @pajlada in #6430
- Release v2.5.4-beta.1 by @pajlada in #6431
- fix: mark global BTTV emotes as zero-width at creation by @Nerixyz in #6440
- fix(plugins): handle non-string errors gracefully by @Nerixyz in #6441
- fix: relayout tabs when update button visibility changes by @pajlada in #6447
- fix: mouse over tooltips by @2547techno in #6451
- fix: notebook custom button resizing/layout by @pajlada in #6453
- fix: restore missing moderation icon by @otaviobia in #6457
- Add otaviobia to contributors list by @otaviobia in #6459
- docs(plugins): add documentation for WebSockets by @Nerixyz in #6432
- fix(plugins): Implement
__eq
forChannel
by @Nerixyz in #6456 - ci(macos): codesign with a hardened runtime by @pajlada in #6467
- fix(macos): check selection in cmd+backspace by @Nerixyz in #6469
- fix: don't set split focus hotkeys by default on macOS by @jacob-thompson in #6470
- fix: log deletion messages to file log by @jupjohn in #6465
- fix: update input fonts on fontChanged signal by @Obertura777 in #6462
- Update release documentation by @pajlada in #6472
New Contributors
- @leungbk made their first contribution in #6106
- @mastondzn made their first contribution in #6134
- @occluder made their first contribution in #6125
- @ynot01 made their first contribution in #6225
- @iZarrios made their first contribution in #6260
- @SimplyCrow made their first contribution in #6280
- @knobby-tires made their first contribution in #6284
- @droidicus made their first contribution in #6338
- @vincent0955 made their first contribution in #6357
- @cqttv made their first contribution in #6407
- @isgkm made their first contribution in #6413
- @x3rt made their first contribution in #6387
- @otaviobia made their first contribution in #6457
- @Obertura777 made their first contribution in #6462