Release Notes
Added
- acknowledgments: temporal validity model (
valid_until/last_verified, query-time expiry exclusion) credited to the Data Olympus lifecycle schema by @ajdelaguila (see README, discussion in #37) - agent memory (#37):
memory_store/memory_recallMCP tools + RESTPOST /memory/store,GET /memory/recall— durable cross-session memory in thememoryvault with optionalvalid_untilexpiry, hybrid recall. Skill docs updated with memory + doc-graph endpoint reference - doc-graph: temporal validity —
get_doc_backlinks/get_related_docs(and the REST endpoints) now surfacevalid_until/last_verifiedon each link and exclude links whose either endpoint has expired, at query time (llm-kernel graph temporal-validity fields, #37). Querying an expired doc itself returns empty in both directions - doc-graph:
verify_docMCP tool +POST /docs/verify— stamplast_verified=nowon a doc node (llm-kernelmark_verified) - doc-graph:
count_expired_docsMCP tool +GET /docs/expired— count docs excluded from recall by expiry (llm-kernelcount_expired_nodes)
Fixed
- doc-graph: expiry comparison now parses
valid_until/ now as RFC 3339 datetimes — a lexicographic string compare mis-ordered mixed UTC offsets (e.g.23:00+09:00vs15:00Z), keeping expired docs in recall - doc-graph: out-edge refresh (delete + re-insert on re-index) is now a single transaction via
SqliteGraph::with_tx(llm-kernel 0.26.2) — a mid-refresh failure no longer leaves the doc with missing edges - memory:
memory_storerejects content over 1 MiB and validatesvalid_untilas RFC 3339 - doc-graph: resolved
-D warningsclippy failures on the lib target (dead-code onDocGraph/DocLink, collapsibleifs inextract_edges) that broke the CICheckjob
Changed
- llm-kernel dependency moved from git rev
dbf9c5fback to crates.io0.26(temporal validity published). Lifecycle calls (mark_verified,count_expired_nodes) now go throughSqliteGraphwrapper methods instead of a direct rusqlite connection —doc-graphno longer enables therusqlitefeature - doc-graph: link resolution no longer re-reads the queried node once per edge (one node read per link instead of two)
- doc-graph: incremental graph updates — incremental index runs now reprocess only changed files instead of re-reading every document (full rebuild only when the file set changes, tracked via
.alcove/docgraph.stamp; also triggers on a missingdocgraph.db). Graph build status is now surfaced in the index result JSON asdoc_graphinstead of being logged to stderr only - Upgraded llm-kernel 0.15 → 0.25 (forward-compatible — no source changes; alcove's API surface was unaffected by the 0.16–0.25 breaking changes)
Re-index required for BGE-en-v1.5 and mxbai users. llm-kernel 0.25 extended the BGE-style instruction prefix (
"Represent this sentence for searching relevant passages: ") from the Arctic models toBGESmallENV15,BGEBaseENV15,BGELargeENV15, andMxbaiEmbedLargeV1, which previously had no query prefix. alcove applies prefixes at both index and query time, so indexes built with an earlier llm-kernel using one of those four models now embed queries into a different region of the embedding space than their stored documents, degrading vector search relevance. Runalcove rebuild(oralcove vault rebuild <name>for a vault) to re-embed. The default model (MultilingualE5Small) and all other models are unaffected.
Install alcove 0.13.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/epicsagas/alcove/releases/download/v0.13.0/alcove-installer.sh | shInstall prebuilt binaries via Homebrew
brew install epicsagas/tap/alcoveDownload alcove 0.13.0
| File | Platform | Checksum |
|---|---|---|
| alcove-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| alcove-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |