This is a major release, just in time for the holidays π
Selected new features β¨:
New sorting and filtering by date of User modified , with corresponding search operator, e.g. userdate:PT1H for the past hour
New sorting by article length
New advanced search form
New overview of dates with most unread articles
New ability to share feed visibility through API (implemented by e.g. Capy Reader )
Bonus: Capy Reader is also the first open source Android app to support user labels
Better transitions UI between groups of articles
New links in UI for transitions between groups of articles, and jump to next transition
Docker default image updated to Debian 13 Trixie with PHP 8.4.11
And much moreβ¦
Improved performance ποΈ:
Scaling of user statistics in Web UI and CLI, to help instances with 1k+ users
Improve SQL speed for some critical requests for large databases
API performance optimisation thanks to streaming of large responses
Selected bug fixes π:
Fix OpenID Connect with Debian 13
Fix MySQL / MariaDB bug wrongly sorting new articles
Fix SQLite bind bug when adding tag
Breaking changes π₯:
Move unsafe autologin to an extension
Potential breaking changes for some extensions (which have to rename some old functions)
This release has been made by @Alkarex , @Frenzie , @Inverle , @aledeg , @andris155 , @horvi28 , @math-GH , @minna-xD and newcomers @Darkentia , @FollowTheWizard , @GreyChame1eon , @McFev , @jocmp , @larsks , @martinhartmann , @matthew-neavling , @pudymody , @raspo , @scharmach , @scollovati , @stag-enterprises , @vandys , @xtmd , @yzx9 .
Full changelog :
Features
New sorting and filtering by date of User modified #7886 , #8090 ,
#8105 , #8118 , #8130
Corresponding search operator, e.g. userdate:PT1H for the past hour #8093
Allows finding articles marked by the local user as read/unread or starred/unstarred at specific dates for e.g. undo action.
New sorting by article length #8119
New advanced search form #8103 , #8122 , #8226
Add compatibility with PCRE word boundary \b and \B for regex search using PostgreSQL #8141
More uniform SQL search and PHP search for accents and case-sensitivity (e.g. for automatically marking as read) #8329
New overview of dates with most unread articles #8089
Allow marking as read articles older than 1 or 7 days also when sorting by publication date #8163
New option to show user labels instead of tags in RSS share #8112
Add new feed visibility (priority) Show in its feed #7972
New ability to share feed visibility through API (implemented by e.g. Capy Reader) #7583 , #8158
Configurable notification timeout #7942
OPML export/import of unicity criteria #8243
Ensure stable IDs (categories, feeds, labels) during export/import #7988
Add username and timestamp to SQLite export from Web UI #8169
Add option to apply filter actions to existing articles #7959 , #8259
Support CSS selector ~ subsequent-sibling #8154
Rework saving of configuration files for more reliability in case of e.g. full disk #8220
Web scraping support date format as milliseconds for Unix epoch #8266
Allow negative category sort numbers #8330
Performance
Improve SQL speed for updating cached information #6957 , #8207 ,
#8255 , #8254 , #8255
Fix SQL performance issue with MySQL, using an index hint #8211
Scaling of user statistics in Web UI and CLI, to help instances with 1k+ users #8277
API streaming of large responses for reducing memory consumption and increasing speed #8041
Security
π₯ Move unsafe autologin to an extension #7958
Fix some CSRFs #8035
Strengthen some crypto (login, tokens, nonces) #8061 , #8320
Create separate HTTP Retry-After rules for proxies #8029 , #8218
Add data: to CSP in subscription controller #8253
Improve anonymous authentication logic #8165
Enable GitHub release immutability #8205
Bug fixing
Exclude local networks for domain-wide HTTP Retry-After #8195
Fix OpenID Connect with Debian 13 #8032
Fix MySQL / MariaDB bug wrongly sorting new articles #8223
Fix MySQL / MariaDB database size calculation #8282
Fix SQLite bind bug when adding tag #8101
Fix SQL auto-update of field f.kind to ease migrations from FreshRSS versions older than 1.20.0 #8148
Fix search encoding and quoting #8311 , #8324 , #8338
Fix handling of database unexpected null content (during migrations) #8319 , #8321
Fix drag & drop of user query losing information #8113
Fix DOM error while filtering retrieved full content #8132 , #8161
Fix config.custom.php during install #8033
Fix do not mark important feeds as read from category #8067
Fix regression of warnings in Web browser console due to lack of window.bcrypt object #8166
Fix chart resize regression due to chart.js v4 update #8298
Fix CLI user creation warning when language is not given #8283
Fix merging of custom HTTP headers #8251
Fix bug in the case of duplicated mark-as-read filters #8322
SimplePie
Deployment
Docker default image updated to Debian 13 Trixie with PHP 8.4.11 and Apache 2.4.65 #8032
Docker alternative image updated to Alpine 3.23 with PHP 8.4.15 and Apache 2.4.65 #8285
Fix Docker healthcheck cli/health.php compatibility with OpenID Connect #8040
Improve Docker for compatibility with other base images such as Arch Linux #8299
Improve cli/access-permissions.sh to detect the correct permission Web group such as www-data, apache, or http
Update PostgreSQL volume for Docker #8216 , #8224
Catch lack of exec() function for git update #8228
Work around DOMDocument::saveHTML() scrambling charset encoding in some versions of libxml2 #8296
Improve configuration checks for PHP extensions (in Web UI and CLI), including recommending e.g. php-intl #8334
UI
New button for toggling sidebar on desktop view #8201 , #8286
Better transitions between groups of articles #8174
New links in transitions and jump to next transition #8294
More visible selected article #8230
Show the parsed search query instead of the original user input #8293 ,
#8306 , #8341
Show search query in the page title #8217
Scroll into filtered feed/category on page load in the sidebar #8281 , #8307
Fix autocomplete issues in change password form #7812
Fix navigating between read feeds using shortcut shift +j /k #8057
Dark background in Web app manifest to avoid white flash when opening #8140
Increase button visibility in UI to change theme #8149
Replace arrow navigation in theme switcher with <select> #8190
Improve scroll of article after load of user labels #7962
Keep scroll state of page when closing the slider #8295 , #8301
Scroll into filtered feed/category on page load #8281
Display sidebar dropdowns above if no space below #8335 , #8336
Use native CSS instead of SCSS #8200 , #8241
Various UI and style improvements: #8171 , #8185 , #8196
JavaScript finalise migration from Promise to async/await: #8182
API
API performance optimisation: streaming of large responses #8041
Fever API: Add with_ids parameter to mass-change read/unread/saved/unsaved on lists of articles #8312
Misc API: better REST error semantics #8232
Extensions
Add support for extension priority #8038
Add support for extension compatibility #8081
Improve PHP code with hook enums #8036
New hook nav_entries #8054
Rename Extensions default branch from master to main #8194
I18n
Translation status as text in README #7842
Add new translate CLI commands move #8214
Change some regional language codes to comply with RFC 5646 / IETF BCP 47 / ISO 3166 / ISO 639-1 #8065
Improve German #8028
Improve Greek #8146
Improve Finnish #8073 , #8092
Improve Hungarian #8244
Improve Italian #8115 , #8186
Improve Polish #8134 , #8135
Improve Russian #8155 , #8197
Improve Simplified Chinese #8308 , #8313
Misc.
Add code to modify a search expression #8293
Remove Pocket sharing service #8127 , #8128
Update to PHPMailer 7.0.1 #8048 , #8180 , #8272
π₯ Housekeeping of lib_rss.php with potential breaking changes for some extensions #8193 ,
Use native PHP #[Deprecated] #8325
Improve PHP code #8156 , #8203 , #8284 ,
#8292 , #8297
GitHub Actions: --no-progress #8315
Update dev dependencies #8043 , #8044 ,
#8045 , #8046 , #8047 ,
#8052 , #8176 , #8177 ,
#8178 , #8179 , #8210 ,
#8270 , #8271 , #8273 ,
#8274 , #8275 , #8276