v0.10.0 — reliable memory
Reliable memory — five improvements that make ATS's memory more trustworthy and observable, each an extension of existing infrastructure rather than a rewrite.
- Degraded-retrieval transparency —
findreturnsdegraded+warnings+corpus.sourcesFailedwhen a corpus source or retrieval branch drops out, instead of silently serving a subset. The composite adapter records which child it dropped; a known-partial corpus is no longer cached as complete. - Optional reranking —
ats find --rerankadds a second-stage reranker over the RRF-fused pool (a built-in dependency-free lexical scorer, or pass your own cross-encoder/LLM function). Widens arerankDepthpool then trims tolimit; degrades to the fused order on failure. - Usage observability — retrieval calls now log
durationMs, andats usagereports per-tool volume, empty/error/degraded rates, latency (avg + p95), re-query pairs, and top queries (--jsonfor machine output, markdown otherwise). - Duplicate / contradiction detection —
ats dedupclusters near-duplicate tasks (dependency-free Jaccard over title + content + tags) and flags status/priority/due disagreements within a cluster as potential contradictions. Detection only; it never edits. - Reactive token refresh — the TickTick adapter refreshes its OAuth token and retries once on a
401(revoked / invalidated-early / wrong-expiry cases the proactive check misses), then surfaces an actionable "runats auth login".
Lockstep release — all public @reneza/ats-* packages published at 0.10.0. Full history in CHANGELOG.md.