All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.25 - 2026-05-12
- (deps) update rust crate quick-xml to v0.40.0
- (deps) update rust crate rss to v2.0.13
- (deps) update rust crate open to v5.3.5
- (deps) update rust crate atom_syndication to v0.12.8
- (deps) update rust crate quick-xml to v0.39.4
- (deps) update rust crate chumsky to v0.13.0
- (deps) update rust crate quick-xml to v0.39.3
- merge
- (deps) update release-plz/action digest to 064f4d1
- (deps) update rust crate assert_cmd to v2.2.2
0.1.24 - 2026-05-02
- serialize query back to token syntax via Display impl
- summary footer with query echo (#172)
- (deps) update rust crate open to v5.3.4
- use sort_by instead of sort_by_key for date ordering
- (deps) update rust crate clap to v4.6.1 (#164)
- (deps) update rust crate rayon to v1.12.0 (#162)
- (deps) update rust crate assert_cmd to v2.2.1
- (deps) update rust crate libc to v0.2.186
- make clippy happy
- fix failing ci and prek-related issues
- fix clippy error (#170)
- (deps) update rust crate libc to v0.2.185 (#161)
0.1.23 - 2026-04-06
- add sync only selected feeds
- add Custom store location description with RSS_STORE env (#157)
0.1.22 - 2026-04-02
- (deps) update rust crate libc to v0.2.184 (#155)
0.1.21 - 2026-03-29
- (deps) update rust crate synctato to v0.1.12 (#151)
- (deps) update rust crate terminal_size to v0.4.4 (#144)
- (deps) update rust crate sha2 to v0.11.0 (#146)
- (deps) update dtolnay/rust-toolchain digest to 29eef33 (#150)
- (deps) pin dtolnay/rust-toolchain action to 631a55b (#149)
0.1.20 - 2026-03-21
- improve feed finder logic (#143)
0.1.19 - 2026-03-16
- allow configuring default query (#111)
- allow ingest filtering
- (deps) update rust crate synctato to v0.1.11 (#132)
- (deps) update rust crate synctato to v0.1.10 (#130)
- (deps) pin rust crate url-normalize to =0.1.1 (#128)
- normalize feed urls (#127)
- correctly validate date ranges (#126)
- do not leave dangling read marks (#125)
- sanitize control characters from input strings (#124)
- prevent panic in feed discovery on non-ASCII HTML (#123)
- allow stable feed shorthand matching (#121)
- add jq based ingest filtering (#138)
- move content filtering to ingest layer (#137)
- unifiy config system (#136)
- enable testing on windows (#133)
0.1.18 - 2026-03-14
- discover feeds on deep URLs by trying root paths first (#119)
0.1.17 - 2026-03-13
- use proper headers for version check request (#117)
0.1.16 - 2026-03-13
0.1.15 - 2026-03-13
- warn user when using outdated version (#112)
- (deps) update rust crate clap to v4.6.0 (#109)
- simplify default query logic (#110)
- (deps) update swatinem/rust-cache digest to e18b497 (#107)
- add comparison with alternatives (#106)
- move build_feed_labels to a more appropriate place (#105)
0.1.14 - 2026-03-09
- fetch posts also from new feeds coming from remote (#100)
0.1.13 - 2026-03-08
- allow exporting feed list to opml (#95)
0.1.12 - 2026-03-08
- prevent data loss due to old versions after future migrations (#93)
- allow importing opml files (#92)
- fix typo: s/you likely has/you likely have/ (#90)
- fix markdown formatting (#88)
- mention subscribing to blogtato releases (#86)
0.1.11 - 2026-03-08
- mark old posts as read when subscribing to feed (#83)
- (deps) update rust crate libc to v0.2.183 (#85)
0.1.10 - 2026-03-07
- easily merge remote and local db (#81)
- remove redundant date filter
- fix failing test (#82)
0.1.9 - 2026-03-07
- (synctato) add Table::delete_where() (#70)
- (synctato) add Table::iter() for zero-clone iteration
- improve blog sync performance (#76)
- (deps) update release-plz/action digest to 1528104 (#74)
- add performance measuring scripts (#75)
- avoid per-item SHA-256 hashing in read status filter (#73)
- avoid allocations in GroupKey sort comparator
- deduplicate shorthand lookup in FeedIndex
- extarct MAX_FEED_CANDIDATES
- deduplicate spinner creation
- extract BLOG_NAME_BUDGET_PERCENT
- explain shorthand logic and design a bit
- replace ensure_no_query with reject_filter to avoid unnecessary parsing
- move query execution logic from data/index to query/resolve
- replace tautological assertion
- small fixes
- extract start_of_day helper
- use partition in split_at_command
- extract Query::or_default_view
- replace parallel vectors in FeedIndex with Vec
- reuse Style between group.rs and item.rs
- break down format_item into smaller bits
- accept &RenderCtx in render_grouped instead of 7 positional args
0.1.8 - 2026-03-06
- add export command
- split display module (#61)
- split up query.rs (#60)
- create a utils folder (#59)
- remove useless test module (#58)
- add data folder (#57)
- move shorthand logic to separate file (#56)
- create synctato crate (#55)
- create tables module (#54)
0.1.7 - 2026-03-05
- add default query (#50)
0.1.6 - 2026-03-05
- allow filtering for read and unread posts (#49)
- make syntax more similar to taskwarrior (#47)
- allow marking post unread (#46)
- avoid race condition when running multiple sync at the same time (#43)
0.1.5 - 2026-03-03
- track read/unread status for articles (#41)
- move git logic into db
0.1.4 - 2026-03-03
- git operations sometimes hang (#35)
- do not rely on comments to structure code (#37)
0.1.3 - 2026-03-02
- explain git based sync decision (#34)
- update documentation to reflect new filtering logic (#33)
- (deps) update rust crate rstest to 0.26 (#32)
- make test code less verbose (#31)
0.1.2 - 2026-03-01
0.1.1 - 2026-03-01
- add some color to output (#22)
- defensively use a more flexible db location (#21)