❌

Normale Ansicht

Still – für Audiobooks in Audiobookshelf

14. Juni 2026 um 19:25

Meine Urlaubszeit soll dieses Jahr verstärkt Hörbücher einschließen – erstellt mit AudioBo, gelagert auf einem Audiobookshelf-Server und konsumiert mit Still.

A iPad screen displays the audiobook 'Steve Jobs in Exile' by Geoffrey Cain, with a 'Continue' button visible. The background wallpaper features the Golden Gate Bridge against a vibrant blue and pink sky.

Ich plane, dort weder EPUBs oder Podcasts abzulegen, aber Still würde sie mir vorsetzen.

Ich beobachte den Player bereits länger. Mit Watch-Support, CarPlay und mehr Anpassungen fürs iPad verdient er aber noch einmal mehr Wertschätzung – abseits der 7 Euro, mit denen man seine Anerkennung auch ausdrückt.

  •  

AI ≠ AI

11. Juni 2026 um 15:22

From a pure AI perspective, nothing Apple showcased during their WWDC keynote yesterday was particularly groundbreaking. In fact, much of it featured capabilities long since available in other AI tools and services – in some cases, years ago. And guess what? That doesn’t matter. Based on what we saw yesterday, Apple is set to win in AI. At least from a consumer perspective.

M.G. Siegler | „Apple Wins Consumer AI By Default“

Siri AI landet mitten in eine Aufspaltung, die sich schon länger abzeichnet: die Unterscheidung zwischen „Consumer AI“ und „Business AI“.

Endkonsumenten zahlen nicht für Produktivität; anders als Firmen. Auch deshalb verschieben OpenAI und Anthropic ihre Prioritäten auf agentische Workflows. Der klassische Chat-Bot ist kein Geschäft mehr für sie.

Alleinstellungsmerkmal von Siri AI ist der persönliche Kontext, allerdings auch die bewusste Beteiligung und Einbindung der besagten Person.

Leute lieben es etwa, einzukaufen oder die Vorfreude auf eine (Urlaubs-)Entscheidung. Es ist nicht ausschließlich das Misstrauen, ob der Bot die richtige Wahl trifft, sondern der explizite Wunsch, mitzuwirken.

AI, die dabei unter die Arme greift, muss keinesfalls das allerletzte High-End-Modell sein. „Reasoning at Flash-level latency and scale“ wie Gemini 3.5 Flash ist dafür oft mehr als ausreichend. Insbesondere, weil Siri AI vorerst exklusiv auf Systemebene arbeitet und allein durch den Zugriff auf den persönlichen Suchindex mögliche Halluzinationen deutlich minimiert.

  •  

Gedanken zur Keynote der WWDC 2026

09. Juni 2026 um 11:01

„Was hat AI jemals für uns getan?“

„Easy. Mehr Arbeitsspeicher in Apples Computern seit 2024 und ein Snow-Leopard-Release1 im Jahr 2027!“

Für uns Europäer ist der Fokus aufs Bugfixing und die Performance sogar noch viel zentraler: Ein Drittel der gestrigen Keynote betrifft uns vorerst nicht.

Ein Drittel? Die Quantifizierung ergibt sich für mich aus der komplett umgekrempelten Keynote-Struktur.

A slide displays three bullet points: 'Platform improvements', 'Trust and safety', and 'Apple Intelligence and Siri'. The text is black on a plain gray background, indicating an overview of Apple's software updates.

Ich empfand es als äußerst zeitgemäß, die Betriebssysteme nicht mehr zu trennen, sondern Überschneidungen vorauszusetzen und gewisse Unterscheidungen herauszuarbeiten.

„Platform improvements – no notes!“

Wie zahlreich die kleinen „Quality of life“-Verbesserungen im Alltag ausfallen, zeigt sich im Sommer. Mit den ersten Betas auf meinen Geräten fühlt sich der von Apple betonte Geschwindigkeitsgewinn aber schon jetzt substanziell an.

