Go Client: Allow passing a custom http.Client and 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-src to 'none' for stronger security.
Integrations:
Added tags option for the Karakeep integration.
Added new Archive.org integration.
Rewrite Rules:
Added remove_img_blur_params rule.
Added add_image_title rule for explainxkcd.com.
🧰 Improvements & Refactoring
Replaced custom modal with native <dialog> element for simpler, more accessible UI.
Simplified date parsing in the reader and XML encoding logic.
Replaced fmt.Errorf with errors.New where applicable.
Removed dependency on hstore in the database layer and relaxed implicit NOT NULL for 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_url when url is missing.
Updated scraper rule for Dark Reading.
📚 Documentation
Clarified the POLLING_FREQUENCY environment variable in the documentation.
🏗️ Build & CI
Updated dependencies:
github.com/tdewolff/minify/v2 → 2.24.4
golang.org/x/net → 0.46.0
golang.org/x/image → 0.32.0
golang.org/x/oauth2 → 0.32.0
github.com/coreos/go-oidc/v3 → 3.16.0
github/codeql-action → 4
Updated make lint and 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.