Merge upstream#71
Merged
Merged
Conversation
`get_headers()` actually return `parsed_headers` property which we did not previously set.
…_url Make it clearer what request it is from and match the getter method name.
It is slightly cleaner.
…ted_url Make it clearer what request it is from and match the getter method name.
In 1.9.0, we extended `Sniffer` to take any `Response`, not just `File`, and had `Locator` pass it `Response`s. Unfortunately, `Sniffer` is not final so that change might have broken existing third-party subclasses only accepting `File`. (Though it will at least not fail with fatal contravariance error since PHP does not enforce Liskov Substitution Principle for constructors.) Let’s go back to `Sniffer` only accepting `File`.
This should make it easier to parse for humans.
These will be immediately overwritten.
On PHP < 8.1.21, we will not be able to disable `CURLOPT_ACCEPT_ENCODING` by setting it to `NULL`: php/php-src#11433 `curl_setopt` with such values will be a no-op so the secound `curl_exec` will still fail with `CURLE_BAD_CONTENT_ENCODING` and return an empty body. Even worse, it will still report 200 in `CURLINFO_HTTP_CODE` so `FileClient` will not throw an exception because the `status_code` property is not 0. Let’s extract the code so that we can create a fresh `CurlHandle` and later make the `CURLOPT_ACCEPT_ENCODING` conditional. Unfortunately, since PHP 8.0 changed `curl_init` to return `CurlHandle` instead of `resource`, and PHPStan has no simple way to make the return type depend on PHP version, we have to resort to an ugly hack using `typeAliases`.
Setting the CURLOPT_ENCODING to 'none' is not officially supported by cURL. Setting it in case of cURL receiving an invalid Content-Encoding header from the server and re-trying would not fix the issue. The current implementation already sets cURL up to send an Accept-Encoding header with all supported encodings a couple of lines above this change. If the fetch still returns a BAD_CONTENT_ENCODING error, the server already ignored the Accept-Encoding headers once. This change, instead of sending 'none' in a re-try, disables cURL's content encoding handling (in practice, handling compression). Co-authored-by: Jan Tojnar <jtojnar@gmail.com>
Alkarex
added a commit
to Alkarex/FreshRSS
that referenced
this pull request
Mar 23, 2026
Alkarex
added a commit
to FreshRSS/FreshRSS
that referenced
this pull request
Mar 24, 2026
doonga
added a commit
to greyrock-labs/home-ops
that referenced
this pull request
May 13, 2026
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [freshrss/freshrss](https://freshrss.org/) ([source](https://github.com/FreshRSS/FreshRSS)) | minor | `1.28.1-alpine` → `1.29.0-alpine` | --- ### Release Notes <details> <summary>FreshRSS/FreshRSS (freshrss/freshrss)</summary> ### [`v1.29.0`](https://github.com/FreshRSS/FreshRSS/blob/HEAD/CHANGELOG.md#2026-05-10-FreshRSS-1290) [Compare Source](FreshRSS/FreshRSS@1.28.1...1.29.0) - Features - New sort order preferences at global, category, and feed levels [#​8234](FreshRSS/FreshRSS#8234) - New filtering by date of *Server modification date* [#​8131](FreshRSS/FreshRSS#8131), [#​8576](FreshRSS/FreshRSS#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](FreshRSS/FreshRSS#8633) - New option to automatically mark new articles as read if an identical GUID already exists in the same category [#​8673](FreshRSS/FreshRSS#8673) - Automatic feed visibility/priority during search [#​8609](FreshRSS/FreshRSS#8609) - Add feed visibility filter to statistics view *unread dates* [#​8489](FreshRSS/FreshRSS#8489) - Add option to enable/disable notifications, also for PWA [#​8458](FreshRSS/FreshRSS#8458) - Add a form to create new user queries on the *User Queries* page [#​8623](FreshRSS/FreshRSS#8623) - Allow WebSub hub push from same private network [#​8450](FreshRSS/FreshRSS#8450) - Support category field in JSON feed import [#​8786](FreshRSS/FreshRSS#8786) - Bug fixing - Fix wrong search `toString` in case of regex-looking string [#​8479](FreshRSS/FreshRSS#8479) - Fix article *last seen date* in case of feed errors [#​8646](FreshRSS/FreshRSS#8646) - Fix search expansion with backslash [#​8497](FreshRSS/FreshRSS#8497) - Fix user query parsing [#​8543](FreshRSS/FreshRSS#8543) - Fix search in shared user queries [#​8789](FreshRSS/FreshRSS#8789) - Fix redirect to wrong view after mark as read in *reader* and *global* views [#​8552](FreshRSS/FreshRSS#8552) - Fix SQLite paging when sorting by article length [#​8594](FreshRSS/FreshRSS#8594) - Fix change sorting during paging [#​8688](FreshRSS/FreshRSS#8688) - Fix SQL keyset pagination when sorting by category name [#​8597](FreshRSS/FreshRSS#8597) - Fix SQL duplicates in the user labels when sorting randomly [#​8626](FreshRSS/FreshRSS#8626) - Fix wrong error redirect in subscription management [#​8625](FreshRSS/FreshRSS#8625) - Fix do not include hidden feeds when counting total number of unread articles [#​8715](FreshRSS/FreshRSS#8715) - Update user modify date when changing extensions UserJS / UserCSS [#​8607](FreshRSS/FreshRSS#8607) - Non-strict OPML export [#eedefb](FreshRSS/FreshRSS@eedefbd) - Security - Limit cURL to protocols HTTP, HTTPS [#​8713](FreshRSS/FreshRSS#8713) - Better sanitise favicon URLs [#​8714](FreshRSS/FreshRSS#8714) - New setting for `<iframe>` referrer allow list [#​8672](FreshRSS/FreshRSS#8672) - Fix email validation and allow error page for unverified email users [#​8582](FreshRSS/FreshRSS#8582) - Add `allowfullscreen` to `<iframe>` [#​8467](FreshRSS/FreshRSS#8467) - Rewrite `Set-Cookie` using native PHP support of `SameSite` [#​8447](FreshRSS/FreshRSS#8447), [#​8778](FreshRSS/FreshRSS#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](FreshRSS/FreshRSS#8725) - Preventive measure against search ingestion [#​8777](FreshRSS/FreshRSS#8777) - UI - New option to hide sidebar by default [#​8528](FreshRSS/FreshRSS#8528) - Improve mobile view with multiple lines when thumbnails and summaries are shown [#​8631](FreshRSS/FreshRSS#8631) - New option to disable unread counter in tab title and favicon [#​8728](FreshRSS/FreshRSS#8728) - Show time since when a feed has problems [#​8670](FreshRSS/FreshRSS#8670) - Improve add feed UI [#​8683](FreshRSS/FreshRSS#8683) - Improve slider behaviour when using navigate back button [#​8496](FreshRSS/FreshRSS#8496), [#​8524](FreshRSS/FreshRSS#8524) - Improve consistency of slider behaviour after submitting form [#​8612](FreshRSS/FreshRSS#8612) - Create dynamic favicons from SVG instead of PNG canvas [#​8577](FreshRSS/FreshRSS#8577), [#​8588](FreshRSS/FreshRSS#8588) - Only display scrollbar everywhere if there's an overflow (especially for Chromium) [#​8542](FreshRSS/FreshRSS#8542) - Fix CSS padding of `.content pre code` [#​8620](FreshRSS/FreshRSS#8620) - Fix wrong navigation buttons layout on Chromium [#​8606](FreshRSS/FreshRSS#8606) - Fix don’t mark as read if middle click is outside of article link [#​8553](FreshRSS/FreshRSS#8553) - More robust JS [#​8595](FreshRSS/FreshRSS#8595) - Fix sidebar slide animation at narrow viewports [#​8747](FreshRSS/FreshRSS#8747) - Visually dim disabled users in user management table [#​8768](FreshRSS/FreshRSS#8768) - Improve multiple UI themes [#​8711](FreshRSS/FreshRSS#8711), [#​8732](FreshRSS/FreshRSS#8732), [#​8733](FreshRSS/FreshRSS#8733), [#​8734](FreshRSS/FreshRSS#8734), [#​8735](FreshRSS/FreshRSS#8735), [#​8736](FreshRSS/FreshRSS#8736), [#​8737](FreshRSS/FreshRSS#8737), [#​8738](FreshRSS/FreshRSS#8738), [#​8739](FreshRSS/FreshRSS#8739), [#​8743](FreshRSS/FreshRSS#8743), [#​8746](FreshRSS/FreshRSS#8746), [#​8749](FreshRSS/FreshRSS#8749), [#​8761](FreshRSS/FreshRSS#8761), [#​8781](FreshRSS/FreshRSS#8781), [#​8784](FreshRSS/FreshRSS#8784), [#​8785](FreshRSS/FreshRSS#8785) - Various UI and style improvements: [#​8537](FreshRSS/FreshRSS#8537), [#​8538](FreshRSS/FreshRSS#8538), [#​8541](FreshRSS/FreshRSS#8541), [#​8624](FreshRSS/FreshRSS#8624), [#​8731](FreshRSS/FreshRSS#8731), [#​8774](FreshRSS/FreshRSS#8774) - Deployment - Also push Docker images to [GitHub registry](https://github.com/FreshRSS/FreshRSS/pkgs/container/freshrss) [#​8669](FreshRSS/FreshRSS#8669) - Improve support of PHP 8.5+ using `Pdo\Mysql` [#​8526](FreshRSS/FreshRSS#8526) - Add support for Podman in Makefile [#​8456](FreshRSS/FreshRSS#8456) - Re-add database status in installation check [#​8510](FreshRSS/FreshRSS#8510) - Docker / CLI: Allow chown/chmod to fail with warning [#​8635](FreshRSS/FreshRSS#8635) - Extensions - New Webhook extension for automated RSS notifications [Extensions#456](FreshRSS/Extensions#456) - New LLM Classification extension to automatically tag incoming articles based on a prompt sent to an LLM [Extensions#458](FreshRSS/Extensions#458) - New extension methods to get typed configuration values [#​8696](FreshRSS/FreshRSS#8696) - New hook: `Minz_HookType::ActionExecute` [#​8599](FreshRSS/FreshRSS#8599), [#​8603](FreshRSS/FreshRSS#8603) - New hook to modify the list of feeds to actualize [#​8655](FreshRSS/FreshRSS#8655), [#​8675](FreshRSS/FreshRSS#8675) - Allow passing `Minz_HookType` as hook name in `registerHook()` [#​8600](FreshRSS/FreshRSS#8600) - Return more info and status from `httpGet()` [#​8700](FreshRSS/FreshRSS#8700) - Make `httpGet()` cache nullable [#​8705](FreshRSS/FreshRSS#8705) - Allow extensions’ configuration UI to use `select-input-changer` JavaScript helper [#​8721](FreshRSS/FreshRSS#8721) - SimplePie - Bump upstream [#​8628](FreshRSS/FreshRSS#8628), [simplepie#71](FreshRSS/simplepie#71) - New function `get_icon_url()` for feed favicon [simplepie#974](simplepie/simplepie#974) - Fix Undefined array key in `get_thumbnail()` [#​8634](FreshRSS/FreshRSS#8634), [simplepie#970](simplepie/simplepie#970) - Fix int types for enclosures [#​8702](FreshRSS/FreshRSS#8702), [simplepie#975](simplepie/simplepie#975) - Fix HTTPS headers given to SimplePie, e.g. for some HTTP/2 cases [#​8742](FreshRSS/FreshRSS#8742) - CLI - New `cli/purge.php` to apply purge policy [#​8740](FreshRSS/FreshRSS#8740) - I18n - CLI validate language directory names [#​8767](FreshRSS/FreshRSS#8767) - New functions to handle plural, and new `timeago()` [#​8670](FreshRSS/FreshRSS#8670) - Improve German [#​8491](FreshRSS/FreshRSS#8491), [#​8557](FreshRSS/FreshRSS#8557), [#​8689](FreshRSS/FreshRSS#8689), [#​8704](FreshRSS/FreshRSS#8704) - Improve Italian [#​8517](FreshRSS/FreshRSS#8517), [#​8519](FreshRSS/FreshRSS#8519), [#​8554](FreshRSS/FreshRSS#8554), [#​8555](FreshRSS/FreshRSS#8555), [#​8556](FreshRSS/FreshRSS#8556), [#​8566](FreshRSS/FreshRSS#8566) - Improve Latvian [#​6553](FreshRSS/FreshRSS#6553) - Improve Polish [#​8536](FreshRSS/FreshRSS#8536) - Improve Portuguese [#​8649](FreshRSS/FreshRSS#8649) - Improve Simplified Chinese [#​8474](FreshRSS/FreshRSS#8474), [#​8475](FreshRSS/FreshRSS#8475), [#​8476](FreshRSS/FreshRSS#8476) - Improve Traditional Chinese [#​8709](FreshRSS/FreshRSS#8709), [#​8716](FreshRSS/FreshRSS#8716), [#​8723](FreshRSS/FreshRSS#8723), [#​8730](FreshRSS/FreshRSS#8730), [#​8748](FreshRSS/FreshRSS#8748) - Improve Spanish [#​8572](FreshRSS/FreshRSS#8572) - Misc. - Initial conventions for AI agents and humans: `AGENTS.md`, `SKILLS.md`, `instructions.md` [#​8478](FreshRSS/FreshRSS#8478) - Update to CSSXPath 1.5.0 [#​8642](FreshRSS/FreshRSS#8642) - Update to PHPMailer 7.0.2 [#​8483](FreshRSS/FreshRSS#8483) - SQL improve PHP syntax uniformity [#​8604](FreshRSS/FreshRSS#8604) - Trim SQL whitespace before parenthesis [#​8522](FreshRSS/FreshRSS#8522) - Improve PHP code [#​8627](FreshRSS/FreshRSS#8627), [#​8644](FreshRSS/FreshRSS#8644), [#​8753](FreshRSS/FreshRSS#8753), [#​8697](FreshRSS/FreshRSS#8697) - Add dev legacy rules PHPCS 3 [#​8645](FreshRSS/FreshRSS#8645) - Update dev dependencies [#​8469](FreshRSS/FreshRSS#8469), [#​8480](FreshRSS/FreshRSS#8480), [#​8499](FreshRSS/FreshRSS#8499), [#​8545](FreshRSS/FreshRSS#8545), [#​8546](FreshRSS/FreshRSS#8546), [#​8547](FreshRSS/FreshRSS#8547), [#​8617](FreshRSS/FreshRSS#8617), [#​8638](FreshRSS/FreshRSS#8638), [#​8660](FreshRSS/FreshRSS#8660), [#​8661](FreshRSS/FreshRSS#8661), [#​8662](FreshRSS/FreshRSS#8662), [#​8663](FreshRSS/FreshRSS#8663), [#​8664](FreshRSS/FreshRSS#8664), [#​8665](FreshRSS/FreshRSS#8665), [#​8666](FreshRSS/FreshRSS#8666), [#​8667](FreshRSS/FreshRSS#8667), [#​8668](FreshRSS/FreshRSS#8668), [#​8685](FreshRSS/FreshRSS#8685), [#​8752](FreshRSS/FreshRSS#8752), [#​8754](FreshRSS/FreshRSS#8754), [#​8755](FreshRSS/FreshRSS#8755), [#​8756](FreshRSS/FreshRSS#8756), [#​8757](FreshRSS/FreshRSS#8757), [#​8758](FreshRSS/FreshRSS#8758), [#​8772](FreshRSS/FreshRSS#8772), [#​8798](FreshRSS/FreshRSS#8798) </details> --- ### Configuration 📅 **Schedule**: (in timezone America/New_York) - 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 these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNjAuNyIsInVwZGF0ZWRJblZlciI6IjQzLjE2MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Co-authored-by: todd <tpunderson@greyrock.io> Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.