A dense list of new features for iOS 18, including improvements to apps, performance, accessibility, and user interface elements. The text is presented in a grid format with multiple columns, highlighting various enhancements across different Apple devices.

Woher die Motivation für „Trust and Safety“ kam, erschließt sich mir nicht – insbesondere weil’s ein langatmiges und verhältnismäßig theoretisches Screen-Time-Segment war.

Und warum die Konzentration auf Kids? Prädestiniert für eine Screen-Time-Überwachung sind Erwachsene – „The kids are all right“.

Überhaupt fehlten mir Nuancen für alle Menschen, die durch eine solche Kontrolle speziell verwundbar sind. Und Erziehung lässt sich nicht outsourcen.

A grid of feature tiles showcasing Apple Intelligence capabilities across various apps and services. Each tile displays an icon, title, and brief description highlighting AI-enhanced functionalities.

Siri AI meistert jetzt Weltwissen und zeigt erste agentische Ansätze. Das ist hilfreich, um etwa Fragen zu Bildschirminhalten abzuwerfen, mitunter ein paar Klicks bei der Informationssuche zu sparen oder bei der Erstellung von Content zu helfen.

Die Integration und die Möglichkeit, unterschiedliche Daten zusammenzuziehen, in einen „personal context“ zu stellen, ist der eigentliche Mehrwert; alleinstehende Apps existieren für alle gestern gezeigten Demos – in besserer Form. Das sind dann jedoch weitgehend abgekoppelte Datentöpfe.

Und das macht den Nicht-EU-Start von Siri AI auf iOS und iPadOS so frustrierend: Siri AI scheint tief in die Struktur der Betriebssysteme eingeflochten, nicht nur aufgesetzt. Die Trennlinien sind so unscharf, dass ich im Moment nicht einmal wüsste, auf welche Features wir genau verzichten müssen.

Es fehlt nicht mehr nur „iPhone Mirroring“; das gesamte OS fühlt sich zurückgelassen an – unabhängig davon, auf welchen Geräten welche AI überhaupt funktioniert und wie intensiv man das tatsächlich benutzt (weil’s AI-typisch einige fragwürdige Grenzen übertritt).

A man in a dark polo shirt is holding an iPhone and smiling as he interacts with the device. The close-up of the phone's screen shows a message being processed by Siri, indicating it’s working on sending a group chat message.

Schlussnotiz: Ich fand es bemerkenswert, dass es keinen Schnitt im Video oder verkürzte Darstellungen bei den Demos für Siri AI gab.

Das ließ die Präsentation in diesen Minuten superzäh wirken, ist dieser Tage aber sicherlich notwendig, um deren Authentizität und Machbarkeit hervorzuheben. Trotzdem muss es Apple arg aufgestoßen sein, so derartig die Luft und das Tempo rauszunehmen.

  1. „The myth and reality of Mac OS X Snow Leopard revisited“ ↩
  •  

Loupe – „What your apps can see“

06. Juni 2026 um 12:09

Was Loupe zeigt, sehen (potenziell) auch andere Apps.

Das ist keine Panikmache und nicht skandalös, aber eine Anregung, bestimmte Zugriffsrechte vielleicht nicht unüberlegt auszuteilen.

Eine Nahaufnahme eines Smartphone-Bildschirms, auf dem die Benutzeroberfläche der Loupe-App zu sehen ist, welche Datenschutzeinstellungen unter der Überschrift "What your apps can see" anzeigt.

Loupe is an iOS and iPadOS app that gives you a hands-on tour of the device fingerprinting surface. It reads real values from public iOS APIs, the same ones any third-party app can call, and shows them to you raw. The point is simple: see what your iPhone quietly exposes, and why each reading helps an app recognize you again.

github.com/mysk-research

Ich wusste etwa nicht, dass der Lautstärkewert fingerprintable ist.

  •  

#508 – Aus- und Einschlafen

04. Juni 2026 um 15:16

Wisst ihr, wie schwierig es ist im App Store durchdachte Software mit fairem Preismodell in der Kategorie der „Wind-down“-Apps zu finden?

