Releases · FreshRSS/FreshRSS · GitHub
Skip to content

Releases: FreshRSS/FreshRSS

FreshRSS 1.30.4

Choose a tag to compare

@Alkarex Alkarex released this 21 Oct 20:45
Immutable release. Only release title and notes can be modified.
08f97bd

This is a fourth security release in the continuation of 1.30.x, mostly to address some severe PHP vulnerabilities and update our official alternative Docker images (Alpine) (our default Docker images based on Debian were already fixed).

Note that our rolling-release channel (edge) is recommended for faster security patches.

Bug fixes highlights 🐛:

This release has been made by @Alkarex, @Frenzie and newcomer @icco

Full changelog:

  • Security
    • Docker alternative image (Alpine 3.24) updated with PHP 8.5.12 and Apache 2.4.69 #9475
    • Docker: disable PHP session.upload_progress.enabled for additional security #9476
  • I18n

FreshRSS 1.30.3

Choose a tag to compare

@Alkarex Alkarex released this 21 Oct 14:30
Immutable release. Only release title and notes can be modified.
67a641b

This is a third security release in the continuation of 1.30.x, mostly to address some severe PHP vulnerabilities and update our official default Docker images (Debian) (but not our alternative Alpine images yet, which are delayed).

Note that our rolling-release channel (edge) is recommended for faster security patches.

Bug fixes highlights 🐛:

This release has been made by @Alkarex, @Inverle and newcomer @Ricardo-Simoes

Full changelog:

  • Deployment
    • Docker default image updated to Debian 13 Trixie with PHP 8.4.27-1~deb13u1 and Apache 2.4.69
  • Extensions
    • New hook: Minz_HookType::AutofillField for auth views #9362
  • I18n
    • Improve Brazilian Portuguese #9473
  • Misc.
    • Translate non-English code comments and identifiers #9383

FreshRSS 1.30.2

Choose a tag to compare

@Alkarex Alkarex released this 19 Oct 20:57
Immutable release. Only release title and notes can be modified.
417780a

This is a second security and bug-fixing release in the continuation of 1.30.x.

Note that our rolling-release channel (edge) is recommended for faster security patches.

Bug fixes highlights 🐛:

  • Fix PHP 8.5+ deprecation warning with SQLite
  • Block data: URI scheme in some cases

Performance highlights 🏎️:

  • Reduce memory consumption of export

This release has been made by @Alkarex, @Inverle and newcomers @abp002, @Arslan-TR, @Emredinho61, @HawkForge, @lordmarrik, @spa77k, @tomac4t, @tpq2030

Full changelog:

  • Security
    • SimplePie sanitizer: block data: URI scheme while keeping data:image for images #9417
    • Mitigate some 404 situations #9435
    • Do not log the Fever API key on authentication failure #9468
    • Fix local DNS leak when fetching feeds through a proxy #9451
  • Bug fixes
    • WebSub fix POST, fix warning, better message #9420
    • Fix PHP 8.5+ deprecation of sqliteCreateFunction for SQLite #9421
    • Preserve explicit sort overrides when searching #9467
    • Fix wrong order of args in extension compatibility check #9445
  • Performance
    • Reduce memory consumption of export #9350
  • Features
    • Better doc and log proxy cases #9436
  • Extensions
  • UI
    • Disallow user page navigation while refreshing feeds #9446
    • Various UI and style improvements #9426, #9441
  • I18n
  • Misc.
    • Update to GT\CssXPath 1.6.0 #9411
    • CI/CD: Fix login to Docker Hub #9433
    • Fix SVGO zero percent filtering in CI #9422
    • Update dev dependencies #9425

FreshRSS 1.30.1

Choose a tag to compare

@Alkarex Alkarex released this 05 Oct 19:40
Immutable release. Only release title and notes can be modified.
4a810f1

This is a security-oriented release with several security patches and bug fixes in the continuation of 1.30.0.

Note that our rolling-release channel (edge) is recommended for faster security patches.

Bug fixes highlights 🐛:

  • Some security attack scenarios patched
  • Fix domain-wide Retry-After
  • Fix muting of feeds gone with HTTP 410

Feature highlights✨:

  • CLI: Add optional feed argument to actualize-user.php

