This is the first beta release of v2.5.5.
The full changelog can be found at https://chatterino.com/changelog#2.5.5
New Contributors
- @Nikk0o made their first contribution in #6514
- @Julia-Roman made their first contribution in #6577
- @devPoland made their first contribution in #6571
- @solomoncyj made their first contribution in #6585
- @vxtk made their first contribution in #6604
- @Juliapixel made their first contribution in #6642
- @ruinivist made their first contribution in #6710
- @SonicSegFault made their first contribution in #6725
- @Nevicar made their first contribution in #6729
- @Leafyzito made their first contribution in #6743
- @achow101 made their first contribution in #6782
Commit list
- chore: make sanitizers opt in by @pajlada in #6493
- fix: use qsizetype zerovalue instead of
0LLby @pajlada in #6483 - fix: usercard resizing improperly without recent messages by @teknsl in #6496
- ci: fix WinGet release workflow by @pajlada in #6497
- doc: fix release docs by @pajlada in #6498
- dev: find boost's CMake Config file instead of module by @pajlada in #6499
- chore(deps): bump actions/github-script from 7 to 8 by @dependabot[bot] in #6443
- chore(deps): bump actions/setup-python from 5 to 6 by @dependabot[bot] in #6442
- chore(deps): bump ncipollo/release-action from 1.18.0 to 1.20.0 by @dependabot[bot] in #6438
- chore(deps): bump codecov/codecov-action from 5.5.0 to 5.5.1 by @dependabot[bot] in #6444
- chore(deps): bump hendrikmuhs/ccache-action from 1.2.18 to 1.2.19 by @dependabot[bot] in #6460
- fix: remove QTextCodec include by @pajlada in #6487
- deps: update libcommuni and required packages by @Nerixyz in #6500
- feat: add setting for character limit of truncated deleted messages by @jacob-thompson in #6491
- fix: expose home page of badges (if available) by @Nerixyz in #6437
- chore(deps): bump lib/expected-lite from
e45e8d5toa0c4e02by @dependabot[bot] in #6478 - dev: correct handling of eventsubs without any account by @teknsl in #6503
- Refactor font update logic in SplitInput by @Obertura777 in #6473
- Add obertura777 to contributor list by @Obertura777 in #6505
- refactor: merge emote element flags by @Nerixyz in #6511
- Add support for plugin links by @Mm2PL in #6386
- chore: remove unused
Emojis::initializeby @Nerixyz in #6517 - ci(freebsd): skip imageformats install by @pajlada in #6518
- refactor: turn
EmotesintoEmoteControllerby @Nerixyz in #6516 - Enable browser integration settings on all platforms by @crazysmc in #6509
- fix: compilation error with Clang 21 by @Nerixyz in #6519
- fix: set Qt definitions
PUBLICin chatterino-lib/-version by @Nerixyz in #6520 - chore(deps): bump lib/qtkeychain from
d972099to7668a63by @dependabot[bot] in #6512 - fix: add explanation for the logging feature under moderation by @Nikk0o in #6514
- fix: warnings when compiling with Qt 6.10 by @Nerixyz in #6422
- dev: disable AppImage builds by @pajlada in #6504
- refactor: move LuaLS meta to a subdirectory by @Nerixyz in #6530
- fix: overflow when computing scrollbar rect by @Nerixyz in #6547
- fix: my changelog entries by @Nerixyz in #6550
- update miniaudio to v0.11.23 by @pajlada in #6477
- fix: prevent edit hotkey dialog opening as normal window by @jupjohn in #6540
- dev: fix Arch Linux deps by @pajlada in #6553
- fix: do forceLayoutChannelViews on font change by @teknsl in #6536
- fix: set parent for settings dialog from account switcher by @Nerixyz in #6543
- Plugin links pt 2: Link::InsertText by @Mm2PL in #6527
- fix: Get rid of warnings on clang-cl by @Nerixyz in #6528
- fix: Access correct channel in search popup by @Nerixyz in #6539
- feat: menu action to sort tabs alphabetically by @teknsl in #6551
- docs: replace debian bookworm deps with trixie by @teknsl in #6557
- fix: set windows.h definitions on
WIN32instead ofMSVCby @Nerixyz in #6534 - refactor: consolidate font picking into one dialog by @teknsl in #6531
- chore(deps): bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #6556
- chore(deps): bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #6555
- refactor(splits): Store container nodes as shared pointers by @Nerixyz in #6435
- fix(websockets): add query to URL by @Nerixyz in #6141
- cmake: use FetchContent for some dependencies by @pajlada in #6560
- chore: add mocks as header set if supported by @Nerixyz in #6561
- fix(plugins): Log potential errors in HTTP request callbacks by @Nerixyz in #6452
- fix: set stroke color when drawing restore button by @Nerixyz in #6565
- docs: create serialize/signals/settings tag on release by @pajlada in #6566
- cmake: rename RapidJSON declaration to
rjlibby @pajlada in #6567 - fix: disable package registry export by @Nerixyz in #6569
- chore(deps): bump cmake/sanitizers-cmake from
0573e2etobcb1fc6by @dependabot[bot] in #6564 - refactor(liveupdates): use
WebSocketPoolover websocketpp by @Nerixyz in #6308 - fix(wayland): use system move by @Nerixyz in #6573
- fix: certify & serialize licenses by @pajlada in #6575
- fix: add Unicode license by @pajlada in #6579
- fix: middle-clicking username in local channels by @Julia-Roman in #6577
- feat: add setting to show title in live message by @Julia-Roman in #6572
- Add Supa as a contributor by @Julia-Roman in #6580
- feat: seperate watchstreak highlights from sub highlights by @devPoland in #6571
- fix: remove dead code from watch streak highlight seperation by @devPoland in #6581
- add devPoland as contributor by @devPoland in #6582
- fix(test): Set settings directory in
Pathsby @Nerixyz in #6584 - Add solomoncyj to contributors.txt by @solomoncyj in #6585
- test(plugins): check unwinding and version by @Nerixyz in #6586
- feat(plugins): add JSON parsing/serialization by @Nerixyz in #6420
- feat: add poll and prediction commands for broadcasters by @iProdigy in #6583
- feat: add ability to limit message snapshot size by @Nerixyz in #6602
- Fix crash in notifyTwitchChannelOffline when snapshot is empty by @vxtk in #6604
- refactor: remove
LimitedQueueSnapshotby @Nerixyz in #6606 - chore(deps): bump hendrikmuhs/ccache-action from 1.2.19 to 1.2.20 by @dependabot[bot] in #6603
- chore(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #6593
- chore(deps): bump ZedThree/clang-tidy-review from 0.21.0 to 0.22.2 by @dependabot[bot] in #6601
- refactor: simplify uses of
getMessageSnapshotby @Nerixyz in #6607 - chore: disable
llvm-prefer-static-over-anonymous-namespaceby @Nerixyz in #6610 - feat: add options to close multiple visible tabs in context menu by @otaviobia in #6515
- feat: add /endpoll and /cancelpoll commands for broadcasters by @iProdigy in #6605
- chore(deps): bump lib/expected-lite from
6656728to3583e95by @dependabot[bot] in #6590 - refactor: split some highlight structs away from HighlightController by @pajlada in #6613
- set desktop-entry hint with libnotify by @teknsl in #6615
- ci: bump freebsd builder to 14.3 by @pajlada in #6621
- feat(plugins): minimal account API by @Nerixyz in #6554
- fix: wording of "close visible tabs to X" for vertical tabs by @jupjohn in #6619
- ci: add clazy by @Nerixyz in #6623
- chore(deps): bump lib/expected-lite from
588f772to83de1a2by @dependabot[bot] in #6614 - Add categories to emoji viewer by @treejadey in #6598
- feat: add /lockprediction and /cancelprediction commands for broadcasters by @iProdigy in #6612
- ci: drop Qt 6.4.3 support by @pajlada in #6628
- ci: run custom clang-tidy module by @pajlada in #6626
- ci: drop Ubuntu 20.04 support by @pajlada in #6630
- feat: show BTTV Pro badges by @Nerixyz in #6625
- feat(plugins): allow message introspection by @Nerixyz in #6353
- fix(websocket): try connecting to all hosts by @pajlada in #6631
- Add lead moderator role detection by @Juliapixel in #6642
- chore: update global badges by @jupjohn in #6643
- Add Juliapixel as contributor by @Juliapixel in #6644
- fix: save settings less often by @pajlada in #6620
- chore(eventsub): reformat
session.cppby @Nerixyz in #6646 - chore(deps): bump lib/twitch-eventsub-ws/lib/date from
a5db3aetob2e917cby @dependabot[bot] in #6634 - chore(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in #6648
- fix(SplitInput): reuse of layout creator by @pajlada in #6654
- ci: format ./twitch-eventsub-ws by @pajlada in #6647
- feat: add broadcaster-only /completeprediction command by @iProdigy in #6632
- fix: disable check-clang-tidy
nounsetcheck by @pajlada in #6658 - refactor: move Twitch PubSub to use liveupdates by @Nerixyz in #6638
- chore(deps): bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #6657
- chore(deps): bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #6656
- feat: class lead mod badge as channel authority by @jupjohn in #6665
- bump clang-tidy-review version by @pajlada in #6666
- chore(deps): bump codecov/codecov-action from 5.5.1 to 5.5.2 by @dependabot[bot] in #6639
- chore: add reuse licence checking by @pajlada in #6659
- fix(plugins): add ifdef around accounts API and ci check by @Nerixyz in #6675
- chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #6671
- chore(deps): bump dawidd6/action-download-artifact from 11 to 12 by @dependabot[bot] in #6679
- fix: get full snapshot for message timeouts by @Nerixyz in #6683
- feat: add markdown support for user notes by @jacob-thompson in #6490
- feat: add duration and title options to clip command by @iProdigy in #6669
- feat(plugins): add
debug.tracebackby @Nerixyz in #6652 - fix(macOS): command + delete by @jacob-thompson in #6676
- chore(deps): bump lib/serialize from
f4a7dbftocab49a0by @dependabot[bot] in #6672 - chore(deps): bump lib/qtkeychain from
7668a63tof73a341by @dependabot[bot] in #6673 - chore(deps): bump lib/expected-lite from
83de1a2todf58147by @dependabot[bot] in #6689 - refactor: remove use of raw nonstd:: by @pajlada in #6690
- chore: simplify
USE_ALTERNATE_LINKERcode by @pajlada in #6692 - chore: enable C++23 and prefer
std::expectedby @pajlada in #6693 - chore: don't list date/expected_lite in about page if unused by @pajlada in #6694
- chore: run clang-tidy --fix to fix explicit-this by @pajlada in #6696
- fix: qt 6.7 build on macOS by @pajlada in #6697
- fix(eventsub): add timeout to close operation by @Nerixyz in #6645
- fix: more carefully use app in NetworkPrivate/NetworkTask by @pajlada in #6698
- chore: explicitly mark licenses for script files part 1 by @pajlada in #6699
- chore: remove scripts/windows-fix-directory-case-sensitivity.sh by @pajlada in #6700
- feat: show mod/VIP badges from shared chats by @jupjohn in #6653
- feat: spellcheck input by @Nerixyz in #6446
- chore: add unit tests for XDGDirectory by @pajlada in #6701
- feat(xdg): return only base or user directories by @pajlada in #6702
- feat: linux-only system dictionary spell checking by @pajlada in #6703
- added hunspell for building deps by @killertofus in #6705
- refactor: rename Badge to TwitchBadge by @pajlada in #6706
- chore: reduce wait interval in plugin test by @pajlada in #6708
- chore: explicitly license snapshot tests as CC0-1.0 by @pajlada in #6707
- chore: clarify debug message when fetching your 7tv id by @pajlada in #6713
- feat: add filter for external badges by @pajlada in #6709
- refactor(emojis): use
std::variantandQStringViewby @Nerixyz in #6714 - fix: disable sortTabsAlphabetically when notebook layout locked (#6704) by @ruinivist in #6710
- refactor(linkparser): take string views by @Nerixyz in #6715
- ci: abort clang-tidy-review on error by @pajlada in #6717
- chore(reuse): annotate our source files with our license by @pajlada in #6719
- fix: hide bttv badge when disabling the setting by @pajlada in #6724
- feat(spellcheck): ignore links for spellchecking by @2547techno in #6722
- feat: load local directories for spellchecking by @Nerixyz in #6730
- Added support for percent-encoded url for custom player by @SonicSegFault in #6725
- Fixed Return and Enter being treated as different keys on Mac OS by @Nevicar in #6729
- Add Nevicar to contributors list by @Nevicar in #6733
- feat(spellchecking): ignore commands for spellchecking by @4rneee in #6731
- Fix highlight mentions not updating when username changes by @SonicSegFault in #6723
- chore: cleanup AccountController connections by @Nerixyz in #6735
- fix: update currently-selected username on username update by @SonicSegFault in #6739
- fix: remove unused variables by @Nerixyz in #6748
- fix: comparison of integers of different signs by @Nerixyz in #6749
- fix(http): Send multipart body for
PUTby @Nerixyz in #6746 - deps: update
miniaudioto 0.11.24 by @Nerixyz in #6754 - chore: bump changelog checker to v1.0.4 by @pajlada in #6755
- feat(plugins): read/update methods for messages in channels by @Nerixyz in #6650
- chore: remove unused
reloadChannelAndSubscriberEmotesby @Nerixyz in #6756 - feat: add split action to clear
/watchingby @Nerixyz in #6759 - refactor: move
PluginMetato its own file by @Nerixyz in #6757 - fix(liveupdates): add subscription to backlog if failed by @Nerixyz in #6763
- feat: add search engine selection and context menu search functionality by @Leafyzito in #6743
- Add Leafyzito to contributors list by @Leafyzito in #6767
- feat: add build option for freestanding text in about page by @pajlada in #6766
- added gentoo/suse build deps by @killertofus in #6718
- chore(deps): bump lib/twitch-eventsub-ws/lib/date from
b2e917cto45d4541by @dependabot[bot] in #6736 - chore(deps): bump lib/qtkeychain from
f73a341to844beb4by @dependabot[bot] in #6720 - chore: remove flatpak message by @pajlada in #6768
- ci: npx prettier instead of using unmaintained GH Action by @pajlada in #6769
- feat: add /monitor and /restrict commands for moderators by @iProdigy in #6750
- feat: add setting to search in incognito mode by @4rneee in #6770
- fix: enable mnemonics for menu hotkeys on macOS by @Leafyzito in #6778
- Refactor DebugCount by @Mm2PL in #6753
- feat(plugins): add display name change event to
Channelby @Nerixyz in #6594 - fix: update required scope list by @pajlada in #6785
- chore: update release docs by @pajlada in #6786
- chore: add tests for input highlighting by @Nerixyz in #6779
- fix(spellcheck): some chatters and emotes not ignored by @4rneee in #6780
- chore: move some
Channelsignals toTwitchChannelby @Nerixyz in #6787 - Add a countdown for slow mode and timeouts by @achow101 in #6782
- fix(send-wait): use same style as message length by @Nerixyz in #6791
- chore: update pajlada-signals, pajlada-serialize, pajlada-settings by @pajlada in #6797
- dev: specify nightly tag through cmake instead of modes file by @pajlada in #6798
- chore(deps): bump dawidd6/action-download-artifact from 12 to 14 by @dependabot[bot] in #6790
- fix: check for portable updater before running it by @Nerixyz in #6801
- fix(websockets): Close stream before attempting to connect again by @Nerixyz in #6805
- fix: incorrect deletion length in tab autocomplete when completion included emojis by @ruinivist in #6800
- refactor(websockets): Balance IPv4 and IPv6 attempts by @Nerixyz in #6804
- chore: add
CHATTERINO_FORCE_LTOby @Nerixyz in #6816 - refactor(benchmark): move recent messages app/bench to helper by @Nerixyz in #6815
- fix(liveupdates): bump connections when adding a client by @Nerixyz in #6806
- feat: allow updating from nightly to stable by @jupjohn in #6752
- chore(deps): bump dawidd6/action-download-artifact from 14 to 15 by @dependabot[bot] in #6809
- chore: update pr template for changelog testing by @pajlada in #6820
- feat: Show restore dialog when settings fail to load by @Nerixyz in #6662
- chore(deps): bump dawidd6/action-download-artifact from 15 to 16 by @dependabot[bot] in #6826
- chore(deps): bump ZedThree/clang-tidy-review from 0.23.0 to 0.23.1 by @dependabot[bot] in #6827
- chore: display follower mode duration in hours or days if possible by @Nerixyz in #6812
- chore(deps): bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #6829
- chore(deps): bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #6828
- fix(spellcheck): use input highlighter's word segmentation to find word by @Nerixyz in #6822
- chore(filters): improve test coverage and add benchmarks by @Nerixyz in #6814
- chore(spellcheck): add option to toggle suggestions by @Nerixyz in #6751
- Release v2.5.5-beta.1 by @pajlada in #6832