Ja, wisst ihr – wenn ihr jemals die dortige Suche bemüht habt. Deshalb habe ich für dieses Video ein paar Empfehlungen aufgedeckt.

Diese Apps fanden im Video eine Erwähnung:

  •  

„Watch to 5K“ nimmt euch ins Training für den ersten 5-Kilometer-Lauf

03. Juni 2026 um 18:09

Am heutigen „Global Running Day“ gibt es für ’nen entspannten 5-Kilometer-Run eine Apple-Watch-Auszeichnung.

Diese Fitnessherausforderung ist ein passender Anlass, um auf „Watch to 5K“ hinzuweisen – für alle, die sich mit einem solchen Run nicht so leicht tun.

Nahaufnahme einer Smartwatch am Handgelenk einer Person, die einen Trainings-Aufwärmbildschirm mit Timer, Herzfrequenz und der Anweisung für ein zügiges Gehen anzeigt.

Watch to 5K is an Apple Watch app that helps people gradually work up towards running 5K in just nine weeks by following the Couch to 5K program (C25K). The app works independently on the Watch, allowing users to leave their phone at home (or in their locker) while they run.

Für fünf Euro nimmt die Watch-App hier absolute Beginner an die Hand zu ihrem ersten 5K.

„Watch to 5K“ entstand in den ersten COVID-Lockdown-Monaten vor sechs Jahren, funktioniert tatsächlich unabhängig vom Telefon und motiviert gezielt Anfänger:innen (oder alle, die das Laufen wieder aufnehmen) mit einem strukturierten Trainingsplan.

  •  

R.A.D. Weather: der Blick ins Wetter-Terminal

02. Juni 2026 um 20:36
Drei Smartphone-Bildschirme zeigen eine Wetter-App im dunklen Design mit einer futuristischen Benutzeroberfläche. Die App zeigt Wetterbedingungen, Temperatur, Radaransichten und technische Daten in einem minimalistischen, kontrastreichen Design.

„It’s rad.“

Die Kommandozeilen-Optik erinnert mich an WarGames; ein solches Wetter-Terminal könnte man als Pseudo-Hacker-Screen aber auch problemlos in moderne Filme einbauen.

Der Look and Feel von R.A.D. Weather zieht sich konsequent durch die gesamte App – inklusive der Versionen für iPad, Watch und Mac. Wer einen Extra-Bildschirm zu bespielen hat, findet hier eine äußerst nerdkompatible Wahl für eine Wetteranzeige.

Hinter allen Anzeigen und jedem Pixel stecken jedoch tatsächlich Informationen – von Niederschlag über Sonnenintensität hin zu Luftqualität.

R.A.D. kombiniert dafür mehrere Quellen, erlaubt euch aber auch eigene „Uplinks“ zu Providern per API einzurichten.

Diese Informationsblöcke lassen sich in großem Umfang anpassen, umsortieren oder ausblenden. Irgendwann entdeckt man dann Themes, Achievements, eine Live-Wetteranzeige während Autofahrten und Minispiele …

Hier hat jemand ganz offensichtlich Spaß an der Entwicklung, hinter der jedoch knallharte (Wetter-)Fakten stehen.

  •  

„Annotate“ – Markup für Screenshots und Fotos

01. Juni 2026 um 18:01

Konkurrenz für Annotable aus Düsseldorf – und zwar vom Multi-Cloud-Uploader Dropshare. Mit Annotate kritzelt ihr auf Screenshots, verpixelt sensible Informationen in Fotos oder setzt erklärende Nummerierungen und Pfeile.

Eine Person hält ein Smartphone, auf dem die Benutzeroberfläche einer Bildbearbeitungs-App angezeigt wird. In der Mitte des Bildschirms befindet sich ein Foto auf einem orangefarbenen Hintergrund, während am unteren Rand eine Werkzeugleiste mit verschiedenen Symbolen zu sehen ist.

