Skip to content

v0.12.0

Choose a tag to compare

@tenequm tenequm released this 03 Jul 18:31
bc8db85

Onboarding and multi-machine sync: a first run no longer looks like it hangs, the scheduled sync no longer races a manual one, and pond status finally reports this host's own relationship to the store. Verified end to end on a fresh install (macOS and Linux) plus cold-context first-run testing.

🛠 Breaking Changes

  • pond status --format json output shape changed - the adapters field is renamed to source_agents (count of distinct source agents in the store), and schedule changes from a string to an object {active, backend, every}. A new top-level pond_version field carries the producing binary's version so consumers can pin the format going forward. Scripts parsing status JSON must update these keys. (5e56aad)

🎉 New Features

  • sync: per-host single-flight lock (a local flock in the state dir, never on the Lance store - cross-host writers stay pure OCC); a second sync waits and names the holder, --no-wait skips cleanly (exit 0) and is what the scheduled job passes so ticks never queue. Adds --dry-run (per-adapter freshness preview, writes nothing) and --format json (one summary document on stdout for every outcome, progress on stderr). Every long phase now has a live face - rowmap-build spinner, model-download stage line, per-adapter bar with a recent-rate ETA, inline-embed counter - plus a ~30s heartbeat off-TTY. pond status gains a local section (per-adapter sources + pending-sync counts, last sync outcome incl. a surfaced scheduled failure, next scheduled run) and --hosts fleet view; pond init runs the first sync in the foreground and registers the schedule only after it completes, so a fresh timer never races it. (26a7c7a)
  • nix: canonical flake shipped in-repo; releases are the single binary host (a4f5e09)

🐛 Bug Fixes

  • cli: first-run onboarding polish - the ~500 MB embedding-model download now announces itself before it starts (previously a silent multi-minute "hang"); pond status no longer fuses long adapter names with their counts and reads "semantic ready (brute-force; index builds at scale)" instead of the alarming "below activation threshold"; empty-store search points at pond init rather than blaming filters that were never set; no-adapters states name pond adapters discover; message deltas are labelled "searchable" so the searchable-vs-total gap stops reading as data loss. (43d53f5)
  • cli: pond status --format json emits a JSON error document on the store-open failure path instead of empty stdout (matching sync --format json); vector search reads "N nearest messages" with a --mode fts caveat so a gibberish query no longer looks like confident relevance; and pond sql/pond search/pond get error text renders CLI verbs instead of the shared module's MCP tool/resource names. (9423535)

🚜 Refactor

  • sync: address PR review findings - close the Ctrl-C window in init schedule registration, reject un-embeddable XDG_STATE_HOME paths, and DRY the shared status/heartbeat helpers (29a4b3a)

Full Changelog: v0.11.2...v0.12.0