VoiceOfGrog and GitHub
0da2c452ba
Add voiceofgrog to contributors list ( #7154 )
...
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-08-03 17:17:46 +02:00
f6be3003ed
fix: add missing ellipsis to menu items that open dialogs ( #6858 )
...
Added missing ellipsis (…) to menu items that open a dialog requiring
user input,
following standard HIG conventions.
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com >
Tested-by: voiceofgrog
2026-08-02 11:19:08 +00:00
pajlada and GitHub
1ab17263a0
chore: update contributor documentation ( #7130 )
2026-08-02 10:04:38 +00:00
pajlada and GitHub
9fc250a74a
fix: unlock badge sets map before calling pending callbacks ( #7148 )
2026-08-01 14:31:57 +00:00
pajlada and GitHub
dafbbcb608
chore: scaffold setting migration system ( #7144 )
2026-08-01 13:58:22 +00:00
pajlada and GitHub
bac63c22d1
eventsub: add some logging when privileges change ( #7143 )
2026-08-01 13:05:24 +00:00
Arne and GitHub
3168fbde61
fix: make Notebook::findItem safe ( #7137 )
...
Reviewed-by: Nerixyz <nerixdev@outlook.de >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-08-01 12:15:50 +00:00
Nerixyz and GitHub
a5117a9c33
build(windows): Enable segment heap if possible ( #7142 )
...
With Visual Studio 2026 18.6, Microsoft included a script to easily
enable the segment heap for apps
([blog](https://devblogs.microsoft.com/cppblog/segment-heap-support-for-c-projects-in-visual-studio/ )).
The segment heap was already available for some years, but it hasn't
been enabled by default. With the provided script we can add a manifest
to enable it. In my basic testing it reduced the memory usage from
~75MiB to ~70MiB with one tab and 4 messages. So it should be a free win
for us.
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-08-01 11:32:29 +00:00
Nerixyz and GitHub
e36ec74f07
refactor: move JSON serialization to descriptors ( #7138 )
...
The last main part from #6906 : Produce the JSON in the descriptors
instead of in the window layout. This mainly moves the content from
`encodeNodeRecursively` into `toJson` functions on the descriptors.
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-08-01 10:48:24 +00:00
pajlada and GitHub
3cfdb3b47e
chore: label "double click links" setting as pause ( #7141 )
...
helps make sure it shows up when searching for "pause" in the settings dialog
2026-07-29 11:27:48 +00:00
Nerixyz and GitHub
772c291196
deps: Update libcommuni and use Communi::TagsRef ( #7134 )
...
This updates `libcommuni` to include
https://github.com/Chatterino/libcommuni/pull/13 which refactors the tag
handling (see PR for the reasons).
The only change here is the replacement of the map and the lookup
functions.
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-26 17:23:17 +00:00
Nerixyz and GitHub
1e5dd7363b
feat: Set window roles for session restoration ( #7058 )
...
This sets the window roles for our windows similar to what I described
in #6655 . All roles are prefixed with `chatterino.` to avoid collision
in the case where we're embedded.
- Main Window: `chatterino.main`
- Popups: `chatterino.popup.{id}`
- Emote popup: `chatterino.emote-popup`
- Settings: `chatterino.settings`
- Overlay: `chatterino.overlay`
Right now, you need to pass `-session {session-id}_0` when starting, but
I hope future Qt versions add a way to set the session ID after the
`QGuiApplication` is created. Note that because of this, restoration
won't work out of the box. That's expected. You can see the session
status in the logs of `qt.qpa.wayland`.
Tested with KDE 6.7 and Qt 6.12-beta1.
Closes #6655 .
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
Reviewed-by: Mm2PL <mm2pl+gh@kotmisia.pl >
2026-07-26 13:24:37 +00:00
pajlada and GitHub
b97457297b
fix: remove hype chat functionality ( #7136 )
...
Hype Chat was deprecated by Twitch in 2023
Parent-pr: 6695
2026-07-26 14:47:08 +02:00
pajlada and GitHub
61ea0fde5c
refactor: make env::readBool public ( #7135 )
...
Parent-pr: 6695
2026-07-26 11:26:52 +00:00
Nerixyz and GitHub
45f98a71b0
refactor(window-layout): Build descriptor for serializing ( #7092 )
...
It's useful for other components to get a split descriptor from a split
(e.g. chatterino-embed). To avoid differences between the descriptor and
the JSON output (e.g. adding a field to the split data), this makes the
descriptor mandatory. Instead of going `SplitContainer* -> JSON`, we do
`SplitContainer* -> NodeDescriptor -> JSON`. In a followup, I'm going to
add `*Descriptor::toJSON`.
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-26 10:34:56 +00:00
Nerixyz and GitHub
8f84483330
feat: improve memory usage of FFZ badges ( #7126 )
...
FFZ badges consume a decent amount of memory in Chatterino. Before this
PR, they consumed 18.4 MiB.
We can do two cheap optimizations that cut the use in half:
- Use [`QVarLengthArray`](https://doc.qt.io/qt-6/qvarlengtharray.html )
to store the badges for a user instead of `std::set`. `std::set` always
allocates, even if there's only one badge. Since most users only have
one, we create many small allocations. With `QVarLengthArray<T, N>`, `N`
elements are stored inline. This reduced the memory usage to 11.9 MiB.
- Use `boost::unordered_flat_map` instead of `std::unordered_map`.
Because of relaxed requirements for the Boost map, it doesn't need to
store as much auxiliary data. This reduced the memory usage to 9.3 MiB.
A further optimization could be the use of a
`boost::container::flat_multimap<std::string, int>`. This gets us to 4.6
MiB. I haven't measured the performance of this. We'd have to assume
that FFZ returns us unique users per badge. The comparison with
`QString` for the lookup can be done by comparing `QString <
QLatin1StringView` (as we know badge IDs are latin1).
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-25 15:30:52 +00:00
5cee1b78d1
ci: bump Chatterino/msvc-dev-cmd from 2.0.5 to 2.0.7 ( #7101 )
...
Bumps
[Chatterino/msvc-dev-cmd](https://github.com/chatterino/msvc-dev-cmd )
from 2.0.5 to 2.0.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/chatterino/msvc-dev-cmd/releases ">Chatterino/msvc-dev-cmd's
releases</a>.</em></p>
<blockquote>
<h2>v2.0.6</h2>
<h2>What's Changed</h2>
<ul>
<li>Remove amd64_arm from build workflow by <a
href="https://github.com/Wissididom "><code>@Wissididom</code></a> in <a
href="https://redirect.github.com/Chatterino/msvc-dev-cmd/pull/3 ">Chatterino/msvc-dev-cmd#3</a></li>
<li>Update some ilammy's to Chatterino in README.md by <a
href="https://github.com/Wissididom "><code>@Wissididom</code></a> in <a
href="https://redirect.github.com/Chatterino/msvc-dev-cmd/pull/2 ">Chatterino/msvc-dev-cmd#2</a></li>
<li>Use a PowerShell composite action instead of NodeJS by <a
href="https://github.com/Wissididom "><code>@Wissididom</code></a> in <a
href="https://redirect.github.com/Chatterino/msvc-dev-cmd/pull/5 ">Chatterino/msvc-dev-cmd#5</a></li>
<li>Normalize indentations to 4 spaces by <a
href="https://github.com/Wissididom "><code>@Wissididom</code></a> in <a
href="https://redirect.github.com/Chatterino/msvc-dev-cmd/pull/6 ">Chatterino/msvc-dev-cmd#6</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Chatterino/msvc-dev-cmd/compare/v2.0.5...v2.0.6 ">https://github.com/Chatterino/msvc-dev-cmd/compare/v2.0.5...v2.0.6 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Chatterino/msvc-dev-cmd/commit/5e15a285487363708f5bc6a135fd434bd20d22a6 "><code>5e15a28</code></a>
Normalize indentations to 4 spaces (<a
href="https://redirect.github.com/chatterino/msvc-dev-cmd/issues/6 ">#6</a>)</li>
<li><a
href="https://github.com/Chatterino/msvc-dev-cmd/commit/7e0343fa431e4345b6215a4c2681980c3602f67f "><code>7e0343f</code></a>
Use a PowerShell composite action instead of NodeJS (<a
href="https://redirect.github.com/chatterino/msvc-dev-cmd/issues/5 ">#5</a>)</li>
<li><a
href="https://github.com/Chatterino/msvc-dev-cmd/commit/ca6e1c6fe2653f6fae90ebd04d38fced8b53259e "><code>ca6e1c6</code></a>
docs: update some ilammy's to Chatterino in README.md (<a
href="https://redirect.github.com/chatterino/msvc-dev-cmd/issues/2 ">#2</a>)</li>
<li><a
href="https://github.com/Chatterino/msvc-dev-cmd/commit/579e4881d4df6b285c4f683fc07fc8f19006977d "><code>579e488</code></a>
ci: remove amd64_arm from build workflow (<a
href="https://redirect.github.com/chatterino/msvc-dev-cmd/issues/3 ">#3</a>)</li>
<li>See full diff in <a
href="https://github.com/chatterino/msvc-dev-cmd/compare/v2.0.5...v2.0.6 ">compare
view</a></li>
</ul>
</details>
<br />
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com >
2026-07-25 14:40:14 +00:00
d64ad573d8
ci: bump actions/setup-python from 6 to 7 ( #7123 )
...
Bumps [actions/setup-python](https://github.com/actions/setup-python )
from 6 to 7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-python/releases ">actions/setup-python's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements</h3>
<ul>
<li>Migrate to ESM and upgrade dependencies by <a
href="https://github.com/priyagupta108 "><code>@priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1330 ">actions/setup-python#1330</a></li>
<li>Pin SHA commits and update docs with latest versions by <a
href="https://github.com/HarithaVattikuti "><code>@HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1338 ">actions/setup-python#1338</a></li>
<li>Remove the pip-install input by <a
href="https://github.com/gowridurgad "><code>@gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/1336 ">actions/setup-python#1336</a></li>
</ul>
<h3>Bug Fix</h3>
<ul>
<li>Fix to Classify stderr warning messages as warnings instead of
errors in annotations by <a
href="https://github.com/lmvysakh "><code>@lmvysakh</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1335 ">actions/setup-python#1335</a></li>
<li>Validate and retry manifest fetch to prevent silent failures by <a
href="https://github.com/priyagupta108 "><code>@priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1332 ">actions/setup-python#1332</a></li>
</ul>
<h3>Dependency Upgrade</h3>
<ul>
<li>Bump certifi from 2020.6.20 to 2024.7.4 in
/<strong>tests</strong>/data by <a
href="https://github.com/dependabot "><code>@dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1328 ">actions/setup-python#1328</a></li>
<li>Remove EOL Python versions and Bumps numpy text fixture by <a
href="https://github.com/priya-kinthali "><code>@priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1333 ">actions/setup-python#1333</a></li>
<li>Upgrade <code>@actions/cache</code> to 6.2.0 by <a
href="https://github.com/philip-gai "><code>@philip-gai</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1337 ">actions/setup-python#1337</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/lmvysakh "><code>@lmvysakh</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1335 ">actions/setup-python#1335</a></li>
<li><a
href="https://github.com/philip-gai "><code>@philip-gai</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1337 ">actions/setup-python#1337</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v6...v7.0.0 ">https://github.com/actions/setup-python/compare/v6...v7.0.0 </a></p>
<h2>v6.3.0</h2>
<h2>What's Changed</h2>
<h3>Enhancement</h3>
<ul>
<li>Add RHEL support and include Linux distro in cache keys by <a
href="https://github.com/priyagupta108 "><code>@priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1323 ">actions/setup-python#1323</a></li>
<li>Fix pip cache error handling on Windows by <a
href="https://github.com/priyagupta108 "><code>@priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1040 ">actions/setup-python#1040</a></li>
</ul>
<h3>Dependency update</h3>
<ul>
<li>Upgrade minimatch from 3.1.2 to 3.1.5 by <a
href="https://github.com/dependabot "><code>@dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1281 ">actions/setup-python#1281</a></li>
<li>Upgrade actions dependencies by <a
href="https://github.com/gowridurgad "><code>@gowridurgad</code></a>
with <a href="https://github.com/Copilot "><code>@Copilot</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/1303 ">actions/setup-python#1303</a></li>
<li>Upgrade <code>@actions/cache</code> to 5.1.0, log cache write
denied by <a
href="https://github.com/jasongin "><code>@jasongin</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1324 ">actions/setup-python#1324</a></li>
<li>Upgrade dependency versions and test workflow configuration by <a
href="https://github.com/HarithaVattikuti "><code>@HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1322 ">actions/setup-python#1322</a></li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update advanced-usage.md by <a
href="https://github.com/Dunky-Z "><code>@Dunky-Z</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/811 ">actions/setup-python#811</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/gowridurgad "><code>@gowridurgad</code></a>
with <a href="https://github.com/Copilot "><code>@Copilot</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1303 ">actions/setup-python#1303</a></li>
<li><a href="https://github.com/jasongin "><code>@jasongin</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1324 ">actions/setup-python#1324</a></li>
<li><a href="https://github.com/Dunky-Z "><code>@Dunky-Z</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/811 ">actions/setup-python#811</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v6.2.0...v6.3.0 ">https://github.com/actions/setup-python/compare/v6.2.0...v6.3.0 </a></p>
<h2>v6.2.0</h2>
<h2>What's Changed</h2>
<h3>Dependency Upgrades</h3>
<ul>
<li>Upgrade dependencies to Node 24 compatible versions by <a
href="https://github.com/salmanmkc "><code>@salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1259 ">actions/setup-python#1259</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-python/commit/5fda3b95a4ea91299a34e894583c3862153e4b97 "><code>5fda3b9</code></a>
Pin SHA commits and update docs with latest versions (<a
href="https://redirect.github.com/actions/setup-python/issues/1338 ">#1338</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/4ab7e95f05e168b4356aebde89dd84f59c283d8e "><code>4ab7e95</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/setup-python/issues/1337 ">#1337</a>
from actions/philip-gai/bump-actions-cache-6-2-0</li>
<li><a
href="https://github.com/actions/setup-python/commit/0f3a009f475dbea83c0371cd85d099690fee8c5c "><code>0f3a009</code></a>
Remove the pip-install input (<a
href="https://redirect.github.com/actions/setup-python/issues/1336 ">#1336</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/f8cf4291c8b8e273ddd26e569454615c7315d932 "><code>f8cf429</code></a>
Migrate to ESM and upgrade dependencies (<a
href="https://redirect.github.com/actions/setup-python/issues/1330 ">#1330</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/54baeea5b34417d10a7479663a23cca53ea209b5 "><code>54baeea</code></a>
Validate and retry manifest fetch to prevent silent failures (<a
href="https://redirect.github.com/actions/setup-python/issues/1332 ">#1332</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/c7092773a316760f4ecfe498e4af668a4dafeac5 "><code>c709277</code></a>
Annotation code fix (<a
href="https://redirect.github.com/actions/setup-python/issues/1335 ">#1335</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/6849080452e69b330395e8a6d23cf90f56d76a1a "><code>6849080</code></a>
remove EOL Python versions and Bumps numpy text fixture (<a
href="https://redirect.github.com/actions/setup-python/issues/1333 ">#1333</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/0903b469fbf4441aadfe4f4b249dc5b1fba3a73e "><code>0903b46</code></a>
Bump certifi from 2020.6.20 to 2024.7.4 in /<strong>tests</strong>/data
(<a
href="https://redirect.github.com/actions/setup-python/issues/1328 ">#1328</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/setup-python/compare/v6...v7 ">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-25 14:35:11 +02:00
544c5903af
ci: bump vmactions/freebsd-vm from 1.5.0 to 1.5.2 ( #7119 )
...
Bumps [vmactions/freebsd-vm](https://github.com/vmactions/freebsd-vm )
from 1.5.0 to 1.5.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vmactions/freebsd-vm/releases ">vmactions/freebsd-vm's
releases</a>.</em></p>
<blockquote>
<h2>v1.5.2</h2>
<p>reduce image sizes.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/vmactions/freebsd-vm/compare/v1...v1.5.2 ">https://github.com/vmactions/freebsd-vm/compare/v1...v1.5.2 </a></p>
<h2>v1.5.1</h2>
<p>The prepare step (installing packages etc.) normally runs on every
build. With cache-after-prepare: true, the action shuts the VM down
cleanly after prepare has finished, caches the prepared VM image, and
boots the VM again before run. Later runs with the same prepare script
restore the prepared image, skip prepare entirely, and start directly at
run</p>
<p><a
href="https://github.com/vmactions/freebsd-vm#10-cache-the-vm-image-after-prepare ">https://github.com/vmactions/freebsd-vm#10-cache-the-vm-image-after-prepare </a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/vmactions/freebsd-vm/compare/v1...v1.5.1 ">https://github.com/vmactions/freebsd-vm/compare/v1...v1.5.1 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/77ed28d336d03fe19a3f4f7266c1d2c4714dd79d "><code>77ed28d</code></a>
Update vmactions/freebsd-vm from base-vm</li>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/7e4394ceec879179f8c566de645663ea497fc2a7 "><code>7e4394c</code></a>
Generated from base-vm</li>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/1943f6c7798721062c79065c2fff836250b050fc "><code>1943f6c</code></a>
Update vmactions/freebsd-vm from base-vm</li>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/df48c4d9631e2adc7580787adba929840803f295 "><code>df48c4d</code></a>
Generated from base-vm</li>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/857a4066240a8bc5a148fed1f954a4be8419d909 "><code>857a406</code></a>
fix for image size</li>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/b05c66399774471f70a8d6bcca5e3043ae9ac5f4 "><code>b05c663</code></a>
Update version to v1.5.1</li>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/a46f291854f624412f94e37b2e6ba64bdb52b5dd "><code>a46f291</code></a>
Update vmactions/freebsd-vm from base-vm</li>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/9f53bb3f0e92d93ea182d74a934572b6223d2763 "><code>9f53bb3</code></a>
Generated from base-vm</li>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/cc38efae1744a90315f43bd85e49116af72320fa "><code>cc38efa</code></a>
Update version to v1.5.0</li>
<li><a
href="https://github.com/vmactions/freebsd-vm/commit/0eea5137bc632b845b6194e80c74c373e0d617ac "><code>0eea513</code></a>
Update vmactions/freebsd-vm from base-vm</li>
<li>Additional commits viewable in <a
href="https://github.com/vmactions/freebsd-vm/compare/v1.5.0...v1.5.2 ">compare
view</a></li>
</ul>
</details>
<br />
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com >
2026-07-25 11:41:53 +00:00
aba6e69fb1
ci: bump lib/twitch-eventsub-ws/lib/date from 7875f43 to 179a6b9 ( #7129 )
...
Bumps
[lib/twitch-eventsub-ws/lib/date](https://github.com/HowardHinnant/date )
from `7875f43` to `179a6b9`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/HowardHinnant/date/commit/179a6b921ccd6179b5b04dce812a89f71a51b4df "><code>179a6b9</code></a>
Update remote_version to new website</li>
<li>See full diff in <a
href="https://github.com/HowardHinnant/date/compare/7875f43aa9288d176191c83e8284d61acdd5ab7c...179a6b921ccd6179b5b04dce812a89f71a51b4df ">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-25 12:48:19 +02:00
Nerixyz and GitHub
6de0516c66
fix(windows): deploy OpenSSL TLS plugin ( #7125 )
...
Since #7009 , our Windows nightly builds were missing the OpenSSL TLS
plugin for Qt. Qt 6.8+ only deploys the OpenSSL plugin if it sees
`libcrypto.dll` or `libssl.dll`. However, our OpenSSL is named
`lib{ssl,crypto}-3-x64.dll`. `--force-openssl` will deploy the SSL
plugin regardless.
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-22 14:49:52 +02:00
Nerixyz and GitHub
b2f1e12e62
tests: increase wait and timeout in OnceFlag.waitFor ( #7121 )
...
In hopes to not land a PR for #7116 , this increases the wait + timeout
as described in
https://github.com/Chatterino/chatterino2/issues/7116#issuecomment-5015316981 .
I think the issue is that macOS runners on GitHub Actions are so
incredibly slow sometimes that we get these weird timings. And if that's
the cause, the overhead (e.g. from switching tasks) should be constant.
Then, if we increase the wait and timeout, we also increase the accepted
jitter (timeout - wait) from 100ms to 1s. So if the lag we get is at
about 150ms, that is now accepted.
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-20 16:59:09 +00:00
ExeArco and GitHub
d9886c8840
accounts: add visual indicator for login expiry ( #6919 )
...
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-19 18:43:11 +00:00
Arne and GitHub
d6c8bdde61
emotepopup: search by tags and original name ( #7077 )
...
Search by tags with `tags:forsen`
Search by tags & name with `tags:forsen pepe`
Reviewed-by: Nerixyz <nerixdev@outlook.de >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-19 20:00:53 +02:00
Leafyzito and GitHub
c3368d0fb5
feat: add tab history navigation ( #7063 )
...
Tested-by: apa420 <17131426+apa420@users.noreply.github.com >
Reviewed-by: Nerixyz <nerixdev@outlook.de >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-19 14:24:10 +00:00
Nerixyz and GitHub
d853137820
feat(plugins): Add c2.DateTime ( #7096 )
...
This adds the `DateTime` API described in #7021 .
Reviewed-by: Mm2PL <mm2pl+gh@kotmisia.pl >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-19 13:26:21 +00:00
Nerixyz and GitHub
14b5c665a4
chore: Scale down pinned message banner ( #7113 )
...
I think the text in the pinned message banner is too large in relation
to the default UI font width, so I scaled it down.
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
Parent-pr: 7014
2026-07-19 11:41:42 +00:00
Nerixyz and GitHub
2ca4b28457
fix: Update pined message height if viewport resized ( #7114 )
...
If the split is not 100dp wide, the calculated message height can be
wrong. If the split is larger than 100dp and the message would wrap at
that size, the widget would be too tall. And vice versa for splits
smaller than 100dp.
We do calculate the height in our resize event, but we use the size of
our children. Their resize events are delivered after we're resized. So
we check if we need to resize after we show the widget. This does result
in a small flash where the content is sized incorrectly, but better than
it being incorrect the entire time.
Parent-pr: 7014
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-19 11:00:12 +00:00
JEC15 and GitHub
b581099119
chore: add ArmpitsLover420 to contributors list ( #7115 )
...
Reviewed-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com >
2026-07-19 10:19:18 +00:00
James Upjohn and GitHub
355c8192d9
chore: clarify r9k references as "unique chat" ( #7112 )
...
Reviewed-by: Mm2PL <mm2pl+gh@kotmisia.pl >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-18 23:03:09 +00:00
Arne and GitHub
8ccb6d6be7
feat: add setting to show shared chat badge for all messages ( #7099 )
...
This behaviour is enabled by default, and can be disabled in the settings.
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-19 00:14:18 +02:00
JEC15 and GitHub
dda05c03c3
fix: ignore phrase replacements break in some scenarios ( #7098 )
...
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-18 17:18:31 +00:00
Marie Ramlow and GitHub
290f896759
fix: explicitly set QT desktop file name ( #7110 )
...
This fixes an issue with GNOME not being able to display the application
icon, because in a rare edge case QT would set an incorrect wayland
app_id.
Link: https://github.com/NixOS/nixpkgs/issues/542967
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-18 16:34:42 +00:00
Arne and GitHub
4e198083e1
fix: make pinned message text selectable ( #7109 )
...
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
Reviewed-by: Nerixyz <nerixdev@outlook.de >
Parent-pr: 7014
2026-07-18 13:21:55 +00:00
teknsl and GitHub
78e856f7c9
feat: command-line arguments for setting portable directory ( #7093 )
...
Reviewed-by: Nerixyz <nerixdev@outlook.de >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-18 11:53:18 +00:00
Neil Lobo and GitHub
14bf8c6fad
fix(plugins): vip badge type ( #7107 )
...
Reviewed-by: Mm2PL <mm2pl+gh@kotmisia.pl >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-18 11:01:15 +00:00
somso and GitHub
b1c64d6488
Included alt pronouns in usercards ( #7108 )
...
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
Reviewed-by: Nerixyz <nerixdev@outlook.de >
2026-07-18 10:11:04 +00:00
invisibl3cat and GitHub
7a6348e3ad
sharedchat: respect preferred username display mode in header ( #7111 )
...
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
Parent-pr: 6948
2026-07-18 11:23:40 +02:00
9112873c55
ci: bump actions/setup-node from 6 to 7 ( #7105 )
...
Bumps [actions/setup-node](https://github.com/actions/setup-node ) from 6
to 7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-node/releases ">actions/setup-node's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements:</h3>
<ul>
<li>Add cache-primary-key and cache-matched-key as outputs by <a
href="https://github.com/gowridurgad "><code>@gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-node/pull/1577 ">actions/setup-node#1577</a></li>
<li>Migrate to ESM and upgrade dependencies by <a
href="https://github.com/gowridurgad "><code>@gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-node/pull/1574 ">actions/setup-node#1574</a></li>
</ul>
<h3>Bug fixes:</h3>
<ul>
<li>Remove dummy NODE_AUTH_TOKEN export by <a
href="https://github.com/gowridurgad "><code>@gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-node/pull/1558 ">actions/setup-node#1558</a></li>
<li>Only use <code>mirrorToken</code> in <code>getManifest</code> if
it's provided by <a
href="https://github.com/deiga "><code>@deiga</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1548 ">actions/setup-node#1548</a></li>
</ul>
<h3>Documentation updates:</h3>
<ul>
<li>Add documentation for publishing to npm with Trusted Publisher
(OIDC) by <a
href="https://github.com/chiranjib-swain "><code>@chiranjib-swain</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1536 ">actions/setup-node#1536</a></li>
<li>docs: Update restore-only cache documentation by <a
href="https://github.com/priya-kinthali "><code>@priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1550 ">actions/setup-node#1550</a></li>
<li>docs: Update caching recommendations to mitigate cache poisoning
risks by <a
href="https://github.com/chiranjib-swain "><code>@chiranjib-swain</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1567 ">actions/setup-node#1567</a></li>
</ul>
<h3>Dependency update:</h3>
<ul>
<li>Upgrade <code>@actions/cache</code> to 5.1.0, log cache write
denied by <a
href="https://github.com/jasongin "><code>@jasongin</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1569 ">actions/setup-node#1569</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/chiranjib-swain "><code>@chiranjib-swain</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1536 ">actions/setup-node#1536</a></li>
<li><a href="https://github.com/deiga "><code>@deiga</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1548 ">actions/setup-node#1548</a></li>
<li><a href="https://github.com/jasongin "><code>@jasongin</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1569 ">actions/setup-node#1569</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v6...v7.0.0 ">https://github.com/actions/setup-node/compare/v6...v7.0.0 </a></p>
<h2>v6.5.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>@actions/cache</code> to 5.1.0 and add security
overrides for undici and fast-xml-parser by <a
href="https://github.com/HarithaVattikuti "><code>@HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1579 ">actions/setup-node#1579</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v6.4.0...v6.5.0 ">https://github.com/actions/setup-node/compare/v6.4.0...v6.5.0 </a></p>
<h2>v6.4.0</h2>
<h2>What's Changed</h2>
<h3>Dependency updates:</h3>
<ul>
<li>Upgrade <a
href="https://github.com/actions "><code>@actions</code></a>
dependencies by <a
href="https://github.com/Copilot "><code>@Copilot</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1525 ">actions/setup-node#1525</a></li>
<li>Update Node.js versions in versions.yml and bump package to v6.4.0
by <a
href="https://github.com/priya-kinthali "><code>@priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1533 ">actions/setup-node#1533</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Copilot "><code>@Copilot</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1525 ">actions/setup-node#1525</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v6...v6.4.0 ">https://github.com/actions/setup-node/compare/v6...v6.4.0 </a></p>
<h2>v6.3.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements:</h3>
<ul>
<li>Support parsing <code>devEngines</code> field by <a
href="https://github.com/susnux "><code>@susnux</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1283 ">actions/setup-node#1283</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-node/commit/820762786026740c76f36085b0efc47a31fe5020 "><code>8207627</code></a>
Migrate to ESM and upgrade dependencies (<a
href="https://redirect.github.com/actions/setup-node/issues/1574 ">#1574</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/04be95cf3511ea51ebf9f224ddfb99cc7ab87cd4 "><code>04be95c</code></a>
Add cache-primary-key and cache-matched-key as outputs (<a
href="https://redirect.github.com/actions/setup-node/issues/1577 ">#1577</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/7c2c68d20d402ed6a201ada70a81341941093140 "><code>7c2c68d</code></a>
docs: Update caching recommendations to mitigate cache poisoning risks
(<a
href="https://redirect.github.com/actions/setup-node/issues/1567 ">#1567</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/6a61c0375d66246de94630495909f12cf8dac84d "><code>6a61c03</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/setup-node/issues/1569 ">#1569</a>
from jasongin/update-actions-cache-5.1.0</li>
<li><a
href="https://github.com/actions/setup-node/commit/30eb73b41ded577900c1ebf968ef95cdf8f7434f "><code>30eb73b</code></a>
Resolve high-severity audit issues</li>
<li><a
href="https://github.com/actions/setup-node/commit/4e1a87a501d0302f99e30e2748568adcb388d09f "><code>4e1a87a</code></a>
Update dist</li>
<li><a
href="https://github.com/actions/setup-node/commit/360237f0c01778d0c17291f75c56d6feae4f7574 "><code>360237f</code></a>
Strict equality</li>
<li><a
href="https://github.com/actions/setup-node/commit/4f8aac5beb2f0854bc79651567a18c67eb0b9de3 "><code>4f8aac5</code></a>
Bump <code>@actions/cache</code> to 5.1.0, log cache write denied</li>
<li><a
href="https://github.com/actions/setup-node/commit/f4a67bbeca970f103397d3d2b9462cf787cd2980 "><code>f4a67bb</code></a>
Only use <code>mirrorToken</code> in <code>getManifest</code> if it's
provided (<a
href="https://redirect.github.com/actions/setup-node/issues/1548 ">#1548</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/0355742c943ddb13ca8a6b700f824231caa91e75 "><code>0355742</code></a>
Remove dummy NODE_AUTH_TOKEN export (<a
href="https://redirect.github.com/actions/setup-node/issues/1558 ">#1558</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/setup-node/compare/v6...v7 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-15 11:06:23 +02:00
3260f53816
ci: bump lib/libcommuni from bb5417c to ac0e713 ( #7102 )
...
Bumps [lib/libcommuni](https://github.com/Chatterino/libcommuni ) from
`bb5417c` to `ac0e713`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Chatterino/libcommuni/commit/ac0e713e5a904b6f3231c70e076f6fd67a78455e "><code>ac0e713</code></a>
tests: build with cmake as well (<a
href="https://redirect.github.com/Chatterino/libcommuni/issues/12 ">#12</a>)</li>
<li><a
href="https://github.com/Chatterino/libcommuni/commit/881ee412986b9f871df20d587263aacb2a738ff0 "><code>881ee41</code></a>
fix(ci): Coverage and pin macOS to 14 (<a
href="https://redirect.github.com/Chatterino/libcommuni/issues/11 ">#11</a>)</li>
<li><a
href="https://github.com/Chatterino/libcommuni/commit/0cc209ffe3315b9f81bd4f582dde8f3c452e3e5c "><code>0cc209f</code></a>
ci: use Chatterino fork of ilammy/msvc-dev-cmd action (<a
href="https://redirect.github.com/Chatterino/libcommuni/issues/10 ">#10</a>)</li>
<li>See full diff in <a
href="https://github.com/Chatterino/libcommuni/compare/bb5417c451d764f57f2f1b3e1c9a81496b5521bd...ac0e713e5a904b6f3231c70e076f6fd67a78455e ">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 11:56:46 +02:00
tlos and GitHub
fa2badce64
Add tlos to contributors list ( #7100 )
...
Reviewed-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com >
2026-07-14 11:40:02 +02:00
invisibl3cat and GitHub
91cf6a4a57
Show participants in a shared chat session in the split header ( #6948 )
...
Reviewed-by: Nerixyz <nerixdev@outlook.de >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-12 12:11:48 +00:00
invisibl3cat and GitHub
5e73ba7e24
nit: try to dequote logfile path ( #6982 )
...
Reviewed-by: Nerixyz <nerixdev@outlook.de >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-12 11:26:08 +00:00
Nerixyz and GitHub
bc772c5b2b
chore(window-layout): cleanup loadFromJSON ( #7089 )
...
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-12 10:45:52 +00:00
teknsl and GitHub
2cb4657966
refactor: uncouple Args from Paths ( #7084 )
...
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
Reviewed-by: Nerixyz <nerixdev@outlook.de >
Reviewed-by: Mm2PL <mm2pl+gh@kotmisia.pl >
2026-07-12 09:57:08 +00:00
tlos and GitHub
7d4f10e60f
feat: add pinned message banner ( #7014 )
...
Reviewed-by: Mm2PL <mm2pl+gh@kotmisia.pl >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
Reviewed-by: Nerixyz <nerixdev@outlook.de >
2026-07-12 11:17:19 +02:00
pajlada and GitHub
597a2c57dd
reuse: annotate some more source files ( #7086 )
2026-07-11 11:08:33 +00:00
Wissididom and GitHub
2130871a83
ci: update to macOS 26 for the Qt 6.11 build ( #7091 )
...
Reviewed-by: Nerixyz <nerixdev@outlook.de >
Reviewed-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com >
2026-07-11 12:08:55 +02:00
Nerixyz and GitHub
ad99ab8daa
refactor: Use magic_enum for encoding channels ( #7079 )
...
Split from #6906 .
This changes the en-/decoding of channels in the window layout to use
magic-enum for translating between enum and string.
This way, the names are consistent when en-/deconding. And more
importantly, when adding channel types, you should get compiler warnings
in switch statements for uncovered cases.
Tested-by: Mm2PL <mm2pl+gh@kotmisia.pl >
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com >
2026-07-05 14:09:18 +00:00
Nerixyz and GitHub
dbfa071447
fix(channelview): Use source channel more often ( #7085 )
...
We have info about the channel that we're derived from in `ChannelView`,
but didn't use it for context menu items. This PR does that.
Closes #7082 .
Tested-by: Mm2PL <mm2pl+gh@kotmisia.pl >
Reported-by: Mm2PL <mm2pl+gh@kotmisia.pl >
2026-07-05 13:19:16 +00:00