Solche Bearbeitungen ähneln den Jobs, die ich am Mac dem hervorragenden CleanShot zustecke – etwa „Backdrop styles“, die Bildschirmfotos in einen Rahmen setzen. Auf iPhone und iPad fehlte mir seit jeher eine Software mit vergleichbarer Funktion.

Ähnlich hilfreich ist es, die Arbeitsfläche zu erweitern – für ausschweifendere Markups wie etwa eine Wegbeschreibung neben einem Google-Maps-Kartenausschnitt.

Wünschenswert wäre noch eine Erweiterung der Lupe, bei der man den vergrößerten Ausschnitt beibehält, aber die gezoomte Ansicht verschiebt. Oder eine Collagen-Funktion, so wie Photo Tape mehrere Bilder in ein explizit gewähltes Format presst.

Gebogene Pfeile mit unterschiedlichen Pfeilspitzen machen mich aber schon jetzt ernsthaft glücklich. Genau wie Hervorhebungen, die Schatten werfen. Trotzdem nehme ich gerne noch mehr von diesen detailverliebten Kleinigkeiten.

  •  

„Last.fm is now independent“

31. Mai 2026 um 09:12
Ein Smartphone-Bildschirm zeigt eine Liste mit Benachrichtigungen der App „QuietScrob“, die Informationen zu kürzlich gespielten Musiktiteln und deren Zeitstempel auflistet.

Today, Last.fm begins a new chapter as an independent company. Ownership has changed, but the product you use every day has not.

Your account, your listening history, and your data remain exactly where they are. The team building Last.fm is the same. The service continues as normal.

Support.last.fm

Seit zwei Jahrzehnten schreibe ich dieses Blog und Last.fm fand sowohl im ersten als auch im letzten Jahr seine Erwähnung, obwohl mir das Mitprotokollieren von Musik den Aufwand eigentlich nicht wert ist.

Dieser Aufwand ist das Last.fm-Problem, das sich nicht nur durch Spotify und Co. vergrößert hat, sondern durch jeden Computer, jedes Tablet und alle Smart-Speaker, die eure Alben dieser Tage wiedergeben. Alle diese Streams einzufangen, bedeutet Arbeit.

Ich könnte jedoch nicht stärker für Last.fm trommeln und mir wünschen, dass sie sich mit neuer Eigenständigkeit auch durch die nächsten Musikjahrzehnte scrobbeln.

  •  

Wechsel zwischen Kabel und Funk: automatisches Bluetooth-Pairing für Magic-Zubehör am iPhone/iPad

30. Mai 2026 um 15:26
Ein Smartphone-Bildschirm zeigt einen Social-Media-Beitrag über eine neue iOS-Funktion, die die Bluetooth-Kopplung für Zubehör über USB ermöglicht, zusammen mit einer Benachrichtigung, die bestätigt, dass ein Magic Keyboard drahtlos mit dem Gerät verbunden ist.

Connecting iPad or iPhone to ‘Magic’ accessory with USB-C now initiates Bluetooth pairing, too

@aaronp613 via 9to5Mac

Diese Änderung scheint auf Apples neueres USB-C-Zubehör beschränkt. An meinem Magic Trackpad und Magic Keyboard mit Lightning-Port muss vorher einmalig die Bluetooth-Verbindung autorisiert sein. Ist das jedoch geschehen, verbindet sich anschließend das iPhone/iPad sowohl kabellos als auch kabelgebunden mit den Eingabegeräten.

Mangels eines „Magic“-USB-C-Zubehörs kann ich die Neuerung mit dem Update auf 26.5 nicht nachvollziehen. Die Unterscheidung wirkt aber mindestens sonderbar, weil man sich auf macOS auch bei USB-C-auf-Lightning-Accessoires nicht um das Bluetooth-Pairing kümmern muss. Man steckt das externe Zubehör ein, anschließend ab und bleibt trotzdem verbunden – dafür muss ich nie ins Bluetooth-Setup.

