v0.2.0 β pin a fact, and it survives restart
Pin the handful of things a long-running agent must never lose, and they stay reachable after a restart.
Session.pin()β a slice that is never faded and never evicted, re-pinned from the pool when the session reopens- Retrieval now follows the connected thread rather than isolated nearest neighbours β thread recall@8 0.15 β 0.78
- Long, write-heavy runs no longer pay a full index rebuild on every search
Pinned facts survive a restart
Before this release, a session reopened against an existing pool started with an empty witness β every previously pinned slice came back as ordinary content and faded on the first long run. Which is exactly when a durable memory is supposed to prove itself.
from aether_context import Session
# run once, then exit the process entirely
s = Session("ollama/qwen2.5", pool_dir="~/.aether/demo")
s.pin("The API base URL is https://internal.example/v2 β never hardcode a region.")
s.close()# a new process, later
s = Session("ollama/qwen2.5", pool_dir="~/.aether/demo")
s.run("What's our API base URL?") # the pinned constraint is still residentPermanence is re-derived from the slices' own tags rather than tracked in a second file that could disagree with them.
Retrieval follows the thread
The MPO context chain links a session's slices into one connected structure. When cosine pulls an entry slice, the chain pulls in the slices most coupled to it β widening the working set with the connected thread instead of isolated nearest neighbours. Cosine remains the retrieval mechanism; the chain improves selection.
On by default, deterministic, numpy-only, and fail-soft β it degrades to plain cosine. Disable with Session(mpo_chain=False) or --no-mpo-chain.
Reproduce the number yourself:
python -m bench.chain_recallthreads=40 size=5 distractors=400 k=8
cosine-only thread recall@8: 0.150
+ MPO chain thread recall@8: 0.775
Also in this release
- Witness temporal lock-in β a freshly paged-in slice carries a short-lived eviction bonus, breaking the evict β cold-miss β re-page flap. Deliberately small: it beats comparable-salience churn but never overrides a genuinely load-bearing slice, and it affects eviction ordering only.
- Incremental HNSW inserts β the index adds rows in
O(new)instead of rebuilding the whole graph inO(N)on every search-after-add. Removes the quadratic insert cost on long runs. --index tieredno longer makes a silent capability claim β it was always falling back to flat, and now says so.- CI is green across all 16 checks on Linux, Windows and macOS for Python 3.10β3.13.
Install
Install straight from GitHub β this is the supported path today:
pip install git+https://github.com/AetherAI3/Unlimited-Context-LLM.git@v0.2.0aether-context is not on PyPI yet, so pip install aether-context will not work. Requires Python 3.10+. Apache-2.0. Full detail in CHANGELOG.md.