Update freshrss/freshrss Docker tag to v1.30.0 #34

Merged
mathieu merged 1 commit from renovate/freshrss-freshrss-1.x into main 2026-09-10 07:52:05 +00:00
Collaborator

This PR contains the following updates:

Package Update Change
freshrss/freshrss (source) minor 1.29.11.30.0

Release Notes

FreshRSS/FreshRSS (freshrss/freshrss)

v1.30.0

Compare Source

  • Security
    • 💥 SSRF mitigation: disallow access to local networks such as 127.0.0.1 by default, for security reasons (breaking change) #​8400,
      #​8950, #​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)
    • 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
  • 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
    • Fix outdated username length hint on registration and install forms #​9013
    • Redirect away from wrong URL paths #​9075
    • Fix auto-share shortcut on first use #​9072
    • Exclude hidden feeds from global view counts #​9152
    • Fix only the last <media:credit> being written to the RSS output #​9174
  • CLI
    • New cli/reconfigure-user.php to read/write per-user config attributes #​8873
    • Report new articles count per feed in app/actualize_script.php output #​8948
    • Output a diagnostic when the cli/health.php check fails #​8980
  • API
    • Add a warning message to the API password section and a log warning when a client uses GET instead of recommended POST #​8845
    • Fever API: log the client IP address on authentication failure #​8981
    • WebSub: ignore HTTP/HTTPS scheme difference in Self URL comparison #​9005
  • Deployment
    • Docker alternative image updated to Alpine 3.24 with PHP 8.5.7 and Apache 2.4.67 #​8916
    • Start supporting PHP 8.6+
      • Docker dev :newest with PHP 8.6 #​9155
    • Docker: attach provenance and SBOM attestations to the published image #​9150
    • Apache use only CONN_REMOTE_ADDR in logs when mod_remoteip is available, for compatibility with LiteSpeed Web Server #​8890
    • Fix .dockerignore being ignored during build in CI #​9001
    • New ENABLE_ACCESS_LOG environment variable to disable access logs #​9191
    • Check GMP during 32-bit installation #​9046
    • Improve actualize mutex to allow multiple instances #​9045
    • OIDC: redirect to a default URL on expired auth state instead of 400 #​9143
  • UI
    • Always jump article to top when header is offscreen, also when Stick the article to the top when opened is disabled #​8870
    • Move article header/footer options (feed title, authors and date, icons position, tags) from Reading to Display configuration #​9139
    • Move disable button before remove button in user management #​8944
    • Keep scroll position of slider after form submit #​8974
    • Group export feeds by category #​9079, #​9154
    • Sort feed names with locale-aware collation #​8985
    • Sort labels with locale-aware collation #​9023
    • Format unread counter in title on page load #​9263
    • Display slider after submit for all buttons in feed update UI #​8999
    • Improve aside keyboard navigation #​9202
    • Allows usage of Ctrl/Shift keys with the open website shortcut #​9186
    • Fix padding for .nav_menu in Alternative-Dark, Flat, and Nord themes #​8901
    • Fix typo in alert error border color variable #​9266
    • Use JavaScript Event() constructor instead of deprecated initEvent() #​9035
    • Use :user-invalid instead of :invalid for CSS form field styling #​9025
    • Remove unused simple layout #​8998
    • Various UI and style improvements: #​8823, #​8824,
      #​9140, #​9145
  • Extensions
    • Minor Minz_Extension typing #​8952
    • Improve extension list fetch diagnostics #​9055
    • Fix a PHP warning in Serve action #​9267
    • Fix extension settings cancel action #​9053
    • Fix sharing menu conflicts with extensions #​9074
    • Add read status hook for entries #​8995
    • Dispatch a new JavaScript event freshrss:entryStateChange when an entry finishes being marked read/unread #​9031
    • Redirect after saving user CSS/JS so changes apply immediately #​9006
  • I18n
  • Misc.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [freshrss/freshrss](https://freshrss.org/) ([source](https://github.com/FreshRSS/FreshRSS)) | minor | `1.29.1` → `1.30.0` | --- ### Release Notes <details> <summary>FreshRSS/FreshRSS (freshrss/freshrss)</summary> ### [`v1.30.0`](https://github.com/FreshRSS/FreshRSS/blob/HEAD/CHANGELOG.md#2026-09-09-FreshRSS-1300) [Compare Source](https://github.com/FreshRSS/FreshRSS/compare/1.29.1...1.30.0) - Security - 💥 SSRF mitigation: disallow access to local networks such as `127.0.0.1` by default, for security reasons (breaking change) [#&#8203;8400](https://github.com/FreshRSS/FreshRSS/pull/8400), [#&#8203;8950](https://github.com/FreshRSS/FreshRSS/pull/8950), [#&#8203;9195](https://github.com/FreshRSS/FreshRSS/pull/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) - Fix auth CSRFs (login and register actions) [#&#8203;9171](https://github.com/FreshRSS/FreshRSS/pull/9171) - Log invalid challenge and ignore JSON error during login [#&#8203;9278](https://github.com/FreshRSS/FreshRSS/pull/9278) - Disallow fetching of non remote URI [#&#8203;9215](https://github.com/FreshRSS/FreshRSS/pull/9215) - Only allow HTTP/HTTPS schemes for enclosure and thumbnail URLs [#&#8203;9272](https://github.com/FreshRSS/FreshRSS/pull/9272) - Fix access control in `rss` and `opml` actions [#&#8203;8912](https://github.com/FreshRSS/FreshRSS/pull/8912) - Refactor to use CSRF field directly instead of borrowing it from a form [#&#8203;9169](https://github.com/FreshRSS/FreshRSS/pull/9169), [#&#8203;9205](https://github.com/FreshRSS/FreshRSS/pull/9205) - Cleaner limit anonymous mode to default user [#&#8203;9235](https://github.com/FreshRSS/FreshRSS/pull/9235) - Fix HTML ingestions in templates [#&#8203;9146](https://github.com/FreshRSS/FreshRSS/pull/9146), [#&#8203;9170](https://github.com/FreshRSS/FreshRSS/pull/9170) - Fix bad header filtering bypass [#&#8203;8964](https://github.com/FreshRSS/FreshRSS/pull/8964) - Sanitize all fields during JSON import [#&#8203;9168](https://github.com/FreshRSS/FreshRSS/pull/9168) - Gate `greader` (JSON) user query share format behind *Share by OPML* [#&#8203;9248](https://github.com/FreshRSS/FreshRSS/pull/9248) - Public OPML should not contain cURL parameters [#&#8203;9070](https://github.com/FreshRSS/FreshRSS/pull/9070) - Ignore security-relevant OPML attributes for dynamic OPML sources [#&#8203;9276](https://github.com/FreshRSS/FreshRSS/pull/9276) - Strip feed URL credentials from anonymous user query output [#&#8203;9246](https://github.com/FreshRSS/FreshRSS/pull/9246) - Set limits for regex during search [#&#8203;8913](https://github.com/FreshRSS/FreshRSS/pull/8913) - Fix path disclosure in cache error message [#&#8203;9206](https://github.com/FreshRSS/FreshRSS/pull/9206) - Limit the length and parentheses nesting depth of a search query [#&#8203;9277](https://github.com/FreshRSS/FreshRSS/pull/9277) - Use timing-safe comparison for tokens [#&#8203;8945](https://github.com/FreshRSS/FreshRSS/pull/8945) - Use `hash_equals()` for GReader API token comparison [#&#8203;9183](https://github.com/FreshRSS/FreshRSS/pull/9183) - Mailer: allow disabling SMTPAutoTLS via config [#&#8203;9026](https://github.com/FreshRSS/FreshRSS/pull/9026) - Warn during install if document root does not point to `./p/` [#&#8203;9010](https://github.com/FreshRSS/FreshRSS/pull/9010) - Stop the unread-count poller after the session ends [#&#8203;9065](https://github.com/FreshRSS/FreshRSS/pull/9065) - Add remote IP address to warning on form login [#&#8203;8942](https://github.com/FreshRSS/FreshRSS/pull/8942) - Pin the GitHub actions using SHA [#&#8203;9200](https://github.com/FreshRSS/FreshRSS/pull/9200) - Harden cache and SimplePie cache deserialization [#&#8203;9273](https://github.com/FreshRSS/FreshRSS/pull/9273) - SimplePie - Security: Disallow `javascript:` URI scheme (protocol) [#&#8203;8263](https://github.com/FreshRSS/FreshRSS/pull/8263) - Fix wrong player parent logic leading to invalid type [#&#8203;8893](https://github.com/FreshRSS/FreshRSS/pull/8893), [simplepie#978](https://github.com/simplepie/simplepie/pull/978) - Consistently enable `XML_OPTION_PARSE_HUGE` [#&#8203;8894](https://github.com/FreshRSS/FreshRSS/pull/8894), [simplepie#977](https://github.com/simplepie/simplepie/pull/977) - Fix null warning in IRI for PHP 8.5+ [#&#8203;8918](https://github.com/FreshRSS/FreshRSS/pull/8918), [simplepie#979](https://github.com/simplepie/simplepie/pull/979) - Fix sanitizer whitelist stripping order [#&#8203;9066](https://github.com/FreshRSS/FreshRSS/pull/9066) - Show only one representation per `media:group` [#&#8203;9009](https://github.com/FreshRSS/FreshRSS/pull/9009) - Bump upstream SimplePie [#&#8203;8947](https://github.com/FreshRSS/FreshRSS/pull/8947) - Features - Filter global view feed list by state and search [#&#8203;9132](https://github.com/FreshRSS/FreshRSS/pull/9132) - Use global view when searching from subscription page [#&#8203;9144](https://github.com/FreshRSS/FreshRSS/pull/9144) - New option to hide badges showing number of unread articles (*Phantom Obligation*) [#&#8203;8844](https://github.com/FreshRSS/FreshRSS/pull/8844) - Refresh only feeds in the current view [#&#8203;9060](https://github.com/FreshRSS/FreshRSS/pull/9060) - Offer to add a prefix when resharing user labels [#&#8203;9236](https://github.com/FreshRSS/FreshRSS/pull/9236) - Add log search to the logs page [#&#8203;9059](https://github.com/FreshRSS/FreshRSS/pull/9059) - Add configurable `log_level` system setting [#&#8203;9185](https://github.com/FreshRSS/FreshRSS/pull/9185) - New option to keep or not the custom sort order when navigating between categories and feeds [#&#8203;8969](https://github.com/FreshRSS/FreshRSS/pull/8969) - New per-feed option to show or hide enclosures (attachments) [#&#8203;9015](https://github.com/FreshRSS/FreshRSS/pull/9015) - Detect JSON feeds from URLs containing `json` [#&#8203;9058](https://github.com/FreshRSS/FreshRSS/pull/9058) - Also when subscribing via the API [#&#8203;9167](https://github.com/FreshRSS/FreshRSS/pull/9167) - Order categories during OPML import/export according to position [#&#8203;9203](https://github.com/FreshRSS/FreshRSS/pull/9203) - OPML: include each feed’s refresh interval (TTL) in export/import [#&#8203;8982](https://github.com/FreshRSS/FreshRSS/pull/8982) - Log failed CSS content retrieval (Web scraping) [#&#8203;9077](https://github.com/FreshRSS/FreshRSS/pull/9077) - Allow providing a category when adding a feed by bookmarklet [#&#8203;9047](https://github.com/FreshRSS/FreshRSS/pull/9047) - Add LinkAce sharing service [#&#8203;9024](https://github.com/FreshRSS/FreshRSS/pull/9024) - Add Nextcloud Bookmarks sharing service [#&#8203;9032](https://github.com/FreshRSS/FreshRSS/pull/9032) - Bug fixing - Fix lost elements while parsing search query [#&#8203;8884](https://github.com/FreshRSS/FreshRSS/pull/8884) - Fix “mark as read older than…” widening the active search [#&#8203;9173](https://github.com/FreshRSS/FreshRSS/pull/9173) - Fix saving user queries [#&#8203;9190](https://github.com/FreshRSS/FreshRSS/pull/9190) - Fix SQL errors breaking some regex searches with MySQL / MariaDB [#&#8203;9036](https://github.com/FreshRSS/FreshRSS/pull/9036) - Fix marking filtered label articles as read in SQLite and PostgreSQL [#&#8203;9264](https://github.com/FreshRSS/FreshRSS/pull/9264) - Fix tagging an already-tagged entry on PostgreSQL raising a SQL error instead of being a no-op [#&#8203;9136](https://github.com/FreshRSS/FreshRSS/pull/9136) - PostgreSQL: make committing new entries resilient to duplicate keys [#&#8203;9231](https://github.com/FreshRSS/FreshRSS/pull/9231) - Preserve negative timezone offsets in date intervals [#&#8203;9071](https://github.com/FreshRSS/FreshRSS/pull/9071) - Fix feed dropdown bugs due to hash desync [#&#8203;8949](https://github.com/FreshRSS/FreshRSS/pull/8949) - Fix slider not reinitializing after form submit [#&#8203;8973](https://github.com/FreshRSS/FreshRSS/pull/8973) - Minz: Skip loading duplicated JS/CSS assets [#&#8203;9000](https://github.com/FreshRSS/FreshRSS/pull/9000) - Respect `simplepie_syslog_enabled` for the *uses cache* logs [#&#8203;8986](https://github.com/FreshRSS/FreshRSS/pull/8986) - Fix statistics repartition averages [#&#8203;8996](https://github.com/FreshRSS/FreshRSS/pull/8996) - Fix article hover date visibility [#&#8203;8997](https://github.com/FreshRSS/FreshRSS/pull/8997) - Keep search and state filters when marking articles as read [#&#8203;9007](https://github.com/FreshRSS/FreshRSS/pull/9007) - Fix `--db-prefix` silently drops following CLI flags [#&#8203;9042](https://github.com/FreshRSS/FreshRSS/pull/9042) - Remove stale dynamic favicon links [#&#8203;9127](https://github.com/FreshRSS/FreshRSS/pull/9127) - Fix desync between favicon and title unread counters [#&#8203;9262](https://github.com/FreshRSS/FreshRSS/pull/9262) - Fix outdated username length hint on registration and install forms [#&#8203;9013](https://github.com/FreshRSS/FreshRSS/pull/9013) - Redirect away from wrong URL paths [#&#8203;9075](https://github.com/FreshRSS/FreshRSS/pull/9075) - Fix auto-share shortcut on first use [#&#8203;9072](https://github.com/FreshRSS/FreshRSS/pull/9072) - Exclude hidden feeds from global view counts [#&#8203;9152](https://github.com/FreshRSS/FreshRSS/pull/9152) - Fix only the last `<media:credit>` being written to the RSS output [#&#8203;9174](https://github.com/FreshRSS/FreshRSS/pull/9174) - CLI - New `cli/reconfigure-user.php` to read/write per-user config attributes [#&#8203;8873](https://github.com/FreshRSS/FreshRSS/pull/8873) - Report new articles count per feed in `app/actualize_script.php` output [#&#8203;8948](https://github.com/FreshRSS/FreshRSS/pull/8948) - Output a diagnostic when the `cli/health.php` check fails [#&#8203;8980](https://github.com/FreshRSS/FreshRSS/pull/8980) - API - Add a warning message to the API password section and a log warning when a client uses GET instead of recommended POST [#&#8203;8845](https://github.com/FreshRSS/FreshRSS/pull/8845) - Fever API: log the client IP address on authentication failure [#&#8203;8981](https://github.com/FreshRSS/FreshRSS/pull/8981) - WebSub: ignore HTTP/HTTPS scheme difference in Self URL comparison [#&#8203;9005](https://github.com/FreshRSS/FreshRSS/pull/9005) - Deployment - Docker alternative image updated to Alpine 3.24 with PHP 8.5.7 and Apache 2.4.67 [#&#8203;8916](https://github.com/FreshRSS/FreshRSS/pull/8916) - Start supporting PHP 8.6+ - Docker dev `:newest` with PHP 8.6 [#&#8203;9155](https://github.com/FreshRSS/FreshRSS/pull/9155) - Docker: attach provenance and SBOM attestations to the published image [#&#8203;9150](https://github.com/FreshRSS/FreshRSS/pull/9150) - Apache use only `CONN_REMOTE_ADDR` in logs when `mod_remoteip` is available, for compatibility with LiteSpeed Web Server [#&#8203;8890](https://github.com/FreshRSS/FreshRSS/pull/8890) - Fix `.dockerignore` being ignored during build in CI [#&#8203;9001](https://github.com/FreshRSS/FreshRSS/pull/9001) - New `ENABLE_ACCESS_LOG` environment variable to disable access logs [#&#8203;9191](https://github.com/FreshRSS/FreshRSS/pull/9191) - Check GMP during 32-bit installation [#&#8203;9046](https://github.com/FreshRSS/FreshRSS/pull/9046) - Improve actualize mutex to allow multiple instances [#&#8203;9045](https://github.com/FreshRSS/FreshRSS/pull/9045) - OIDC: redirect to a default URL on expired auth state instead of 400 [#&#8203;9143](https://github.com/FreshRSS/FreshRSS/pull/9143) - UI - Always jump article to top when header is offscreen, also when *Stick the article to the top when opened* is disabled [#&#8203;8870](https://github.com/FreshRSS/FreshRSS/pull/8870) - Move article header/footer options (feed title, authors and date, icons position, tags) from *Reading* to *Display* configuration [#&#8203;9139](https://github.com/FreshRSS/FreshRSS/pull/9139) - Move disable button before remove button in user management [#&#8203;8944](https://github.com/FreshRSS/FreshRSS/pull/8944) - Keep scroll position of slider after form submit [#&#8203;8974](https://github.com/FreshRSS/FreshRSS/pull/8974) - Group export feeds by category [#&#8203;9079](https://github.com/FreshRSS/FreshRSS/pull/9079), [#&#8203;9154](https://github.com/FreshRSS/FreshRSS/pull/9154) - Sort feed names with locale-aware collation [#&#8203;8985](https://github.com/FreshRSS/FreshRSS/pull/8985) - Sort labels with locale-aware collation [#&#8203;9023](https://github.com/FreshRSS/FreshRSS/pull/9023) - Format unread counter in title on page load [#&#8203;9263](https://github.com/FreshRSS/FreshRSS/pull/9263) - Display slider after submit for all buttons in feed update UI [#&#8203;8999](https://github.com/FreshRSS/FreshRSS/pull/8999) - Improve aside keyboard navigation [#&#8203;9202](https://github.com/FreshRSS/FreshRSS/pull/9202) - Allows usage of <kbd>Ctrl/Shift</kbd> keys with the open website shortcut [#&#8203;9186](https://github.com/FreshRSS/FreshRSS/pull/9186) - Fix padding for `.nav_menu` in Alternative-Dark, Flat, and Nord themes [#&#8203;8901](https://github.com/FreshRSS/FreshRSS/pull/8901) - Fix typo in alert error border `color` variable [#&#8203;9266](https://github.com/FreshRSS/FreshRSS/pull/9266) - Use JavaScript `Event()` constructor instead of deprecated `initEvent()` [#&#8203;9035](https://github.com/FreshRSS/FreshRSS/pull/9035) - Use `:user-invalid` instead of `:invalid` for CSS form field styling [#&#8203;9025](https://github.com/FreshRSS/FreshRSS/pull/9025) - Remove unused simple layout [#&#8203;8998](https://github.com/FreshRSS/FreshRSS/pull/8998) - Various UI and style improvements: [#&#8203;8823](https://github.com/FreshRSS/FreshRSS/pull/8823), [#&#8203;8824](https://github.com/FreshRSS/FreshRSS/pull/8824), [#&#8203;9140](https://github.com/FreshRSS/FreshRSS/pull/9140), [#&#8203;9145](https://github.com/FreshRSS/FreshRSS/pull/9145) - Extensions - Minor `Minz_Extension` typing [#&#8203;8952](https://github.com/FreshRSS/FreshRSS/pull/8952) - Improve extension list fetch diagnostics [#&#8203;9055](https://github.com/FreshRSS/FreshRSS/pull/9055) - Fix a PHP warning in *Serve* action [#&#8203;9267](https://github.com/FreshRSS/FreshRSS/pull/9267) - Fix extension settings cancel action [#&#8203;9053](https://github.com/FreshRSS/FreshRSS/pull/9053) - Fix sharing menu conflicts with extensions [#&#8203;9074](https://github.com/FreshRSS/FreshRSS/pull/9074) - Add read status hook for entries [#&#8203;8995](https://github.com/FreshRSS/FreshRSS/pull/8995) - Dispatch a new JavaScript event `freshrss:entryStateChange` when an entry finishes being marked read/unread [#&#8203;9031](https://github.com/FreshRSS/FreshRSS/pull/9031) - Redirect after saving user CSS/JS so changes apply immediately [#&#8203;9006](https://github.com/FreshRSS/FreshRSS/pull/9006) - I18n - New plural system [#&#8203;8988](https://github.com/FreshRSS/FreshRSS/pull/8988) - Pluralize the *new articles* count message - Prefer OS-bundled Japanese fonts when UI language is Japanese [#&#8203;9002](https://github.com/FreshRSS/FreshRSS/pull/9002) - Add Azerbaijani [#&#8203;9269](https://github.com/FreshRSS/FreshRSS/pull/9269) - Add Lithuanian [#&#8203;9201](https://github.com/FreshRSS/FreshRSS/pull/9201), [#&#8203;9213](https://github.com/FreshRSS/FreshRSS/pull/9213) - Improve Brazilian Portuguese [#&#8203;9240](https://github.com/FreshRSS/FreshRSS/pull/9240), [#&#8203;9242](https://github.com/FreshRSS/FreshRSS/pull/9242) - Improve German [#&#8203;9149](https://github.com/FreshRSS/FreshRSS/pull/9149) - Improve Greek [#&#8203;8977](https://github.com/FreshRSS/FreshRSS/pull/8977), [#&#8203;9038](https://github.com/FreshRSS/FreshRSS/pull/9038) - Improve Hungarian [#&#8203;8879](https://github.com/FreshRSS/FreshRSS/pull/8879) - Improve Indonesian (Bahasa Indonesia) [#&#8203;9220](https://github.com/FreshRSS/FreshRSS/pull/9220) - Improve Italian [#&#8203;8880](https://github.com/FreshRSS/FreshRSS/pull/8880) - Improve Japanese [#&#8203;9064](https://github.com/FreshRSS/FreshRSS/pull/9064) - Improve Persian [#&#8203;8923](https://github.com/FreshRSS/FreshRSS/pull/8923) - Improve Spanish [#&#8203;8878](https://github.com/FreshRSS/FreshRSS/pull/8878), [#&#8203;9245](https://github.com/FreshRSS/FreshRSS/pull/9245) - Improve Traditional Chinese [#&#8203;9037](https://github.com/FreshRSS/FreshRSS/pull/9037), [#&#8203;9069](https://github.com/FreshRSS/FreshRSS/pull/9069), [#&#8203;9223](https://github.com/FreshRSS/FreshRSS/pull/9223) - Improve Turkish [#&#8203;8966](https://github.com/FreshRSS/FreshRSS/pull/8966), [#&#8203;8971](https://github.com/FreshRSS/FreshRSS/pull/8971), [#&#8203;8970](https://github.com/FreshRSS/FreshRSS/pull/8970), [#&#8203;8989](https://github.com/FreshRSS/FreshRSS/pull/8989) - Improve Ukrainian [#&#8203;8871](https://github.com/FreshRSS/FreshRSS/pull/8871) - Refactor user query translation keys [#&#8203;9049](https://github.com/FreshRSS/FreshRSS/pull/9049) - Misc. - Update to PHPMailer 7.1.1 [#&#8203;8907](https://github.com/FreshRSS/FreshRSS/pull/8907) - Improve PHP code [#&#8203;8906](https://github.com/FreshRSS/FreshRSS/pull/8906), [#&#8203;9156](https://github.com/FreshRSS/FreshRSS/pull/9156) - Fix PHPStan 2.2.2 in CLI [#&#8203;8911](https://github.com/FreshRSS/FreshRSS/pull/8911) - Migrate `markdownlint-cli` to `markdownlint-cli2` [#&#8203;8987](https://github.com/FreshRSS/FreshRSS/pull/8987) - Update dev dependencies [#&#8203;8904](https://github.com/FreshRSS/FreshRSS/pull/8904), [#&#8203;8905](https://github.com/FreshRSS/FreshRSS/pull/8905), [#&#8203;8926](https://github.com/FreshRSS/FreshRSS/pull/8926), [#&#8203;8939](https://github.com/FreshRSS/FreshRSS/pull/8939), [#&#8203;8940](https://github.com/FreshRSS/FreshRSS/pull/8940), [#&#8203;8963](https://github.com/FreshRSS/FreshRSS/pull/8963), [#&#8203;8961](https://github.com/FreshRSS/FreshRSS/pull/8961), [#&#8203;8959](https://github.com/FreshRSS/FreshRSS/pull/8959), [#&#8203;8958](https://github.com/FreshRSS/FreshRSS/pull/8958), [#&#8203;8962](https://github.com/FreshRSS/FreshRSS/pull/8962), [#&#8203;8960](https://github.com/FreshRSS/FreshRSS/pull/8960), [#&#8203;9148](https://github.com/FreshRSS/FreshRSS/pull/9148), [#&#8203;9162](https://github.com/FreshRSS/FreshRSS/pull/9162), [#&#8203;9165](https://github.com/FreshRSS/FreshRSS/pull/9165), [#&#8203;9158](https://github.com/FreshRSS/FreshRSS/pull/9158), [#&#8203;9159](https://github.com/FreshRSS/FreshRSS/pull/9159), [#&#8203;9176](https://github.com/FreshRSS/FreshRSS/pull/9176), [#&#8203;9178](https://github.com/FreshRSS/FreshRSS/pull/9178), [#&#8203;9179](https://github.com/FreshRSS/FreshRSS/pull/9179), [#&#8203;9219](https://github.com/FreshRSS/FreshRSS/pull/9219), [#&#8203;9253](https://github.com/FreshRSS/FreshRSS/pull/9253), [#&#8203;9254](https://github.com/FreshRSS/FreshRSS/pull/9254), [#&#8203;9255](https://github.com/FreshRSS/FreshRSS/pull/9255), [#&#8203;9257](https://github.com/FreshRSS/FreshRSS/pull/9257) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My43Ni4yIiwidXBkYXRlZEluVmVyIjoiNDMuNzYuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
mathieu/charts!34
No description provided.