Eine Schwarz-Weiß-Ansicht von oben auf einen Arbeitsbereich, die ein weißes, aufgerolltes Ladekabel zwischen einer externen Tastatur und einem Tablet mit integrierter Tastatur zeigt.

Ein jedoch (für mich) größeres Problem bleibt: Das über Bluetooth verbundene Hardware-Keyboard lässt sich nicht ohne Umweg in die Einstellungen auswerfen – wenn man etwa auf die Stift- und Touch-Eingabe wechselt. Bleibe ich in Bluetooth-Reichweite, ist der Wechsel auf die Software-Tastatur oft nur umständlich oder (je nach App) gar nicht möglich.

  •  

FreshRSS 1.29.1

Von: Alkarex
20. Mai 2026 um 19:58

This is bug-fix release for 1.29.0.

Feature highlights✨:

  • Accept .txt import of feed URLs in additional to e.g. OPML
  • New CLI for automatic periodic SQLite export with retention
  • More feed info: last received date, publication date

Bug fixes highlights 🐛:

  • Fix cookies with some browsers
  • Fix search in shared user queries with empty results

UI highlights 🖼:

  • Improve Web browsers compatibility

This release has been made by @Alkarex, @Frenzie, @IEEE-754, @Inverle, @McFev, @ciro-mota, @cweiske, @polybjorn and newcomer @mzl2233

Full changelog:

  • Features
    • Accept .txt import of feed URLs in additional to e.g. OPML #8818, #8837
    • New CLI for automatic periodic SQLite export with retention #8819
    • More feed info: last received date, publication date #8799
  • Bug fixing
    • Fix cookies with some browsers #8867
    • Fix search in shared user queries with empty results #8863
    • Fix XML errors with loading invalid OPML in lib_opml library #8652, #8853,
      lib_opml#48, lib_opml#51
    • Fix ensure maximum number of feeds also with Dynamic OPML #8832
    • Fix click mark as read #8817
  • UI
    • Improve browser compatibility to keep mobile navigation at the bottom #8833
    • Improve support of older/simpler Web browsers/engines such as SeaMonkey #8810,
      #8811, #8813,
    • Improve Swage theme #8842
    • Rename Nord theme to Nord #8805
    • Replace GIF spinner by CSS spinner #8804, #8812
    • Various UI and style improvements: #8800, #8816,
  • I18n
    • Improve Brazilian Portuguese #8846
    • Improve Dutch #8868
    • Improve German #8840
    • Improve Polish #8854
    • Improve Russian #8861
    • Improve Traditional Chinese #8849
  • Misc.

  •  

FreshRSS 1.29.0

Von: Alkarex
10. Mai 2026 um 16:43

This is a major release.

Feature highlights✨:

  • New sort order preferences at global, category, and feed levels
  • Use feed-provided icon
  • New option to hide sidebar by default
  • Show time since when a feed has problems
  • New functions to handle plural in internationalisation
  • New cli/purge.php to apply purge policy from command line

Bug fixes highlights 🐛:

  • Improve support of PHP 8.5+
  • Several fixes related to searches

Security highlights 🛡:

  • Limit cURL to protocols HTTP, HTTPS

UI highlights 🖼:

  • Improve mobile view with multiple lines when thumbnails and summaries are shown
  • Several themes improved

Extensions highlights 🧩:

  • New Webhook extension for automated RSS notifications
  • New LLM Classification extension to automatically tag incoming articles based on a prompt sent to an LLM

This release has been made by @Alkarex, @Inverle, @Kiblyn11, @math-GH, @rupakbajgain, @xtmd and newcomers @polybjorn, @olivluca, @tomasodehnal, @PeterVavercak, @mrtnrdl, @ale-rt, @cweiske, @rid3r45, @gabbihive, @drosell271, @Kachelkaiser, @zanivann, @nanos, @bowencool, @pe1uca, @matheusroberson, @DenuxPlays, @rlrs, @chanse-syres, @IEEE-754, @umaidshahid, @michi-onl

