Apply THRESHOLD_DORMANT decay filter in semantic_recall() before
scoring, consistent with the keyword path in recall(). Memories
with decay_score < 0.05 are now excluded from semantic search,
preventing the decay system's intent from being bypassed via
high-similarity embedding matches.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- embeddings.py: embed() early-exit returned hardcoded EMBEDDINGS_PATH
constant instead of self.memory_dir path, giving wrong path for
non-default graphs
- mcp_server.py: _trigger_git_sync() now passes the active graph's
memory_dir via COGNITIVE_MEMORY_DIR env var so non-default graphs
get synced correctly
- analysis.py: replaced hardcoded project name list with auto-detection
(tags in 5+ memories with 4+ co-occurring tags) so reflection works
for any graph without manual maintenance
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Moved application code from ~/.claude/skills/cognitive-memory/ to its own
project directory. The skill layer (SKILL.md, SCHEMA.md) remains in the
skill directory for Claude Code to read.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>