Skip to content

Tags: xenitV1/lemma

Tags

v0.20.0

Toggle v0.20.0's commit message
0.20.0 — Wave 3: structural roadmap (A3, B1, B2, B6, A4, C1, C4)

v0.19.0

Toggle v0.19.0's commit message
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>

v0.18.3

Toggle v0.18.3's commit message
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>

v0.18.2

Toggle v0.18.2's commit message
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>

v0.18.1

Toggle v0.18.1's commit message
0.18.1 — guarded postinstall

v0.18.0

Toggle v0.18.0's commit message
0.18.0 — auto-install SKILL.md for Codex compatibility

v0.17.2

Toggle v0.17.2's commit message
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.

v0.17.1

Toggle v0.17.1's commit message
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)

v0.16.0

Toggle v0.16.0's commit message
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>