Full changelog:

  • Features
    • New sort order preferences at global, category, and feed levels #8234
    • New filtering by date of Server modification date #8131, #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
    • New option to automatically mark new articles as read if an identical GUID already exists in the same category #8673
    • Automatic feed visibility/priority during search #8609
    • Add feed visibility filter to statistics view unread dates #8489
    • Add option to enable/disable notifications, also for PWA #8458
    • Add a form to create new user queries on the User Queries page #8623
    • Allow WebSub hub push from same private network #8450
    • Support category field in JSON feed import #8786
  • Bug fixing
    • Fix wrong search toString in case of regex-looking string #8479
    • Fix article last seen date in case of feed errors #8646
    • Fix search expansion with backslash #8497
    • Fix user query parsing #8543
    • Fix search in shared user queries #8789
    • Fix redirect to wrong view after mark as read in reader and global views #8552
    • Fix SQLite paging when sorting by article length #8594
    • Fix change sorting during paging #8688
    • Fix SQL keyset pagination when sorting by category name #8597
    • Fix SQL duplicates in the user labels when sorting randomly #8626
    • Fix wrong error redirect in subscription management #8625
    • Fix do not include hidden feeds when counting total number of unread articles #8715
    • Update user modify date when changing extensions UserJS / UserCSS #8607
    • Non-strict OPML export #eedefb
  • Security
    • Limit cURL to protocols HTTP, HTTPS #8713
    • Better sanitise favicon URLs #8714
    • New setting for <iframe> referrer allow list #8672
    • Fix email validation and allow error page for unverified email users #8582
    • Add allowfullscreen to <iframe> #8467
    • Rewrite Set-Cookie using native PHP support of SameSite #8447, #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
    • Preventive measure against search ingestion #8777
  • UI
    • New option to hide sidebar by default #8528
    • Improve mobile view with multiple lines when thumbnails and summaries are shown #8631
    • New option to disable unread counter in tab title and favicon #8728
    • Show time since when a feed has problems #8670
    • Improve add feed UI #8683
    • Improve slider behaviour when using navigate back button #8496, #8524
    • Improve consistency of slider behaviour after submitting form #8612
    • Create dynamic favicons from SVG instead of PNG canvas #8577, #8588
    • Only display scrollbar everywhere if there's an overflow (especially for Chromium) #8542
    • Fix CSS padding of .content pre code #8620
    • Fix wrong navigation buttons layout on Chromium #8606
    • Fix don’t mark as read if middle click is outside of article link #8553
    • More robust JS #8595
    • Fix sidebar slide animation at narrow viewports #8747
    • Visually dim disabled users in user management table #8768
    • Improve multiple UI themes #8711, #8732,
      #8733, #8734, #8735,
      #8736, #8737, #8738,
      #8739, #8743, #8746,
      #8749, #8761, #8781,
      #8784, #8785
    • Various UI and style improvements: #8537, #8538,
      #8541, #8624, #8731,
      #8774
  • Deployment
    • Also push Docker images to GitHub registry #8669
    • Improve support of PHP 8.5+ using Pdo\Mysql #8526
    • Add support for Podman in Makefile #8456
    • Re-add database status in installation check #8510
    • Docker / CLI: Allow chown/chmod to fail with warning #8635
  • Extensions
    • New Webhook extension for automated RSS notifications Extensions#456
    • New LLM Classification extension to automatically tag incoming articles based on a prompt sent to an LLM Extensions#458
    • New extension methods to get typed configuration values #8696
    • New hook: Minz_HookType::ActionExecute #8599, #8603
    • New hook to modify the list of feeds to actualize #8655, #8675
    • Allow passing Minz_HookType as hook name in registerHook() #8600
    • Return more info and status from httpGet() #8700
    • Make httpGet() cache nullable #8705
    • Allow extensions’ configuration UI to use select-input-changer JavaScript helper #8721
  • SimplePie
  • CLI
    • New cli/purge.php to apply purge policy #8740
  • I18n
  • Misc.

  •  

FreshRSS 1.28.0

