NEXO 7.20.2 — local memory service hardening
Published 2026-05-12. Patch release over v7.20.1.
Why this release exists
Local Context must behave like a resident memory worker, not a one-shot scan. v7.20.2 closes the cases where background indexing could look idle or healthy while failed jobs, expired leases, scheduler failures or unreadable folders still needed attention.
What changed
- Stalled job recovery. Retryable failed jobs are requeued when due, and expired running leases are reclaimed automatically.
- Real service health. Status now includes macOS LaunchAgent exit code, Windows Scheduled Task result, last successful cycle, last heartbeat and unresolved service errors.
- Visible scan problems. Permission and filesystem read errors are counted and surfaced as retryable local-memory problems instead of being swallowed silently.
- Safer roots. Direct MCP/CLI runs bootstrap default roots when none exist, and Windows roots such as
C:\stay true drive roots.
Validation
python3 -m pytest tests/test_local_context.py \
tests/test_local_context_cli.py \
tests/test_local_index_service_runtime.py \
tests/test_local_context_pre_action.py -q
# 35 passed
python3 -m py_compile src/local_context/api.py \
src/local_context/util.py \
src/scripts/nexo-local-index.py
# clean