v1.0.89 — Stability, search perf, and new contributors
Fixed
- Prevent duplicate hook processes (#282) — When both
hooks.jsonandsettings.jsonhave context-mode entries, hooks fired twice. Now actively strips settings.json entries when plugin hooks.json covers all events. Self-heal also respects hooks.json presence. Thanks @shauneccles! - Coerce string-typed numeric tool inputs (#281) — LLMs sometimes send
timeout: "300000"(string instead of number).z.number()rejected these with -32602. Now usesz.coerce.number()for timeout and port fields.ctx_purge.confirmintentionally stays strict (z.coerce.boolean("false") === true). Thanks @shauneccles! - Pi extension UI output (#279) —
ctx_statsandctx_doctornow route output through Pi'sctx.ui.notify()when available. Thanks @h4rvey-g! - Insight security hardening — EADDRINUSE check, adapter-aware paths, robust timeouts, input validation from 5-agent grill review.
Performance
- LRU cache for fuzzyCorrect (#274) — 256-entry cache with Map LRU semantics. Invalidated on vocab insert. Thanks @sebastianbreguel!
- Byte-safe truncation (#273) —
byteSafePrefix()with binary search and surrogate-pair guard. Thanks @sebastianbreguel! - Dedup tokens in sanitizeQuery (#276) — Case-insensitive dedup reduces redundant FTS5 lookups. Thanks @sebastianbreguel!
Tests
- exit-classify branch coverage (#278) — Thanks @sebastianbreguel!
- ctx_doctor early-exit collectRpcResponses (#277) — Thanks @sebastianbreguel!
- New
tests/truncate.test.ts(156 lines)
Community PRs
@shauneccles (#281, #282), @h4rvey-g (#279), @sebastianbreguel (#273, #274, #276, #277, #278)
Upgrade:
npm install -g context-mode@1.0.89Full Changelog: v1.0.88...v1.0.89