Von: Alkarex
24. Dezember 2025 um 20:27

This is a major release, just in time for the holidays 🎄

Selected new features ✨:

  • New sorting and filtering by date of User modified, with corresponding search operator, e.g. userdate:PT1H for the past hour
  • New sorting by article length
  • New advanced search form
  • New overview of dates with most unread articles
  • New ability to share feed visibility through API (implemented by e.g. Capy Reader)
    • Bonus: Capy Reader is also the first open source Android app to support user labels
  • Better transitions UI between groups of articles
  • New links in UI for transitions between groups of articles, and jump to next transition
  • Docker default image updated to Debian 13 Trixie with PHP 8.4.11
  • And much more…

Improved performance 🏎️:

  • Scaling of user statistics in Web UI and CLI, to help instances with 1k+ users
  • Improve SQL speed for some critical requests for large databases
  • API performance optimisation thanks to streaming of large responses

Selected bug fixes 🐛:

  • Fix OpenID Connect with Debian 13
  • Fix MySQL / MariaDB bug wrongly sorting new articles
  • Fix SQLite bind bug when adding tag

Breaking changes 💥:

  • Move unsafe autologin to an extension
  • Potential breaking changes for some extensions (which have to rename some old functions)

This release has been made by @Alkarex, @Frenzie, @Inverle, @aledeg, @andris155, @horvi28, @math-GH, @minna-xD and newcomers @Darkentia, @FollowTheWizard, @GreyChame1eon, @McFev, @jocmp, @larsks, @martinhartmann, @matthew-neavling, @pudymody, @raspo, @scharmach, @scollovati, @stag-enterprises, @vandys, @xtmd, @yzx9.

