Horizon 2.4.0
Released on 2026-10-02
Download here.
Added
- Log syncing with Solstice! Simply go to the app menu, and click "Manage Data" to find the "Sync with Solstice" option. [Commit]
- You'll need Solstice version 2026.9.0 or later to access its log sync function.
- Added a toggle to open every clicked link in Incognito Mode. It's under 'Advanced' in the app settings menu. [Commit]
Changed
- Dates and timestamps shown in the app now follow your display language instead of always using English formatting. [Commit]
- The summary messages shown after exporting or importing a backup are now translated. [Commit]
- Counted things ("5 messages", "1 channel") now use the correct plural forms for your display language, including languages with more than two plural forms like Russian. [Commit]
- The green "Update ready" button now stops nagging you after 5 animation cycles. [Commit]
- MacOS versions no longer use a tray icon and its functionality is now inside the dock icon's context menu. [Commit]
- Changing your log directory now restarts the app instead of shutting it down. [Commit]
- Places with character select dropdowns (like on the profile viewer and friends dialog) now show the selected character's avatar. [Commit]
- Lamia and naga are not marked as the same species in the hover preview. [Commit]
Fixed
- Grouped channel pruning now has a more sensible grace period. [Commit]
- This should fix issues where your channels would be ungrouped (with a console message too!) even though you managed to join them correctly after 10 seconds.
- Fixed various F-Chat Rising bugs with ads and smart filters not firing correctly: [Commit]
- Smart filters should now work, even if you disable 'Colorize ads'
- Having too many ads in the queue no longer lets some of them slip by without getting matched/ filtered. First in, first out.
- Ads are now shown/ hidden retroactively if you change filter settings.
- Fixed various bad colors in colorblind mode. [Commit]
- Fixed various buttons not using proper 4.7:1 contrast ratios for their text. [Commit]
- Guestbooks with more than 15 posts now show an accurate number. [Commit]
- Toggling the HQ Profile Pics setting now works without needing to restart. [Commit]
- Having 'Standardize profile fonts' no longer fucks up BBCode parsing if a profile uses characters that are parsed into
[or]. [Commit]- This also makes it so that emoji are now properly visible (even if they aren't technically ASCII characters).
- Scrolling upwards in the log viewer while searching now loads older messages better, without you needing to scroll upward more than once. [Commit]
- The tab line no longer slightly overlaps with the window content if you resize the window and then switch tabs. [Commit]
- Large backup .zip exports now stream to disk, to fix memory overconsumption during the export process. [Commit]
- Sending a friend request from the profile viewer no longer incorrectly shows you as that person's friend, instead of showing your request as "Pending". [Commit]
- The mobile quick switcher on top now respects channel group orders. [Commit]
- Names in the "All Friends" tab to the right are no longer all green if you have "Color friends/ bookmarks in a different color" enabled. Obviously, those are your friends and bookmarks. [Commit]
- Fixed screen reader and tooltip labels for the public and private channels always claiming a channel is official. [Commit]
- Did not fix using
/rollcommands withNaNvalues :^) [Commit]
Security
- Tightened security for popups and Node in the image/ URL previewer. [Commit]
Development
- Upgraded to Electron 42 (
v42.4.1) from40.10.0. [Commit] - Upgraded to Ghostery
v2.18.2from2.18.1. [Commit] - Upgraded the pinned package manager to pnpm 11 (
v11.7.0) from10.33.0. pnpm settings moved intopnpm-workspace.yaml, using the newallowBuildsmap for build approvals and disabling the release-age cooldown. - The localization runtime now supports named placeholders (
l('key', { name })with{name}in the string), plus a newLocalizedTextcomponent for using them in templates. [Commit]- All existing locale strings were migrated to full sentences with named placeholders, so translators can reorder words naturally instead of translating sentence fragments. [Commit]
- Added
lp()for plural-aware string lookups backed by CLDR plural rules (viaIntl.PluralRules). [Commit]- The locale checker now validates plural groups too, so locale files with missing or bogus plural categories fail CI. [Commit]
- The dev-only "Test Language" is now a readable pseudo-locale: accented characters and length padding make untranslated strings and too-tight layouts easy to spot. [Commit]
- Locale codes are now valid BCP47 (
en-US,en-x-uwu,en-x-pseudo); previously saved display language settings are migrated automatically. [Commit] - Removed locale keys that were no longer referenced anywhere. [Commit]
- The Nix flake now automatically fixes its dependency hash based on PNPM updates. [Commit]
- Fixed issues with Dev tools not opening properly for the window and image preview web instance. [Commit]
- Switched to using an API key for CI/CD Mac notarization. [Commit]
Documentation
- Updated the localization docs (
docs/localize.md) to cover named placeholders and plural groups. [Commit]
Merged Pull Requests
- https://github.com/Fchat-Horizon/Horizon/pull/793 by @SmileyTatsu
- https://github.com/Fchat-Horizon/Horizon/pull/804 by @freenutsxd
- https://github.com/Fchat-Horizon/Horizon/pull/826 by @freenutsxd
- https://github.com/Fchat-Horizon/Horizon/pull/832 by @CodingWithAnxiety and @FatCatClient
- https://github.com/Fchat-Horizon/Horizon/pull/885 by @Kannamoris
- https://github.com/Fchat-Horizon/Horizon/pull/878 by @CodingWithAnxiety
- https://github.com/Fchat-Horizon/Horizon/pull/882 by @Kannamoris
- https://github.com/Fchat-Horizon/Horizon/pull/898 by @Kannamoris
- https://github.com/Fchat-Horizon/Horizon/pull/900 by @saalisu
- This is their first contribution! 🎉
- https://github.com/Fchat-Horizon/Horizon/pull/901 by @FatCatClient
- https://github.com/Fchat-Horizon/Horizon/pull/907 by @Kannamoris
- https://github.com/Fchat-Horizon/Horizon/pull/912 by @freenutsxd
- https://github.com/Fchat-Horizon/Horizon/pull/914 by @freenutsxd
- https://github.com/Fchat-Horizon/Horizon/pull/916 by @MoonBurst
- https://github.com/Fchat-Horizon/Horizon/pull/938 by @FatCatClient
- https://github.com/Fchat-Horizon/Horizon/pull/871 by @Kannamoris and @CodingWithAnxiety
- https://github.com/Fchat-Horizon/Horizon/pull/942 by @freenutsxd
- https://github.com/Fchat-Horizon/Horizon/pull/947 by @freenutsxd
- https://github.com/Fchat-Horizon/Horizon/pull/959 by @CodingWithAnxiety
- https://github.com/Fchat-Horizon/Horizon/pull/961 by @Kannamoris and @CodingWithAnxiety
Non PR'd changes by @CodingWithAnxiety and @FatCatClient