This release has been made by @Alkarex, @andris155, @fzlzjerry, @Inverle, @jamalkamaladdin, @jtracey, @Otolock and newcomers @akine, @colons, @ethanstoner, @gigioneggiando, @Juice-de-Orange, @pavel-miniutka, @qwist1233-cpu, @Sharawey74, @shcheglovnd, @TapuGithub, @yuchenshi, @ZainnQureshii

Full changelog:

  • Deployment
    • Reword recommendations and explanations for edge (rolling release) vs. latest (versioned release) channels #9270
  • Security
    • Config + increase default values for search max length and depth #9280
    • Accept a trusted proxy address given without a subnet #9301
    • Warn during session regenerate fail #9311, #9376
    • CI/CD add zizmor workflow for action security checks #9228, #9331
    • Use PHP #[\SensitiveParameter] #9322
    • Reject token access (RSS/OPML export, feed refresh) for disabled accounts #9336
    • Require POST+CSRF for self-update mutations #9335
    • Make the login challenge nonce one-time #9334
    • Bound ZIP import against decompression bombs #9332
    • Rotate session ID on all authenticated transitions #9333
    • Minz: Remove vulnerable and unused code path for displaying errors #9395
    • Fix NAT64 feed fetching on IPv6-only hosts #9372
  • Bug fixes
    • Fix domain-wide Retry-After #9390
    • Fix muting of feeds gone with HTTP 410 #9391
    • Fix infinite redirect loop due to SCRIPT_NAME in PATH_INFO #9282, #9287
    • Restore the automatic reading view after marking articles as read, while preserving explicit filters #9288
    • Fix adaptive reading state after marking articles read #9290
    • Fix regression sharing links #9303
    • Don’t disable anonymous refresh when anonymous feed access is disabled #9354
    • Fix regression with HTTPS proxies due to wrong TLS SNI resolution #9341
    • Better enforce limits for feeds and categories #9357
    • Fix JavaScript error when opening a label menu in sidebar #9377
    • Fix custom favicon with GReader API #9409
  • CLI
    • Add optional feed argument to actualize-user.php #9319
  • UI
  • Extensions
    • Call check_url_before_add hook when previewing a feed #9343
  • I18n
  • Misc.

FreshRSS 1.30.0

Choose a tag to compare

@Alkarex Alkarex released this 09 Sep 14:43
Immutable release. Only release title and notes can be modified.
62eb3b4

This is a security-oriented major release with several important security patches, so users are encouraged to update without delay.

From this release, we are also making it clear that our rolling-release channel (edge) is recommended for faster security patches.

Breaking change 💥:

  • Disallow access to local networks such as 127.0.0.1 by default, for security reasons

Feature highlights✨:

  • Filter global view feed list by state and search
  • New option to hide badges showing number of unread articles (Phantom Obligation)
  • Refresh only feeds in the current view
  • Offer to add a prefix when re-sharing user labels

Bug fixes highlights 🐛:

  • Several security attack scenarios patched
  • Fix lost elements while parsing search query
  • Fix “mark as read older than…” widening the active search
  • Fix saving user queries
  • Fix SQL errors breaking some regex searches with MySQL / MariaDB

This release has been made by @Alkarex, @andris155, @ColonelMoutarde, @Frenzie, @IEEE-754, @Inverle, @math-GH, @nykula, @polybjorn, @Stunkymonkey and newcomers @0xdeadrelay, @AdamKorcz, @aligundogar, @bossaarebecca-alt, @Cactys12, @chrislongros, @Divinelink, @Elgeryy1, @featurecreep-cron, @Fripix, @fzlzjerry, @georatas, @gshimo, @iatman ,@ihsanarifr, @jamalkamaladdin, @JamBalaya56562, @jbrayton, @jeremy-code, @juherr, @kobihikri, @LeeXiaolan, @masskrdjn, @mohammadlashkari, @nathanpixodeo, @Otolock, @payaci, @salvador-castro, @SamCyber001, @satyvm, @senti-man, @simitana, @ThomasVermeer, @Totara-thib, @TowyTowy, @utkutibet, @XiaoSong1223

