A few highlights ✨:
- New shareable user query mechanism to share lists of articles by HTML, RSS, OPML
- Deprecates RSS sharing with master token
- New CLI for database backup & restore
- New JSON scraping mode to consume JSON data and JSON Feeds
- New support for HTTP POST
- New option to automatically add labels to incoming articles
- New button to download a feed configuration as OPML
- Many bug fixes
This release has been made by several contributors: @aledeg, @Alkarex, @andris155, @CilgaIscan, @cn-tools, @den13501, @eta-orionis, @Frenzie, @FromTheMoon85, @gmgall, @hkcomori, @jakopo87, @laxmanpradhan, @loviuz, @math-GH, @MayMeow, @OctopusET, @PedroPMS, @roughnecks, @soniyaprasad77, @th0mcat, @thomasrenes, @tiborepcek, @wolfpld, @yzqzss, @zukizukizuki
and several newcomers @eta-orionis, @gmgall, @hkcomori, @jakopo87, @jgtorcal, @krm-shrftdnv, @laxmanpradhan, @loviuz, @PedroPMS, @roughnecks, @soniyaprasad77, @th0mcat, @zukizukizuki
Full changelog:
- Features
- New shareable user query mechanism to share list of articles by HTML, RSS, OPML #6052
- Deprecates RSS sharing with master token
- New JSON scraping mode to consume JSON data #5662, #6317,
#6369, #6476
- New support for JSON Feeds #5662
- New support for HTTP POST #5662
- New options to automatically add labels to incoming articles #5954
- New button to download a feed configuration as OPML #6312
- Web scraping support more encodings such as EUC-JP #6112
- Web scraping support password-protected queries (refactor some cURL options and use
CURLOPT_USERPWD
) #6177
- Web scraping HTTP GET allow UTF-8 even when charset is far from top #6271
- Allow manual refresh of disabled feeds #6408
- Allow multiple authors on enclosures #6272
- New system option in
data/config.php
for number of feeds to refresh in parallel from UI #6124
- CLI
- API
- New compatible app Read You #4633, #6050
- Reduce API memory consumption #6137
- Allow negative feed IDs for future special cases #6010
- Only return
OK
for requests without query parameters #6238
- Bug fixing
- Better account for some edge cases for cron and automatic labels during feed refresh #6117
- Better support for thumbnails in RSS feeds #5972
- Auto-update PostgreSQL or MariaDB / MySQL databases for column details changes since FreshRSS 1.21.0 #6279
- For SQLite, DB update require running
./cli/db-backup.php ; ./cli/db-restore.php --force-overwrite
- Fix SQLite import of exports produced before FreshRSS 1.20.0 #6450
- Fix SQLite release handle to fix deleting users on Microsoft Windows #6285
- Fix to allow admins to create user even when there are Terms Of Service #6269
- Fix updating the uncategorized category deletes the title #6073
- Fix disable master authentication token #6185
- Fix CSS selector preview #6423
- Fix CSS selector encoding #6426
- Fix export of CSS selector in OPML of individual feeds #6435
- Fix OPML import of
CURLOPT_PROXYTYPE
#6439
- Fix favicon with protocol-relative URLs have duplicate slashes #6068
- Fix feed TTL+muted logic #6115
- Fix apply mark as read to updated articles too #6334
- Fix ZIP export on systems with custom temp folder #6392
- Fix number of posts per page during paging #6268
- Fix clipboard sharing UI #6301
- Fix shortcut for clipboard sharing #6277
- Fix user-query filter display #6421
- SimplePie
- Security
- Replace
iframe
allow
attribute #6274
- Deployment
- Disable unused PHP modules in our Debian-based Docker image #5994
- UI
- No warning for muted feeds #6114
- Various UI and style improvements #6055, #6074,
#6241, #6242, #6289,
#6299, #6314, #6357,
#6373, #6376, #6385,
#6390, #6444, #6445
- Improve theme Origine compact #6197
- i18n
- Extensions
- Sanitize parsing list of extensions names and version number #6016,
#6155, Extensions#214, #6186
- Apply filter actions such as mark as read after the entry_before_insert hook for extensions #6091
- New developer command to test all third-party extensions Extensions#228, #6273
composer run-script phpstan-third-party
- New function
Minz_Extension::amendCsp()
for extensions to modify HTTP headers for Content Security Policy #6246
- New property
FreshRSS_Entry::isUpdated()
for extensions to know whether an entry is new or updated #6334
- Compatibility
- Fix PHP 7.4 compatibility for automated tests #6038, #6039
- Fix PHP 8.2+ compatibility for e-mails #6130
- Use PHP 8.3+
#[\Override]
#6273
- Misc.