aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
29 hoursDon’t break NetNewsWire’s footnote detection1.28.1-customcustomGravatar Daniel Smith
If NetNewsWire detects that a link points to a footnote within the same post, then tapping on that link will produce a popover displaying the text of said footnote. Otherwise, it is treated as a regular link and opened in the default web browser. Detecting a footnote requires two things: 1. The link URL must consist only of a fragment (i.e. it begins with `#`). 2. There must exist another element (typically `<li>`) in the post’s HTML with an `id` attribute matching the fragment (that is, the text after `#`). Because FreshRSS’s web frontend can display multiple articles at once, all relative URLs (including bare fragments) are automatically converted to absolute URLs at ingestion time, and `id` attributes are replaced with `data-sanitized-id` attributes. These changes avoid conflicts in the web UI, but they break NNW’s footnote detection. Since I use FreshRSS solely as a backend service for NNW (and other clients), it is reasonable for me to disable those two sanitization steps in order to take full advantage of NNW’s features. Remove `id` from the list of attributes to rename, and add it to the list of allowed attributes for `<li>` elements (as otherwise, it would be stripped entirely). Convert the `absolutize_url()` function into a no-op if the relative URL provided appears to be a local fragment.
2026-01-25Release 1.28.11.28.1Gravatar Alexandre Alapetite
2026-01-25Changelog, creditsGravatar Alexandre Alapetite
2026-01-25Fix shortcut next unread article (#8466)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8426 regression from https://github.com/FreshRSS/FreshRSS/pull/8057
2026-01-25Update Spanish translation (#8464)Gravatar Martín González Gómez
* Update Spanish translation * make fix-all --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-24Update the support status of ReadYou in readme (#7729)Gravatar junkfood
* Update README.md * Update, i18n:fr --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-24Message for closed registration (#8462)Gravatar rupak
* Add closed msg field i18n fix * Display based on registration type * Save as FreshRSS_Context::systemConf()->closed_registration_message instead * Improve messages * Revert unrelated changes * make fix-all * Minor whitespace * Simplify logic * Fix invalid use of empty() and sympler syntax --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-24Mark Capy Reader podcast support as true (#8444)Gravatar Eve Coull
* Update README.md Capy Reader has added podcast support under their Experimental section of the General settings. As such, I'm setting it as supported in the app table, along with a link to its GitHub discussion showing how to enable it. - Changed Capy Reader podcast support to True, with link to GitHub discussion * Readme.fr --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-24MariaDB restrict USE INDEX (#8460)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8455 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8211
2026-01-21Bump PHPStan (#8453)Gravatar Alexandre Alapetite
~22% faster analysis since 2.1.34+. https://github.com/phpstan/phpstan/releases/tag/2.1.34 Before / after: ```console $ rm -fr /tmp/phpstan/ $ time composer run-script phpstan > phpstan analyse --memory-limit 512M . Note: Using configuration file /home/alex/GitHub/FreshRSS/phpstan.dist.neon. real 1m2.924s user 4m54.812s sys 0m16.494s $ rm -fr /tmp/phpstan/ $ time composer run-script phpstan > phpstan analyse --memory-limit 512M . Note: Using configuration file /home/alex/GitHub/FreshRSS/phpstan.dist.neon. real 0m49.215s user 3m40.906s sys 0m18.413s ```
2026-01-20fix validator url update (#8436)Gravatar Tsung-Han Yu
Closes https://github.com/FreshRSS/FreshRSS/issues/8435 Changes proposed in this pull request: - update validator links to use the same open-url handler with prefix + encoding - ensure the validator link reflects the current #url field value before opening - keep existing open-url behavior for other links unchanged How to test the feature manually: 1. Open feed edit (or add feed) form. 2. Change the feed URL in the URL field. 3. Click “Check the validity of the feed” and verify it opens the validator with the updated URL.
2026-01-18Fix custom session.cookie-lifetime (#8446)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8430 Fix case when `session.cookie-lifetime` is not using the default value of 0 in PHP ini. Co-authored-by: rioky <rioky@users.noreply.github.com>
2026-01-18Bump SimplePie (#8445)Gravatar Alexandre Alapetite
https://github.com/simplepie/simplepie/pull/957
2026-01-17Update documentation in regards to CSP warnings (#8439)Gravatar Thomas Hufschmidt
* Add a reference to the check where the warning is triggered Note: This is the place where the admin sees the browser pointing to. Adding this information here allows the admin to find the matching documentation entry. * Update Content-Security-Policy section of english ServerConfig documentation Note: This fixes some minor formating/typping issues and adds some clarity to the fact that this warning is also triggered on correctly configured hosts, simply due to the nature of how correctness of CSP rules are checked. * Move CSP infor source-code comment into console.info Note: Improve visibility of why this is happening. * Point towards static website documentation instead of git This URL should also remain more fixed even accross new branches/releases. Co-authored-by: Inverle <inverle@proton.me> * Minor fixes * Remove overwrite part --------- Co-authored-by: Inverle <inverle@proton.me> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-17Bump SimplePie (#8443)Gravatar Alexandre Alapetite
* https://github.com/FreshRSS/simplepie/pull/68 * https://github.com/FreshRSS/simplepie/pull/69 fix https://github.com/FreshRSS/FreshRSS/issues/8441
2026-01-14ChangelogGravatar Alexandre Alapetite
2026-01-14ChangelogGravatar Alexandre Alapetite
2026-01-14Fix RSS and OPML access by token (#8434)Gravatar Alexandre Alapetite
Regression from https://github.com/FreshRSS/FreshRSS/pull/8165 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8371
2026-01-10Fix MySQL transliterator_transliterate fallback (#8427)Gravatar Alexandre Alapetite
The string syntax of `strtr()` cannot handle mutibytes characters, so need to be rewritten using an array map approach. Extend the fallback replacements to include the Windows/ISO charsets of the latin languages for which we have a translation
2026-01-10Fix space between 'By:' and the author name (#8422)Gravatar Rob Loach
* Fix space between 'By:' and the author name * Use a different approach than sprintf() * Revert "Use a different approach than sprintf()" This reverts commit 3ede55f000bb7ef5ed7c1d6ffd060139801838b7. * Apply a space between By: and the author name * Apply suggestion from @Alkarex Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-10Fix tags ILIKE (#8425)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8424 Regression from https://github.com/FreshRSS/FreshRSS/issues/8329
2026-01-08ChangelogGravatar Alexandre Alapetite
2026-01-07Credits pt-BRGravatar Ciro Mota
https://github.com/FreshRSS/FreshRSS/pull/8411
2026-01-07Add S. Neuhaus to CREDITS.md (#8412)Gravatar S. Neuhaus
https://github.com/FreshRSS/FreshRSS/pull/8402
2026-01-07feat(i18n): Added missing translations and fix others (#8411)Gravatar Ciro Mota
* feat(i18n): Added missing translations and fix others * feat(i18n): Fix #8401 proposed * IGNORE * make fix-all * feat(i18n): Fix missing TODO * make fix-all --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-06[i18n] Add "." at the end of "You have the PDO driver for SQLite" to improve ↵Gravatar Frans de Jonge
uniformity (#8409) See <https://github.com/FreshRSS/FreshRSS/pull/8403#discussion_r2662753028>.
2026-01-05Update Polish translation (#8408)Gravatar Inverle
2026-01-05Document mounting own CA on FreshRSS container (#8406)Gravatar netsho
closes https://github.com/FreshRSS/FreshRSS/issues/8405 - Add documentation on how to trust own CA that issued self-signed certificate as authentik signing key - Add example in Docker Example How to test the feature manually: 1. Create your own CA 2. Issue a certificate 3. Use the issued certificate as a signing-key in authentik when configuring FreshRSS provider 4. Add created CA on host's CA store by running `update-ca-certificates` 5. Mount the `/etc/ssl/certs/ca-certificates.crt` file on FreshRSS container 6. Start the container 7. Navigate to FreshRSS in the browser 8. Authentik login form should be displayed and work as normal.
2026-01-05Update Dutch translation (#8403)Gravatar Frans de Jonge
* Dutch translation Fixes #8401 for Dutch, plus a few other things. * todo * more todo * more todo * pdo * more todo * gen.php todo * index.php todo * update readme
2026-01-05Fix german translation (#8402)Gravatar S. Neuhaus
* fix german translation issues * Update translation for 'unread' in German * Update translation for 'unread' in German * add TODO items in German translation * make fix-all --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-04Remove wrong deprecation (#8399)Gravatar Alexandre Alapetite
This OPML method is the one used when exporting a single feed as OPML. Not deprecated.
2026-01-04Allow styling entries by category in User CSS (#8397)Gravatar Inverle
* Allow styling entries by category in User CSS Since we have `data-feed`, it is useful to have `data-category` too. Example of usage to hide titles in all entries that belong to a specific category ID: ```css [data-category="6"] { .title { display: none !important } .summary { position: relative; bottom: 2rem; } } ``` * Add `data-link` to entries in `reader.phtml`
2026-01-04Add myself to the credits file (#8398)Gravatar Michael Meier
See https://github.com/FreshRSS/FreshRSS/pull/8376
2026-01-03ChangelogGravatar Alexandre Alapetite
2026-01-03Fix typos in CREDITS.md and configureController.php (#8396)Gravatar Bartłomiej Dmitruk
- contirbutions → contributions - runable → runnable
2026-01-03Switch to using CURLOPT_ACCEPT_ENCODING instead of the deprecated ↵Gravatar Michael Meier
CURLOPT_ENCODING (#8376) * Replace deprecated CURLOPT_ENCODING The CURLOPT_ENCODING setting has been deprecated in favor of CURLOPT_ACCEPT_ENCODING. Signed-off-by: Michael Meier <mmeier1986@gmail.com> * Sync with our SimplePie fork PR https://github.com/FreshRSS/simplepie/pull/67 https://github.com/simplepie/simplepie/pull/960 https://github.com/simplepie/simplepie/pull/962 * Our SimplePie PR merged --------- Signed-off-by: Michael Meier <mmeier1986@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-03Merge commit from forkGravatar Bartłomiej Dmitruk
* Fix Path Traversal vulnerability in UserDAO methods * Add tests and changelog for UserDAO path traversal fix * make fix-all * Fix PHPStan --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-03Add remote user in Apache logs, also for API (#8392)Gravatar Alexandre Alapetite
* API: add remote user in Apache logs fix https://github.com/FreshRSS/FreshRSS/discussions/8385 Example: ``` 2026-01-01T18:38:28.645486326Z 0.0.0.0 - alex [01/Jan/2026:19:38:28 +0100] "GET /api/greader.php/reader/api/0/subscription/list?output=json HTTP/1.1" 200 9798 "-" "curl/8.14.1" ``` * Fallback mod_rewrite * Log remote user with same priority as FreshRSS_http_Util::httpAuthUser()
2026-01-03Fix unwanted expansion of user queries in some cases (#8395)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8378
2026-01-02ChangelogGravatar Alexandre Alapetite
2026-01-01Bump markdownlint-cli from 0.46.0 to 0.47.0 (#8388)Gravatar dependabot[bot]
Bumps [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) from 0.46.0 to 0.47.0. - [Release notes](https://github.com/igorshubovych/markdownlint-cli/releases) - [Commits](https://github.com/igorshubovych/markdownlint-cli/compare/v0.46.0...v0.47.0) --- updated-dependencies: - dependency-name: markdownlint-cli dependency-version: 0.47.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01Bump the eslint group across 1 directory with 3 updates (#8393)Gravatar dependabot[bot]
Bumps the eslint group with 2 updates in the / directory: [eslint](https://github.com/eslint/eslint) and [globals](https://github.com/sindresorhus/globals). Updates `eslint` from 9.39.1 to 9.39.2 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v9.39.1...v9.39.2) Updates `@eslint/js` from 9.39.1 to 9.39.2 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/commits/v9.39.2/packages/js) Updates `globals` from 16.5.0 to 17.0.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v16.5.0...v17.0.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 9.39.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: eslint - dependency-name: "@eslint/js" dependency-version: 9.39.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: eslint - dependency-name: globals dependency-version: 17.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: eslint ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01Bump ruby/setup-ruby from 1.268.0 to 1.278.0 (#8390)Gravatar dependabot[bot]
* Bump ruby/setup-ruby from 1.268.0 to 1.278.0 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.268.0 to 1.278.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](https://github.com/ruby/setup-ruby/compare/8aeb6ff8030dd539317f8e1769a044873b56ea71...4c24fa5ec04b2e79eb40571b1cee2a0d2b705771) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.278.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Remove comment with link to release tag Not worth updating every time dependabot makes a commit --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Inverle <inverle@proton.me>
2026-01-01Bump stylelint-order from 7.0.0 to 7.0.1 in the stylelint group (#8387)Gravatar dependabot[bot]
Bumps the stylelint group with 1 update: [stylelint-order](https://github.com/hudochenkov/stylelint-order). Updates `stylelint-order` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/hudochenkov/stylelint-order/releases) - [Changelog](https://github.com/hudochenkov/stylelint-order/blob/master/CHANGELOG.md) - [Commits](https://github.com/hudochenkov/stylelint-order/compare/7.0.0...7.0.1) --- updated-dependencies: - dependency-name: stylelint-order dependency-version: 7.0.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: stylelint ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01Bump phpstan/phpstan-phpunit from 2.0.10 to 2.0.11 (#8389)Gravatar dependabot[bot]
Bumps [phpstan/phpstan-phpunit](https://github.com/phpstan/phpstan-phpunit) from 2.0.10 to 2.0.11. - [Release notes](https://github.com/phpstan/phpstan-phpunit/releases) - [Commits](https://github.com/phpstan/phpstan-phpunit/compare/2.0.10...2.0.11) --- updated-dependencies: - dependency-name: phpstan/phpstan-phpunit dependency-version: 2.0.11 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01Bump actions/cache from 4 to 5 (#8391)Gravatar dependabot[bot]
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-31changelog: Add entry for updated .gitignore (#8380)Gravatar Rob Loach
* changelog: Add entry for updated .gitignore Adds an entry for https://github.com/FreshRSS/FreshRSS/pull/8372 * Fix Markdown --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-12-31gitignore: Ignore all the installed extensions (#8372)Gravatar Rob Loach
Have the `extensions/.gitignore` ignore all installed extensions so that they don't show up in `git status`
2025-12-30Fix refreshing feeds with token while anonymous refresh is disabled (#8371)Gravatar Inverle
Closes https://github.com/FreshRSS/FreshRSS/issues/8369 Regression from https://github.com/FreshRSS/FreshRSS/pull/8165
2025-12-29Fix encoding of filter actions for labels (#8368)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8367 Forgotten from https://github.com/FreshRSS/FreshRSS/pull/8324