Tags: xenitV1/lemma
Tags
feat(lifecycle): 0.19.0 — Wave 2 (quality_score, decay model, consoli… …dation, conflict resolution) Roadmap Wave 2 — six additive/config-gated refinements; no schema migration, tool contract intact (two new capabilities are optional params on existing tools). - C2: revive the dormant quality_score (src/intelligence/scoring.ts), populate incrementally on touch-points, surface counter-citing refine suggestions. - B3: non-destructive consolidation — memory_merge/memory_forget consolidate=true supersede + down-weight (reversible) instead of hard-delete. - B4: resolveConflict win-heuristic (recency×confidence×support) → supersedes suggestion + spot-decay on high-confidence memory_add conflicts (advisory). - B5: Ebbinghaus, type-aware decay behind decay.model config (default linear). - C3: two-tier gated scanForConflicts (inverted-index candidates) — identical output. - D2/D3: memory_add quality gate + habituation; filled TOOL_NUDGES gaps. Verified: typecheck, build, 762/762 unit + real-MCP (test:mcp:c2, test:mcp:wave2) and real-LLM e2e (GLM-5.1 over Z.AI coding-plan; test:mcp:glm). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(memory): 0.18.3 — injection ranking/format + Codex trigger + res… …earch roadmap Memory-injection quality and Codex triggering. Backward compatible — no schema, tool-contract, or API changes; only the LLM-facing text and its ordering changed. - Injection ranking now uses the shared injectionScore (confidence×recency), matching the documented formula instead of confidence-only. - SKILL.md description + memory_read description rewritten as imperatives that force a memory_read at task start (Codex's only always-visible surface). - Injected blob is XML-tagged with confidence labels + age, split into RECENT/ESTABLISHED, with greedy diversity de-duplication. - Added a research-grounded ROADMAP with a backward-compatibility contract (1000+ installs), linked from README + Development Guide. Verified: build, typecheck, npm test (738/738, +2 injection tests). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(memory): 0.18.2 — FTS5 operator escaping + memory_update dedup th… …reshold Two recurring memory_update failures: 1. fts5: syntax error near "OR" — user fragment text containing OR/AND/NOT/NEAR was fed into the FTS5 query unquoted and parsed as boolean operators. Added a shared sanitizeFtsQuery (src/db/fts.ts) that double-quotes each token; wired into all 5 user-content FTS sites. Guide prefix-wildcard sites (which can't be quoted) now filter boolean tokens via FTS_BOOLEAN_OPS; STOP_WORDS gained "near". 2. False-positive "Similar fragment already exists" blocked legitimate updates sharing even one common token with another fragment — memory_update's dedup had no similarity threshold. Replaced the inline FTS top-3 check with findSimilarByText(..., 0.80, excludeId), matching memory_add's behavior. Verified: npm test 736/736 (+4 regression tests). Co-Authored-By: Claude <noreply@anthropic.com>
fix(memory): 0.17.2 — restore structuredContent fragment fields in si…
…ngle-id/batch paths
memory_read id="..." and ids=[...] returned only {id} in structuredContent.fragments
since 0.16.0, stripping title/type/fragment/confidence. Clients reading
structuredContent saw empty fragments (session_start preload looked blank).
Now both paths emit full fields; +2 regression tests.
fix(memory): 0.17.1 — write-side project normalization + SCHEMA_V3 mi… …gration Root cause: addFragmentToDb bypassed the normalization only addMemory had, so memory_add/merge/session_start stored raw project keys (mixed case, full paths, literal 'global') and per-project recall silently missed them. - resolveProjectScope() single chokepoint: omitted -> detected project, explicit null -> global, string -> basename+lowercase, 'global' -> null - addFragmentToDb normalizes defensively (closes the leaky write path) - remove project default:null from memory_add/merge schemas (clients no longer auto-send null for an omitted field) - SCHEMA_V3 idempotent startup migration heals historical dirty keys in memories + sessions (backslash->slash->basename->lowercase->global->NULL) - +17 tests (normalize unit + migration idempotency/cleanup)
fix(mcp)!: 0.16.0 — structuredContent, outputSchema validation, proje… …ct isolation - structuredContent now emitted on all 26 tools (advertised in 0.15.0 but never populated) - 6 outputSchema/data mismatches fixed (resolved MCP error -32602 under 2025-06-18): memory_read next_offset nullable, memory_stats/audit/session_stats/library/project_analytics shapes - memory_add/merge auto-detect project when omitted (was silently global, broke isolation) - protocolVersion bumped 2024-11-05 -> 2025-06-18 - additionalProperties:false on all 26 input schemas - project field type string -> ["string","null"] - deep MCP flow tests (confirm/deep/inject) + smoke test prefix fix Co-Authored-By: Claude <noreply@anthropic.com>
PreviousNext