# FreshRSS changelog See also [the FreshRSS releases](https://github.com/FreshRSS/FreshRSS/releases). ## 2025-09-27 FreshRSS 1.27.1-dev * Features * Automatic database recovery: skip broken entries during CLI export/import [#7949](https://github.com/FreshRSS/FreshRSS/pull/7949) * Add security option for CSP `frame-ancestors` [#7857](https://github.com/FreshRSS/FreshRSS/pull/7857), [#8021](https://github.com/FreshRSS/FreshRSS/pull/8021) * Lazy-load `` [#7997](https://github.com/FreshRSS/FreshRSS/pull/7997) * Security * Regenerate session ID on login [#7829](https://github.com/FreshRSS/FreshRSS/pull/7829) * Disallow setting non-existent language [#7878](https://github.com/FreshRSS/FreshRSS/pull/7878), [#7934](https://github.com/FreshRSS/FreshRSS/pull/7934) * Safer calling of `install.php` [#7971](https://github.com/FreshRSS/FreshRSS/pull/7971) * Prevent log CR/LF injection [#7883](https://github.com/FreshRSS/FreshRSS/pull/7883) * Restrict allowed cURL parameters [#7979](https://github.com/FreshRSS/FreshRSS/pull/7979), [#8009](https://github.com/FreshRSS/FreshRSS/pull/8009) * Fix reauthentication while updating [#7989](https://github.com/FreshRSS/FreshRSS/pull/7989) * Fix some CSRFs [#8000](https://github.com/FreshRSS/FreshRSS/pull/8000) * Bug fixing * Include port number for HTTP `Retry-After` [#7875](https://github.com/FreshRSS/FreshRSS/pull/7875) * Fix logic for searching labels [#7863](https://github.com/FreshRSS/FreshRSS/pull/7863) * Fix cURL response parsing for HTTP redirections [#7866](https://github.com/FreshRSS/FreshRSS/pull/7866) * Fix fetching OPML URL with special characters [#7843](https://github.com/FreshRSS/FreshRSS/pull/7843) * Fix validation when creating a new user label [#7890](https://github.com/FreshRSS/FreshRSS/pull/7890) * Fix bug in user self-deletion [#7877](https://github.com/FreshRSS/FreshRSS/pull/7877) * Fix displaying of current date in main statistics [#7892](https://github.com/FreshRSS/FreshRSS/pull/7892) * Fix default values on stat processing [#7891](https://github.com/FreshRSS/FreshRSS/pull/7891) * Fix UI JavaScript error when navigating to last article with keyboard [#7957](https://github.com/FreshRSS/FreshRSS/pull/7957) * Fix some links in anonymous mode [#8011](https://github.com/FreshRSS/FreshRSS/pull/8011), [#8012](https://github.com/FreshRSS/FreshRSS/pull/8012) * Fixes for `no-cache.txt` [#7907](https://github.com/FreshRSS/FreshRSS/pull/7907) * Fix Docker Traefik `.yml` and `SERVER_DNS` example [#7858](https://github.com/FreshRSS/FreshRSS/pull/7858) * SimplePie * Upstream contribution: Normalize encoding uppercase [simplepie#936](https://github.com/simplepie/simplepie/pull/936), [#7967](https://github.com/FreshRSS/FreshRSS/pull/7967) * Sync upstream, including bump to 1.9.0 with better PHP 8.5+ support [#7955](https://github.com/FreshRSS/FreshRSS/pull/7955) * Deployment * Docker improve `CMD` compatibility [#7861](https://github.com/FreshRSS/FreshRSS/pull/7861) * Add possibility of Docker healthcheck [#7945](https://github.com/FreshRSS/FreshRSS/pull/7945) * UI * Keep sort and order after marking as read [#7974](https://github.com/FreshRSS/FreshRSS/pull/7974) * Improve leave validation [#7830](https://github.com/FreshRSS/FreshRSS/pull/7830) * Improve *Origine* theme visibility of toggle buttons [#7956](https://github.com/FreshRSS/FreshRSS/pull/7956) * Improve *Dark pink* theme [#8020](https://github.com/FreshRSS/FreshRSS/pull/8020) * Improve *Mapco* and *Ansum* themes: read all button in mobile view [#7873](https://github.com/FreshRSS/FreshRSS/pull/7873) * Improve *Swage* theme [#7608](https://github.com/FreshRSS/FreshRSS/pull/7608) * Use standard CSS `overflow-wrap` instead of `word-wrap` [#7898](https://github.com/FreshRSS/FreshRSS/pull/7898) * Various UI and style improvements: [#7868](https://github.com/FreshRSS/FreshRSS/pull/7868), [#7872](https://github.com/FreshRSS/FreshRSS/pull/7872), [#7882](https://github.com/FreshRSS/FreshRSS/pull/7882), [#7893](https://github.com/FreshRSS/FreshRSS/pull/7893), [#7904](https://github.com/FreshRSS/FreshRSS/pull/7904), [#7952](https://github.com/FreshRSS/FreshRSS/pull/7952) * I18n * Clarify the concepts of *visibility hidden* vs. *archived* in feeds settings [#7970](https://github.com/FreshRSS/FreshRSS/pull/7970) * Translate the API information page [#7922](https://github.com/FreshRSS/FreshRSS/pull/7922) * Add a default language constant [#7933](https://github.com/FreshRSS/FreshRSS/pull/7933) * Label config delete label [#7871](https://github.com/FreshRSS/FreshRSS/pull/7871) * Add Ukrainian [#7961](https://github.com/FreshRSS/FreshRSS/pull/7961) * Improve Dutch [#7940](https://github.com/FreshRSS/FreshRSS/pull/7940) * Improve German [#7833](https://github.com/FreshRSS/FreshRSS/pull/7833) * Improve Hungarian [#7986](https://github.com/FreshRSS/FreshRSS/pull/7986) * Improve Japanese [#7903](https://github.com/FreshRSS/FreshRSS/pull/7903), [#7918](https://github.com/FreshRSS/FreshRSS/pull/7918) * Improve Polish [#7963](https://github.com/FreshRSS/FreshRSS/pull/7963) * Improve Simplified Chinese [#7943](https://github.com/FreshRSS/FreshRSS/pull/7943), [#7944](https://github.com/FreshRSS/FreshRSS/pull/7944) * Minor improvements [#7881](https://github.com/FreshRSS/FreshRSS/pull/7881) * Add CLI command to add i18n file [#7917](https://github.com/FreshRSS/FreshRSS/pull/7917) * Add `make` target to generate the translation progress [#7905](https://github.com/FreshRSS/FreshRSS/pull/7905) * Extensions * Add `entry_before_update` and `entry_before_add` hooks for extensions [#7977](https://github.com/FreshRSS/FreshRSS/pull/7977) * Misc. * Improve `make` [#7901](https://github.com/FreshRSS/FreshRSS/pull/7901) * Improve PHP code [#7906](https://github.com/FreshRSS/FreshRSS/pull/7906), [#7916](https://github.com/FreshRSS/FreshRSS/pull/7916), [#7939](https://github.com/FreshRSS/FreshRSS/pull/7939), [#7941](https://github.com/FreshRSS/FreshRSS/pull/7941), [#7960](https://github.com/FreshRSS/FreshRSS/pull/7960), [#7991](https://github.com/FreshRSS/FreshRSS/pull/7991) * Upgrade to PHP_CodeSniffer 4 [#7993](https://github.com/FreshRSS/FreshRSS/pull/7993) * Update dev dependencies [#7902](https://github.com/FreshRSS/FreshRSS/pull/7902), [#7895](https://github.com/FreshRSS/FreshRSS/pull/7895), [#7896](https://github.com/FreshRSS/FreshRSS/pull/7896), [#7899](https://github.com/FreshRSS/FreshRSS/pull/7899), [#7966](https://github.com/FreshRSS/FreshRSS/pull/7966), [#7969](https://github.com/FreshRSS/FreshRSS/pull/7969) ## 2025-08-18 FreshRSS 1.27.0 * Features * Implement support for HTTP `429 Too Many Requests` and `503 Service Unavailable`, obey `Retry-After` [#7760](https://github.com/FreshRSS/FreshRSS/pull/7760) * Add sort by category title, or by feed title [#7702](https://github.com/FreshRSS/FreshRSS/pull/7702) * Add search operator `c:` for categories like `c:23,34` or `!c:45,56` [#7696](https://github.com/FreshRSS/FreshRSS/pull/7696) * Custom feed favicons [#7646](https://github.com/FreshRSS/FreshRSS/pull/7646), [#7704](https://github.com/FreshRSS/FreshRSS/pull/7704), [#7717](https://github.com/FreshRSS/FreshRSS/pull/7717), [#7792](https://github.com/FreshRSS/FreshRSS/pull/7792) * Rework fetch favicons for fewer HTTP requests [#7767](https://github.com/FreshRSS/FreshRSS/pull/7767) * Add more unicity criteria based on title and/or content [#7789](https://github.com/FreshRSS/FreshRSS/pull/7789) * Automatically restore user configuration from backup [#7682](https://github.com/FreshRSS/FreshRSS/pull/7682) * API add support for states in `s` parameter of `streamId` [#7695](https://github.com/FreshRSS/FreshRSS/pull/7695) * Improve sharing via Print [#7728](https://github.com/FreshRSS/FreshRSS/pull/7728) * Redirect to the login page from bookmarklet instead of 403 [#7782](https://github.com/FreshRSS/FreshRSS/pull/7782) * Clean local cache more often, when refreshing feeds [#7827](https://github.com/FreshRSS/FreshRSS/pull/7827) * Security * Implement reauthentication (*sudo* mode) [#7753](https://github.com/FreshRSS/FreshRSS/pull/7753) * Add `Content-Security-Policy: frame-ancestors` [#7677](https://github.com/FreshRSS/FreshRSS/pull/7677) * Ensure CSP everywhere [#7810](https://github.com/FreshRSS/FreshRSS/pull/7810) * Show warning when unsafe CSP policy is in use [#7804](https://github.com/FreshRSS/FreshRSS/pull/7804) * Fix access rights when creating a new user [#7783](https://github.com/FreshRSS/FreshRSS/pull/7783) * Improve security of form for user details [#7771](https://github.com/FreshRSS/FreshRSS/pull/7771), [#7786](https://github.com/FreshRSS/FreshRSS/pull/7786) * Disallow setting non-existent theme [#7722](https://github.com/FreshRSS/FreshRSS/pull/7722) * Regenerate cookie ID after logging out [#7762](https://github.com/FreshRSS/FreshRSS/pull/7762) * Require current password when setting new password [#7763](https://github.com/FreshRSS/FreshRSS/pull/7763) * Add missing access checks for feed-related actions [#7768](https://github.com/FreshRSS/FreshRSS/pull/7768) * Strip more unsafe attributes such as `referrerpolicy`, `ping` [#7770](https://github.com/FreshRSS/FreshRSS/pull/7770) * Remove unneeded execution permissions [#7802](https://github.com/FreshRSS/FreshRSS/pull/7802) * Bug fixing * Fix redirections when scraping from HTML [#7654](https://github.com/FreshRSS/FreshRSS/pull/7654), [#7741](https://github.com/FreshRSS/FreshRSS/pull/7741) * Fix multiple authentication HTTP headers [#7703](https://github.com/FreshRSS/FreshRSS/pull/7703) * Fix HTML queries with a single feed [#7730](https://github.com/FreshRSS/FreshRSS/pull/7730) * WebSub: only perform a redirection when coming from WebSub [#7738](https://github.com/FreshRSS/FreshRSS/pull/7738) * Include enclosures in entries’ hash [#7719](https://github.com/FreshRSS/FreshRSS/pull/7719) * Negative side-effect: users of the option to *automatically mark updated articles as unread* will once have some articles with enclosures re-appear as unread * Fix cancellation of slider exit UI [#7705](https://github.com/FreshRSS/FreshRSS/pull/7705) * Honor *disable update* on update page [#7733](https://github.com/FreshRSS/FreshRSS/pull/7733) * Fix no registration limit setting [#7751](https://github.com/FreshRSS/FreshRSS/pull/7751) * Fix XML encoding of sharing functions [#7822](https://github.com/FreshRSS/FreshRSS/pull/7822) * SimplePie * Fix propagation of HTTP error codes [#7670](https://github.com/FreshRSS/FreshRSS/pull/7670) * Fix support for XML feeds with HTML entities [#7689](https://github.com/FreshRSS/FreshRSS/pull/7689), [simplepie#915](https://github.com/simplepie/simplepie/pull/915) * Fix feeds encoded in UTF-16LE [#7691](https://github.com/FreshRSS/FreshRSS/pull/7691), [simplepie#916](https://github.com/simplepie/simplepie/pull/916) * Various upstream contributions [simplepie#917](https://github.com/simplepie/simplepie/pull/917), [simplepie#924](https://github.com/simplepie/simplepie/pull/924), [simplepie#926](https://github.com/simplepie/simplepie/pull/926), [simplepie#932](https://github.com/simplepie/simplepie/pull/932), [simplepie#933](https://github.com/simplepie/simplepie/pull/933) * Sync upstream [#7706](https://github.com/FreshRSS/FreshRSS/pull/7706), [FreshRSS/simplepie#45](https://github.com/FreshRSS/simplepie/pull/45), [#7775](https://github.com/FreshRSS/FreshRSS/pull/7775), [FreshRSS/simplepie#50](https://github.com/FreshRSS/simplepie/pull/50), [#7824](https://github.com/FreshRSS/FreshRSS/pull/7824), [#7825](https://github.com/FreshRSS/FreshRSS/pull/7825), * Fix regex *Backtrack limit was exhausted* in `clean_hash()` [#7813](https://github.com/FreshRSS/FreshRSS/pull/7813), [FreshRSS/simplepie#48](https://github.com/FreshRSS/simplepie/pull/48) * Deployment * Docker default image (Debian 12 Bookworm) updated to PHP 8.2.29 [#7805](https://github.com/FreshRSS/FreshRSS/pull/7805) * Docker alternative image updated to Alpine 3.22 with PHP 8.4.11 and Apache 2.4.65 [#7740](https://github.com/FreshRSS/FreshRSS/pull/7740), [#7740](https://github.com/FreshRSS/FreshRSS/pull/7740), [#7803](https://github.com/FreshRSS/FreshRSS/pull/7803) * Start supporting PHP 8.5+ [#7787](https://github.com/FreshRSS/FreshRSS/pull/7787), [#7826](https://github.com/FreshRSS/FreshRSS/pull/7826) * Docker Alpine dev image `:newest` updated to PHP 8.5-alpha and Apache 2.4.65 [#7773](https://github.com/FreshRSS/FreshRSS/pull/7773) * Docker: interpolate `FRESHRSS_INSTALL` and `FRESHRSS_USER` variables [#7725](https://github.com/FreshRSS/FreshRSS/pull/7725) * Docker: Reduce how much data needs to be chown/chmod’ed on container startup [#7793](https://github.com/FreshRSS/FreshRSS/pull/7793) * Test for database PDO typing support during install (relevant for MySQL / MariaDB with obsolete driver) [#7651](https://github.com/FreshRSS/FreshRSS/pull/7651) * Extensions * Add API endpoint for extensions [#7576](https://github.com/FreshRSS/FreshRSS/pull/7576) * Expose the reading modes for extensions [#7668](https://github.com/FreshRSS/FreshRSS/pull/7668), [#7688](https://github.com/FreshRSS/FreshRSS/pull/7688) * New extension hook `before_login_btn` [#7761](https://github.com/FreshRSS/FreshRSS/pull/7761) * UI * Improve *mark as read* request showing popup due to `onbeforeunload` [#7554](https://github.com/FreshRSS/FreshRSS/pull/7554) * Fix lazy-loading for `