Added
- Choose a data directory in Settings → General → Data Management. Migrate to an empty folder on the next launch, preserve the original data as a backup, and keep using the original directory if copying fails. Retain command-line/environment overrides for desktop and server deployments. (#673, #1204)
- Select XPath fields in an isolated preview with original page styles and images, hover highlights, ancestor selection and extracted samples. Start from an article title to suggest a list and infer its links; calibrate the list or any field with a second example, review highlighted matches and field coverage, and retain manual selection. Disable source scripts, forms and navigation. (#1205)
Changed
- Reduce reader memory use with bounded article/feed caches, an approximately 8 MiB SQLite page cache per connection and two idle connections, at most two concurrent browser parses, streamed media downloads/serving with range and conditional requests, and lazy article images. Cache eight recently opened article bodies while preserving cancellation and invalidation behavior. (#771) (@expoli)
- Window long ungrouped normal/compact article lists. Keep cards, tables and grouped views fully rendered to preserve grid positions and headers; retain keyboard navigation and release observers for unmounted rows. (#90) (@expoli)
Fixed
- Atomically replace the installed Linux AppImage instead of launching an update from the temporary download directory. Restart after the old instance exits, retain launch options, bypass close-to-tray during the handoff, and remove the downloaded file and empty directory. Preserve the installed image if staging fails. (#1201)
- Provide a standard-library Python feed for the government latest-policy page, whose JavaScript-generated article list is absent from static HTML. Document the JSON alternative and correct XPath date configuration. (#1203)
- Correct the content-cache TTL from nanoseconds to 30 minutes, enforce capacity even when writes share a timestamp, and prevent expired or in-flight entries from undoing cache invalidation. (@expoli)