Full changelog:

  • Features
    • New sorting and filtering by date of User modified #7886, #8090,
      #8105, #8118, #8130
      • Corresponding search operator, e.g. userdate:PT1H for the past hour #8093
      • Allows finding articles marked by the local user as read/unread or starred/unstarred at specific dates for e.g. undo action.
    • New sorting by article length #8119
    • New advanced search form #8103, #8122, #8226
    • Add compatibility with PCRE word boundary \b and \B for regex search using PostgreSQL #8141
    • More uniform SQL search and PHP search for accents and case-sensitivity (e.g. for automatically marking as read) #8329
    • New overview of dates with most unread articles #8089
    • Allow marking as read articles older than 1 or 7 days also when sorting by publication date #8163
    • New option to show user labels instead of tags in RSS share #8112
    • Add new feed visibility (priority) Show in its feed #7972
    • New ability to share feed visibility through API (implemented by e.g. Capy Reader) #7583, #8158
    • Configurable notification timeout #7942
    • OPML export/import of unicity criteria #8243
    • Ensure stable IDs (categories, feeds, labels) during export/import #7988
    • Add username and timestamp to SQLite export from Web UI #8169
    • Add option to apply filter actions to existing articles #7959, #8259
    • Support CSS selector ~ subsequent-sibling #8154
    • Rework saving of configuration files for more reliability in case of e.g. full disk #8220
    • Web scraping support date format as milliseconds for Unix epoch #8266
    • Allow negative category sort numbers #8330
  • Performance
    • Improve SQL speed for updating cached information #6957, #8207,
      #8255, #8254, #8255
    • Fix SQL performance issue with MySQL, using an index hint #8211
    • Scaling of user statistics in Web UI and CLI, to help instances with 1k+ users #8277
    • API streaming of large responses for reducing memory consumption and increasing speed #8041
  • Security
    • 💥 Move unsafe autologin to an extension #7958
    • Fix some CSRFs #8035
    • Strengthen some crypto (login, tokens, nonces) #8061, #8320
    • Create separate HTTP Retry-After rules for proxies #8029, #8218
    • Add data: to CSP in subscription controller #8253
    • Improve anonymous authentication logic #8165
    • Enable GitHub release immutability #8205
  • Bug fixing
    • Exclude local networks for domain-wide HTTP Retry-After #8195
    • Fix OpenID Connect with Debian 13 #8032
    • Fix MySQL / MariaDB bug wrongly sorting new articles #8223
    • Fix MySQL / MariaDB database size calculation #8282
    • Fix SQLite bind bug when adding tag #8101
    • Fix SQL auto-update of field f.kind to ease migrations from FreshRSS versions older than 1.20.0 #8148
    • Fix search encoding and quoting #8311, #8324, #8338
    • Fix handling of database unexpected null content (during migrations) #8319, #8321
    • Fix drag & drop of user query losing information #8113
    • Fix DOM error while filtering retrieved full content #8132, #8161
    • Fix config.custom.php during install #8033
    • Fix do not mark important feeds as read from category #8067
    • Fix regression of warnings in Web browser console due to lack of window.bcrypt object #8166
    • Fix chart resize regression due to chart.js v4 update #8298
    • Fix CLI user creation warning when language is not given #8283
    • Fix merging of custom HTTP headers #8251
    • Fix bug in the case of duplicated mark-as-read filters #8322
  • SimplePie
  • Deployment
    • Docker default image updated to Debian 13 Trixie with PHP 8.4.11 and Apache 2.4.65 #8032
    • Docker alternative image updated to Alpine 3.23 with PHP 8.4.15 and Apache 2.4.65 #8285
    • Fix Docker healthcheck cli/health.php compatibility with OpenID Connect #8040
    • Improve Docker for compatibility with other base images such as Arch Linux #8299
      • Improve cli/access-permissions.sh to detect the correct permission Web group such as www-data, apache, or http
    • Update PostgreSQL volume for Docker #8216, #8224
    • Catch lack of exec() function for git update #8228
    • Work around DOMDocument::saveHTML() scrambling charset encoding in some versions of libxml2 #8296
    • Improve configuration checks for PHP extensions (in Web UI and CLI), including recommending e.g. php-intl #8334
  • UI
    • New button for toggling sidebar on desktop view #8201, #8286
    • Better transitions between groups of articles #8174
    • New links in transitions and jump to next transition #8294
    • More visible selected article #8230
    • Show the parsed search query instead of the original user input #8293,
      #8306, #8341
    • Show search query in the page title #8217
    • Scroll into filtered feed/category on page load in the sidebar #8281, #8307
    • Fix autocomplete issues in change password form #7812
    • Fix navigating between read feeds using shortcut shift+j/k #8057
    • Dark background in Web app manifest to avoid white flash when opening #8140
    • Increase button visibility in UI to change theme #8149
    • Replace arrow navigation in theme switcher with <select> #8190
    • Improve scroll of article after load of user labels #7962
    • Keep scroll state of page when closing the slider #8295, #8301
    • Scroll into filtered feed/category on page load #8281
    • Display sidebar dropdowns above if no space below #8335, #8336
    • Use native CSS instead of SCSS #8200, #8241
    • Various UI and style improvements: #8171, #8185, #8196
    • JavaScript finalise migration from Promise to async/await: #8182
  • API
    • API performance optimisation: streaming of large responses #8041
    • Fever API: Add with_ids parameter to mass-change read/unread/saved/unsaved on lists of articles #8312
    • Misc API: better REST error semantics #8232
  • Extensions
    • Add support for extension priority #8038
    • Add support for extension compatibility #8081
    • Improve PHP code with hook enums #8036
    • New hook nav_entries #8054
    • Rename Extensions default branch from master to main #8194
  • I18n
    • Translation status as text in README #7842
    • Add new translate CLI commands move #8214
    • Change some regional language codes to comply with RFC 5646 / IETF BCP 47 / ISO 3166 / ISO 639-1 #8065
    • Improve German #8028
    • Improve Greek #8146
    • Improve Finnish #8073, #8092
    • Improve Hungarian #8244
    • Improve Italian #8115, #8186
    • Improve Polish #8134, #8135
    • Improve Russian #8155, #8197
    • Improve Simplified Chinese #8308, #8313
  • Misc.

  •  
❌