v0.16.0
Date-scoped search stops full-scanning. The storage engine moves to Lance 10.0.0, and messages gains a timestamp zonemap that prunes date-bounded queries at the index instead of the table: on a 2.9M-row remote store a served --from-date search went from ~2 minutes to 5-6 s (~20x), and the date filter now costs nothing over an unfiltered search instead of +25 s. COUNT pushdown fires under stable row ids too (pond sql count 2.1 s -> 1.3 s). Writes are unchanged: a matched-store A/B measured sync at parity on both cold and warm runs.
Upgrading: nothing manual, but this one is a fleet decision. The zonemap is created on the first pond sync or pond optimize a 0.16.0 binary runs, and pond 0.15.1 and earlier consume that index in the wrong id domain - so an older binary reading the same store returns zero results for date-filtered searches, with no error and no warning (--from-date / --to-date on the CLI, from_date / to_date over MCP). Unfiltered search, pond get-session, pond get-message, and pond sql are unaffected, and the store's data is never damaged: an old reader that upgrades is immediately correct again. Writers are the dangerous case (correction post-release): compaction orphans the zonemap whenever it rewrites fragments the index covers - every version's compaction does this, 0.16.0's own included - after which date-filtered searches on 0.16.0 fail with a storage_unavailable error until pond optimize --rebuild recreates the index. 0.16.1 adds the repair: every pond sync/pond optimize detects the stale index right after compaction and recreates it in the same run. If several machines share one store, upgrade every machine that reads it, not just the ones that write it, and stop the schedule on machines you cannot upgrade yet.
🛠 Breaking Changes
- [breaking] stores synced by 0.16.0 carry a timestamp zonemap that pond <= 0.15.1 reads as an empty date filter (361abed)
🎉 New Features
📚 Documentation
- readme: mark roadmap step 8 shipped in v0.15.1 (c80b15c)
🧹 Chores
- embed: drive idle eviction on tokio's virtual clock (ce7138c)
Full Changelog: v0.15.1...v0.16.0