Full changelog:

  • Security
    • 💥 Disallow access to local networks such as 127.0.0.1 by default, for security reasons (breaking change) #8400,
      #9195
      • Selected local networks can be allowed under System configuration or using the INTERNAL_HOST_ALLOWLIST environment variable
      • Passing * allows all networks like before (unsafe)
    • Improve SSRF mitigations by restricting CURLOPT_PROXY #8950
    • Fix auth CSRFs (login and register actions) #9171
    • Log invalid challenge and ignore JSON error during login #9278
    • Disallow fetching of non remote URI #9215
    • Only allow HTTP/HTTPS schemes for enclosure and thumbnail URLs #9272
    • Fix access control in rss and opml actions #8912
    • Refactor to use CSRF field directly instead of borrowing it from a form #9169, #9205
    • Cleaner limit anonymous mode to default user #9235
    • Fix HTML ingestions in templates #9146, #9170
    • Fix bad header filtering bypass #8964
    • Sanitize all fields during JSON import #9168
    • Gate greader (JSON) user query share format behind Share by OPML #9248
    • Public OPML should not contain cURL parameters #9070
    • Ignore security-relevant OPML attributes for dynamic OPML sources #9276
    • Strip feed URL credentials from anonymous user query output #9246
    • Set limits for regex during search #8913
    • Fix path disclosure in cache error message #9206
    • Limit the length and parentheses nesting depth of a search query #9277
    • Use timing-safe comparison for tokens #8945
    • Use hash_equals() for GReader API token comparison #9183
    • Mailer: allow disabling SMTPAutoTLS via config #9026
    • Warn during install if document root does not point to ./p/ #9010
    • Stop the unread-count poller after the session ends #9065
    • Add remote IP address to warning on form login #8942
    • Pin the GitHub actions using SHA #9200
    • Harden cache and SimplePie cache deserialization #9273
  • SimplePie
    • Security: Disallow javascript: URI scheme (protocol) #8263
    • Fix wrong player parent logic leading to invalid type #8893, simplepie#978
    • Consistently enable XML_OPTION_PARSE_HUGE #8894, simplepie#977
    • Fix null warning in IRI for PHP 8.5+ #8918, simplepie#979
    • Fix sanitizer whitelist stripping order #9066
    • Show only one representation per media:group #9009
    • Bump upstream SimplePie #8947
  • Features
    • Filter global view feed list by state and search #9132
      • Use global view when searching from subscription page #9144
    • New option to hide badges showing number of unread articles (Phantom Obligation) #8844
    • Refresh only feeds in the current view #9060
    • Offer to add a prefix when resharing user labels #9236
    • Add log search to the logs page #9059
    • Add configurable log_level system setting #9185
    • New option to keep or not the custom sort order when navigating between categories and feeds #8969
    • New per-feed option to show or hide enclosures (attachments) #9015
    • Detect JSON feeds from URLs containing json #9058
      • Also when subscribing via the API #9167
    • Order categories during OPML import/export according to position #9203
    • OPML: include each feed’s refresh interval (TTL) in export/import #8982
    • Log failed CSS content retrieval (Web scraping) #9077
    • Allow providing a category when adding a feed by bookmarklet #9047
    • Add LinkAce sharing service #9024
    • Add Nextcloud Bookmarks sharing service #9032
  • Bug fixing
    • Fix lost elements while parsing search query #8884
    • Fix “mark as read older than…” widening the active search #9173
    • Fix saving user queries #9190
    • Fix SQL errors breaking some regex searches with MySQL / MariaDB #9036
    • Fix marking filtered label articles as read in SQLite and PostgreSQL #9264
    • Fix tagging an already-tagged entry on PostgreSQL raising a SQL error instead of being a no-op #9136
    • PostgreSQL: make committing new entries resilient to duplicate keys #9231
    • Preserve negative timezone offsets in date intervals #9071
    • Fix feed dropdown bugs due to hash desync #8949
    • Fix slider not reinitializing after form submit #8973
    • Minz: Skip loading duplicated JS/CSS assets #9000
    • Respect simplepie_syslog_enabled for the uses cache logs #8986
    • Fix statistics repartition averages #8996
    • Fix article hover date visibility #8997
    • Keep search and state filters when marking articles as read #9007
    • Fix --db-prefix silently drops following CLI flags #9042
    • Remove stale dynamic favicon links #9127
    • Fix desync between favicon and title unread counters [#9262](https://github.com/FreshRSS/FreshRSS/...
Read more

FreshRSS 1.29.1

Choose a tag to compare

@Alkarex Alkarex released this 20 May 17:58
Immutable release. Only release title and notes can be modified.
b2c5011

This is bug-fix release for 1.29.0.

Feature highlights✨:

  • Accept .txt import of feed URLs in additional to e.g. OPML
  • New CLI for automatic periodic SQLite export with retention
  • More feed info: last received date, publication date

Bug fixes highlights 🐛:

  • Fix cookies with some browsers
  • Fix search in shared user queries with empty results

UI highlights 🖼:

  • Improve Web browsers compatibility

This release has been made by @Alkarex, @Frenzie, @IEEE-754, @Inverle, @McFev, @ciro-mota, @cweiske, @polybjorn and newcomer @mzl2233

Full changelog:

  • Features
    • Accept .txt import of feed URLs in additional to e.g. OPML #8818, #8837
    • New CLI for automatic periodic SQLite export with retention #8819
    • More feed info: last received date, publication date #8799
  • Bug fixing
    • Fix cookies with some browsers #8867
    • Fix search in shared user queries with empty results #8863
    • Fix XML errors with loading invalid OPML in lib_opml library #8652, #8853,
      lib_opml#48, lib_opml#51
    • Fix ensure maximum number of feeds also with Dynamic OPML #8832
    • Fix click mark as read #8817
  • UI
    • Improve browser compatibility to keep mobile navigation at the bottom #8833
    • Improve support of older/simpler Web browsers/engines such as SeaMonkey #8810,
      #8811, #8813,
    • Improve Swage theme #8842
    • Rename Nord theme to Nord #8805
    • Replace GIF spinner by CSS spinner #8804, #8812
    • Various UI and style improvements: #8800, #8816,
  • I18n
    • Improve Brazilian Portuguese #8846
    • Improve Dutch #8868
    • Improve German #8840
    • Improve Polish #8854
    • Improve Russian #8861
    • Improve Traditional Chinese #8849
  • Misc.

FreshRSS 1.29.0

Choose a tag to compare

@Alkarex Alkarex released this 10 May 14:43
Immutable release. Only release title and notes can be modified.
9a50be1

This is a major release.

Feature highlights✨:

  • New sort order preferences at global, category, and feed levels
  • Use feed-provided icon
  • New option to hide sidebar by default
  • Show time since when a feed has problems
  • New functions to handle plural in internationalisation
  • New cli/purge.php to apply purge policy from command line

Bug fixes highlights 🐛:

  • Improve support of PHP 8.5+
  • Several fixes related to searches

Security highlights 🛡:

  • Limit cURL to protocols HTTP, HTTPS

UI highlights 🖼:

  • Improve mobile view with multiple lines when thumbnails and summaries are shown
  • Several themes improved

Extensions highlights 🧩:

  • New Webhook extension for automated RSS notifications
  • New LLM Classification extension to automatically tag incoming articles based on a prompt sent to an LLM

This release has been made by @Alkarex, @Inverle, @Kiblyn11, @math-GH, @rupakbajgain, @xtmd and newcomers @polybjorn, @olivluca, @tomasodehnal, @PeterVavercak, @mrtnrdl, @ale-rt, @cweiske, @rid3r45, @gabbihive, @drosell271, @Kachelkaiser, @zanivann, @nanos, @bowencool, @pe1uca, @matheusroberson, @DenuxPlays, @rlrs, @chanse-syres, @IEEE-754, @umaidshahid, @michi-onl

Full changelog:

  • Features
    • New sort order preferences at global, category, and feed levels #8234
    • New filtering by date of Server modification date #8131, #8576
      • Corresponding search operator, e.g. mdate:P1D for finding articles modified by the author / server during the past day.
      • Especially useful for optimising the API synchronisation.
    • Use feed-provided icon #8633
    • New option to automatically mark new articles as read if an identical GUID already exists in the same category #8673
    • Automatic feed visibility/priority during search #8609
    • Add feed visibility filter to statistics view unread dates #8489
    • Add option to enable/disable notifications, also for PWA #8458
    • Add a form to create new user queries on the User Queries page #8623
    • Allow WebSub hub push from same private network #8450
    • Support category field in JSON feed import #8786
  • Bug fixing
    • Fix wrong search toString in case of regex-looking string #8479
    • Fix article last seen date in case of feed errors #8646
    • Fix search expansion with backslash #8497
    • Fix user query parsing #8543
    • Fix search in shared user queries #8789
    • Fix redirect to wrong view after mark as read in reader and global views #8552
    • Fix SQLite paging when sorting by article length #8594
    • Fix change sorting during paging #8688
    • Fix SQL keyset pagination when sorting by category name #8597
    • Fix SQL duplicates in the user labels when sorting randomly #8626
    • Fix wrong error redirect in subscription management #8625
    • Fix do not include hidden feeds when counting total number of unread articles #8715
    • Update user modify date when changing extensions UserJS / UserCSS #8607
    • Non-strict OPML export #eedefb
  • Security
    • Limit cURL to protocols HTTP, HTTPS #8713
    • Better sanitise favicon URLs #8714
    • New setting for <iframe> referrer allow list #8672
    • Fix email validation and allow error page for unverified email users #8582
    • Add allowfullscreen to <iframe> #8467
    • Rewrite Set-Cookie using native PHP support of SameSite #8447, #8778
      • Sanitize lifetime of session cookies from session.cookie-lifetime in php.ini
    • Update to <meta name="referrer" content="no-referrer" /> from deprecated never #8725
    • Preventive measure against search ingestion #8777
  • UI
    • New option to hide sidebar by default #8528
    • Improve mobile view with multiple lines when thumbnails and summaries are shown #8631
    • New option to disable unread counter in tab title and favicon #8728
    • Show time since when a feed has problems #8670
    • Improve add feed UI #8683
    • Improve slider behaviour when using navigate back button #8496, #8524
    • Improve consistency of slider behaviour after submitting form #8612
    • Create dynamic favicons from SVG instead of PNG canvas #8577, #8588
    • Only display scrollbar everywhere if there's an overflow (especially for Chromium) #8542
    • Fix CSS padding of .content pre code #8620
    • Fix wrong navigation buttons layout on Chromium #8606
    • Fix don’t mark as read if middle click is outside of article link #8553
    • More robust JS #8595
    • Fix sidebar slide animation at narrow viewports #8747
    • Visually dim disabled users in user management table #8768
    • Improve multiple UI themes #8711, #8732,
      #8733, #8734, #8735,
      #8736, #8737, #8738,
      #8739, #8743, #8746,
      #8749, #8761, #8781,
      #8784, #8785
    • Various UI and style improvements: #8537, #8538,
      #8541, #8624, #8731,
      #8774
  • Deployment
    • Also push Docker images to GitHub registry #8669
    • Improve support of PHP 8.5+ using Pdo\Mysql #8526
    • Add support for Podman in Makefile #8456
    • Re-add database status in installation check #8510
    • Docker / CLI: Allow chown/chmod to fail with warning #8635
  • Extensions
    • New Webhook extension for automated RSS notifications Extensions#456
    • New LLM Classification extension to automatically tag incoming articles based on a prompt sent to an LLM Extensions#458
    • New extension methods to get typed configuration values #8696
    • New hook: Minz_HookType::ActionExecute #8599, #8603
    • New hook to modify the list of feeds to actualize #8655, #8675
    • Allow passing Minz_HookType as hook name in registerHook() [#8600](https://githu...
Read more

FreshRSS 1.28.1

Choose a tag to compare

@Alkarex Alkarex released this 25 Jan 18:20
Immutable release. Only release title and notes can be modified.
f65e6b1

This is a release focussing on bug fixing, in particular regressions from the release 1.28.0.

Selected new features ✨:

  • New customisable message for closed registrations
  • Add username in Apache access logs (also in Docker logs): for GReader API, and for HTTP Basic Auth from reverse proxy

Improved performance 🏎️:

  • Disable counting articles in user labels for Ajax requests (unused)

Many bug fixes 🐛

This release has been made by @Alkarex, @Frenzie, @Inverle and newcomers @ciro-mota, @eveiscoull, @hackerman70000, @Hufschmidt, @johan456789, @martgnz, @mmeier86, @netsho, @neuhaus, @RobLoach, @rupakbajgain.

Full changelog:

  • Features
    • Handle Web scraping of text/plain as <pre class="text-plain"> #8340
    • New customisable message for closed registrations #8462
  • Bug fixing
    • Fix unwanted expansion of user queries (saved searches) applied to filters #8395
    • Fix encoding of filter actions for labels #8368
    • Fix searching of tags #8425
    • Fix refreshing feeds with token while anonymous refresh is disabled #8371
    • Fix RSS and OPML access by token #8434
    • Fix MySQL/MariaDB transliterator_transliterate fallback (when the php-intl extension is unavailable) #8427
    • Fix regression with MySQL/MariaDB index hint #8460
    • Auto-add lastUserModified database column also during mark-as-read action #8346
    • Do not include hidden feeds when counting unread articles in categories #8357
    • Remove wrong PHP deprecation of OPML export action #8399
    • Fix shortcut for next unread article #8466
    • Fix custom session.cookie-lifetime #8446
    • Fix feed validator button when changing the feed URL #8436
  • Performance
    • Disable counting articles in user labels for Ajax requests (unused) #8352
  • Security
    • Change Content-Disposition: inline to attachment in f.php #8344
    • Hardened user methods exists, mtime, ctime #26c1102
  • Deployment
    • Add username in Apache access logs (also in Docker logs): for GReader API, and for HTTP Basic Auth from reverse proxy #8392
  • SimplePie
  • Extensions
    • Update .gitignore to ignore installed extensions #8372
  • UI
    • Add data-category="3" to ease custom CSS styling of articles #8397
    • Fix space between By: and the author’s name #8422
  • I18n
  • Misc.

FreshRSS 1.28.0

Choose a tag to compare

@Alkarex Alkarex released this 24 Dec 19:27
Immutable release. Only release title and notes can be modified.
fdd8282

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](#8...
Read more

FreshRSS 1.27.1

Choose a tag to compare

@Alkarex Alkarex released this 27 Sep 13:07
3f9b7b3

This is a security-fix and bug-fix release for FreshRSS 1.27.x.

A few highlights ✨:

  • Keep sort and order criteria after marking as read
  • Automatic database recovery: skip broken entries during CLI export/import
  • Add possibility of Docker healthcheck
  • Add security option for CSP frame-ancestors
  • Several security fixes
  • Several bug fixes
  • New translation to Ukrainian
  • Improvements of some themes
  • And much more…

This release has been made by @Alkarex, @Frenzie, @Inverle, @aledeg, @math-GH and newcomers @beerisgood, @nykula, @horvi28, @nhirokinet, @rnkln, @scmaybee.

Full changelog:

  • Features
    • Automatic database recovery: skip broken entries during CLI export/import #7949
    • Add security option for CSP frame-ancestors #7857, #8021
    • Lazy-load <track src> #7997
  • Security
    • Regenerate session ID on login #7829
    • Disallow setting non-existent language #7878, #7934
    • Safer calling of install.php #7971
    • Prevent log CR/LF injection #7883
    • Restrict allowed cURL parameters #7979, #8009
    • Fix reauthentication while updating #7989
    • Fix some CSRFs #8000
  • Bug fixing
    • Include port number for HTTP Retry-After #7875
    • Fix logic for searching labels #7863
    • Fix cURL response parsing for HTTP redirections #7866
    • Fix fetching OPML URL with special characters #7843
    • Fix validation when creating a new user label #7890
    • Fix bug in user self-deletion #7877
    • Fix displaying of current date in main statistics #7892
    • Fix default values on stat processing #7891
    • Fix UI JavaScript error when navigating to last article with keyboard #7957
    • Fix some links in anonymous mode #8011, #8012
    • Fixes for no-cache.txt #7907
    • Fix Docker Traefik .yml and SERVER_DNS example #7858
  • SimplePie
    • Upstream contribution: Normalize encoding uppercase simplepie#936, #7967
    • Sync upstream, including bump to 1.9.0 with better PHP 8.5+ support #7955
  • Deployment
    • Docker improve CMD compatibility #7861
    • Add possibility of Docker healthcheck #7945
  • UI
    • Keep sort and order after marking as read #7974
    • Improve leave validation #7830
    • Improve Origine theme visibility of toggle buttons #7956
    • Improve Dark pink theme #8020
    • Improve Mapco and Ansum themes: read all button in mobile view #7873
    • Improve Swage theme #7608
    • Use standard CSS overflow-wrap instead of word-wrap #7898
    • Various UI and style improvements: #7868, #7872,
      #7882, #7893, #7904,
      #7952
  • I18n
    • Clarify the concepts of visibility hidden vs. archived in feeds settings #7970
    • Translate the API information page #7922
    • Add a default language constant #7933
    • Label config delete label #7871
    • Add Ukrainian #7961
    • Improve Dutch #7940
    • Improve German #7833
    • Improve Hungarian #7986
    • Improve Japanese #7903, #7918
    • Improve Polish #7963
    • Improve Simplified Chinese #7943, #7944
    • Minor improvements #7881
    • Add CLI command to add i18n file #7917
    • Add make target to generate the translation progress #7905
  • Extensions
    • Add entry_before_update and entry_before_add hooks for extensions #7977
  • Misc.