Miniflux 2.2.12
Release date:
Changes
✨ New Features
- Keep only metadata of removed entries to reduce database size.
- Removed entry status is now immutable and cannot be changed back to
unread
orread
status. - SVG favicons are now minified before storing them in the database.
- Added support for resizing WebP images.
- Main menu now includes icons.
- Added Progressive Web App (PWA) shortcuts for quick access to common actions.
- Added direct link to the Apache 2.0 license on the About page.
- Feed-level webhook URLs now take priority when saving entries.
- New option:
POLLING_LIMIT_PER_HOST
to limit concurrent requests per host. Limits the number of concurrent requests to the same hostname when polling feeds. This helps prevent overwhelming a single server during batch processing by the worker pool. - Added a rewrite rule to remove useless heading images on Phoronix articles.
- Use Golang’s built-in VCS feature to get commit and build date when not specified by
LDFLAGS
. - Disable OAuth2 and WebAuthn routes when the feature is not enabled.
- Added request URI logging in authentication handlers.
🛠 Fixes
- Limited
tsvector
indexing to the first 500K characters to avoid PostgreSQL limits. - Use
rel=apple-touch-icon
instead ofrel=apple-touch-icon-precomposed.png
. - Fixed broken WebAuthn error alert message on the settings page.
- Reverted
SameSiteStrict
cookie mode because it forces people to authenticate each time when using the PWA on Android. - Prevent stale data by forcing reload when navigating back from articles (fix for Chrome’s bfcache).
- Fixed URL detection capturing newlines in media descriptions.
⚡ Performance Improvements
- Optimized SQL queries (
FetchJobs
,markFeedAsRead
) by removing unnecessary joins and heavy-weight operations. - Improved memory usage by minimizing SVGs, static images, and templates.
- WebAuthn script (
webauthn.js
) is no longer loaded when the feature is disabled. - Replaced regex-based YouTube and Invidious video ID extraction with URL parsing.
- Introspect the translation files at load time.
- Parse and merge filters only once per refresh.
🔧 Refactoring & Internal Changes
- Extensive refactoring across UI, templates, storage, and fetcher to simplify code and reduce memory allocations.
- Replaced
interface{}
withany
(Go 1.18+ idiomatic usage). - Reorganized JavaScript code: simplified functions, reduced duplication, and modernized handlers.
app.js
bundle and service worker files are now loaded as a JavaScript module.- Use request builder in media proxy handler.
📚 Documentation
- Fixed typos and updated default values in the man page.
- Removed
ChangeLog
file (release notes are visible on GitHub and the official website - use the commit history for more details).
🛠 Dependencies
Updated GitHub Actions workflows to use Go version 1.25.
Updated dependencies:
golang.org/x/net
→ 0.43.0golang.org/x/image
→ 0.30.0golang.org/x/term
→ 0.34.0github.com/tdewolff/minify/v2
→ 2.23.11github.com/coreos/go-oidc/v3
→ 3.15.0github.com/prometheus/client_golang
→ 1.23.0- GitHub Actions:
actions/checkout
bumped to v5
✅ Tests
- Added API integration tests for fetching categories with counters.
- Added tests for icon URL discovery, SVG minification error handling, and version format enforcement.
- Added unit tests for
RequestBuilder
. - Avoided building a temporary binary for integration tests.
For more details, look at the commit history.
Attachments
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-darwin-amd64
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-darwin-amd64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-darwin-arm64
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-darwin-arm64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-freebsd-amd64
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-freebsd-amd64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-amd64
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-amd64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-arm64
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-arm64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-armv5
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-armv5.sha256
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-armv6
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-armv6.sha256
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-armv7
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-linux-armv7.sha256
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-openbsd-amd64
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-openbsd-amd64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux-2.2.12-1.0.x86_64.rpm
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux_2.2.12_amd64.deb
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux_2.2.12_arm64.deb
- https://github.com/miniflux/v2/releases/download/2.2.12/miniflux_2.2.12_armhf.deb