✨ New Features
- 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.
- 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.Errorf
witherrors.New
where applicable. - Removed dependency on
hstore
in the database layer and relaxed implicitNOT 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
whenurl
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.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 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:
DROP EXTENSION hstore;
For more details, look at the Git commit history.