<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/views, branch 1.28.0</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.28.0</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.28.0'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2025-12-21T18:26:08+00:00</updated>
<entry>
<title>Improve configuration checks (#8334)</title>
<updated>2025-12-21T18:26:08+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-21T18:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=1a3912f25a27c8d78aacbbee98f6056f4ad47f1a'/>
<id>urn:sha1:1a3912f25a27c8d78aacbbee98f6056f4ad47f1a</id>
<content type='text'>
Add a distinction between recommended and required extensions.
Add check for recommended php-intl extension as follow-up of https://github.com/FreshRSS/FreshRSS/pull/8329#issuecomment-3677686581
Improve related checks such as ZIP.
Reduce duplicated translations and tests.</content>
</entry>
<entry>
<title>Allow negative category sort numbers (#8330)</title>
<updated>2025-12-17T22:46:03+00:00</updated>
<author>
<name>stag</name>
<email>x@stag.lol</email>
</author>
<published>2025-12-17T22:46:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=43a8e1e2d9a52bef0cd3e249d28ebeaab4c03e12'/>
<id>urn:sha1:43a8e1e2d9a52bef0cd3e249d28ebeaab4c03e12</id>
<content type='text'>
Closes https://github.com/FreshRSS/FreshRSS/issues/8304
Remove the min=1 attribute so negative numbers can be used to force categories to the bottom
</content>
</entry>
<entry>
<title>Rework encoding of search filters (#8324)</title>
<updated>2025-12-17T09:07:52+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-17T09:07:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=4bd503591469f47e710f1afbf0b5883f7770065d'/>
<id>urn:sha1:4bd503591469f47e710f1afbf0b5883f7770065d</id>
<content type='text'>
Rework:
* https://github.com/FreshRSS/FreshRSS/pull/8222

now that we have:
* https://github.com/FreshRSS/FreshRSS/pull/8293

Follow-up of:
* https://github.com/FreshRSS/FreshRSS/pull/8311

* More simplification

* Deprecate getRawInput
</content>
</entry>
<entry>
<title>New links in transitions and jump to next transition (#8294)</title>
<updated>2025-12-13T10:38:33+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-13T10:38:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=4b6127ee04229ac64d74076933e800601df884c0'/>
<id>urn:sha1:4b6127ee04229ac64d74076933e800601df884c0</id>
<content type='text'>
Easier to explain graphically:

&lt;img width="408" height="266" alt="image" src="https://github.com/user-attachments/assets/0e3724a1-155b-4a87-89b3-cfe8a18cb100" /&gt;

The jump to next section ⏭ works when the sorting criterion is a date.

Need https://github.com/FreshRSS/FreshRSS/pull/8293
</content>
</entry>
<entry>
<title>Minor refactor `&lt;img class="icon"&gt;` -&gt; `_i('...')` (#8297)</title>
<updated>2025-12-08T19:32:28+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-12-08T19:32:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=fd9e2843f10058147d26d510471e5420ac8101a1'/>
<id>urn:sha1:fd9e2843f10058147d26d510471e5420ac8101a1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Keep scroll state of page when closing the slider (#8295)</title>
<updated>2025-12-07T23:29:43+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-12-07T23:29:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=9fb3a02b96d5278a8a28edc0831f9c665fbace85'/>
<id>urn:sha1:9fb3a02b96d5278a8a28edc0831f9c665fbace85</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move unsafe autologin to an extension (#7958)</title>
<updated>2025-12-04T19:10:20+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-12-04T19:10:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=6d2bb24b3772a7b839d6911c1e1fe27151d29bfa'/>
<id>urn:sha1:6d2bb24b3772a7b839d6911c1e1fe27151d29bfa</id>
<content type='text'>
Completes the following TODO https://github.com/FreshRSS/FreshRSS/issues/7923:

https://github.com/FreshRSS/FreshRSS/blob/de624dc8ce63ec819c61216d9d44f828841c293e/app/Controllers/authController.php#L105

Extension PR: https://github.com/FreshRSS/Extensions/pull/364

https://github.com/FreshRSS/Extensions/tree/main/xExtension-UnsafeAutologin
</content>
</entry>
<entry>
<title>Scaling of user statistics (#8277)</title>
<updated>2025-12-04T18:11:31+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-04T18:11:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=78e40c6fe3afe7f815ef9d32646610e2d5436ba3'/>
<id>urn:sha1:78e40c6fe3afe7f815ef9d32646610e2d5436ba3</id>
<content type='text'>
Fix https://github.com/FreshRSS/FreshRSS/issues/8268
To better support user management on FreshRSS instance with many users.

SQL speed improved. On a reduced test with 5 users, including some large accounts (PostgreSQL on a very tiny and slow server), improving from ~2.3s to ~1.8s, which gives ~20% speed improvement.

Then tested with 1000 users, with only the default feed (on my old desktop computer):

```sh
for i in {1..1000}; do ./cli/create-user.php --user=freshrss$i --password=freshrss; done
app/actualize_script.php
cli/access-permissions.sh
```

SQLite:

```console
$ time cli/user-info.php | wc -l
1001

real    0m1.366s
user    0m0.908s
sys     0m0.475s
```

PostgreSQL:

```console
$ time cli/user-info.php | wc -l
1001

real    0m28.498s
user    0m12.137s
sys     0m2.217s
```

MariaDB:

```console
# time ./cli/user-info.php | wc -l
1001

real    0m49.485s
user    0m1.276s
sys     0m2.258s
```

Yes, SQLite is much faster - not a surprise for such use-cases, where the TCP connection is not re-used.

I have added some CLI options to disable some statistics:

```sh
cli/user-info.php --no-db-size --no-db-counts
```

For the Web UI, I have disabled detailed user statistics if it takes too long, and retrieve missing user statistics asynchronously via JavaScript. Lazy loading of the user details based on IntersectionObserver, with maximum 10 requests in parallel.
Web UI tested on 1000 users as well. Checked with SeaMonkey.
</content>
</entry>
<entry>
<title>Implement button for toggling sidebar on all views (#8201)</title>
<updated>2025-12-04T07:48:03+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-12-04T07:48:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=d55f017ccd941c135055d7c3a85007b8e7e02449'/>
<id>urn:sha1:d55f017ccd941c135055d7c3a85007b8e7e02449</id>
<content type='text'>
* Implement button for toggling sidebar on all views

Closes https://github.com/FreshRSS/FreshRSS/issues/7673, https://github.com/FreshRSS/FreshRSS/issues/7100, https://github.com/FreshRSS/FreshRSS/issues/6119, https://github.com/FreshRSS/FreshRSS/issues/5338, https://github.com/FreshRSS/FreshRSS/issues/2792, https://github.com/FreshRSS/FreshRSS/issues/4224, https://github.com/FreshRSS/FreshRSS/issues/4136

https://github.com/user-attachments/assets/0629e465-6450-440e-b38b-430e9ff73ef9

Keyboard shortcut for doing the same: &lt;kbd&gt;t&lt;/kbd&gt;

* Partially fix other views

Repartition page looks broken on Swage

* Correction

`close-aside` wasn't meant to be removed

* i18n(conf): fr

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;

* make fix-all

* Fix settings slider not opening in reader view

* make readme

---------

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>OPML export/import of unicity criteria (#8243)</title>
<updated>2025-11-24T21:01:46+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-11-24T21:01:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=06d34f9b8ed81854baaaea3a4a7f4e247cab31a0'/>
<id>urn:sha1:06d34f9b8ed81854baaaea3a4a7f4e247cab31a0</id>
<content type='text'>
Found during https://github.com/FreshRSS/FreshRSS/discussions/8242#discussioncomment-15052838</content>
</entry>
</feed>
