✨ New Features
- Go Client: Allow passing a custom
http.Clientand add context support to API methods. - UI: Redirect users back to the original page after logging in.
- Template: Improved Content Security Policy: extracted CSP generation into a function, added systematic nonces, and changed
default-srcto'none'for stronger security. - Integrations:
- Added tags option for the Karakeep integration.
- Added new Archive.org integration.
- Rewrite Rules:
- Added
remove_img_blur_paramsrule. - Added
add_image_titlerule for explainxkcd.com.
- Added
🧰 Improvements & Refactoring
- Replaced custom modal with native
<dialog>element for simpler, more accessible UI. - Simplified date parsing in the reader and XML encoding logic.
- Optimized sanitizer functions (
hasRequiredAttributes,hasValidURIScheme,isBlockedResource). - Replaced
fmt.Errorfwitherrors.Newwhere applicable. - Removed dependency on
hstorein the database layer and relaxed implicitNOT NULLfor serial types. - Simplified Fever API slice sizing and various internal cleanups.
- Preallocated slices and optimized string/number conversions for better performance.
🧪 Tests
- Added test cases for XML encoding behavior.
🐛 Bug Fixes
- Fixed CSS layout overflow when external links are too long.
- Fixed JSON Feed parser to fallback to
external_urlwhenurlis missing. - Updated scraper rule for Dark Reading.
📚 Documentation
- Clarified the
POLLING_FREQUENCYenvironment variable in the documentation.
🏗️ Build & CI
-
Updated dependencies:
github.com/tdewolff/minify/v2→ 2.24.4golang.org/x/net→ 0.46.0golang.org/x/image→ 0.32.0golang.org/x/oauth2→ 0.32.0github.com/coreos/go-oidc/v3→ 3.16.0github/codeql-action→ 4
-
Updated
make lintand enabled additional Go linters (perfsprint,goheader).
📝 Additional Notes
If you are seeing this Postgres error: Error: pq: must be owner of extension hstore, you can fix it by running the following SQL command as a superuser for the Miniflux database:
DROP EXTENSION hstore;This error means you initially created the hstore extension as a different database user than the one you are currently using for Miniflux.
For more details, look at the Git commit history.