New Features
Cross-encoder reranking (#90)
Opt-in rerank step after hybrid search via RERANK_ENABLED=true. Uses @xenova/transformers MiniLM-L-6-v2 cross-encoder on top-20 candidates. Graceful fallback when model unavailable.
Working memory / context window (#58)
Core memory system with pinned facts (always included in context) + automatic paging of archival memories. 5 new functions: mem::core-add, mem::core-remove, mem::core-list, mem::working-context, mem::auto-page.
Skill extraction (#57)
Auto-generate reusable procedural skill documents from completed sessions via LLM. Idempotent reinforcement. mem::skill-match queries relevant skills. 3 new functions.
Bug Fixes
- Plugin install validation (#94): Fixed
plugin.json—authormust be object not string, removedhooksfield (auto-loaded by convention),skillsas explicit path array
Improvements
- Rerank window decoupled from limit (fixed 20-item cross-encoder window)
- Parallel KV fetches in skill extraction
continueinstead ofbreakfor oversized core entries- Access-counter writes buffered with
Promise.allSettled RERANK_ENABLEDparsed with=== "true"- All state-changing operations audited
- Session status guard for skill extraction
- Skill fingerprint covers title + trigger + steps
Full Changelog: v0.7.5...v0.7.6