Daily and weekly timers fired simultaneously on Sundays, causing
decay() and reflect() to race on _state.json. Now merges top-level
keys before writing and uses atomic tempfile+rename to prevent
partial reads from triggering silent JSONDecodeError fallbacks.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- .gitignore: Add backups/ to stop noisy session backup rotation diffs
- Remove tracked backup files from index
- skills/cognitive-memory/mcp_server.py: Auto-push to Gitea on memory_store and memory_relate
- skills/cognitive-memory/scripts/memory-git-sync.sh: New git commit+push script
- skills/cognitive-memory/systemd/cognitive-memory-daily.service: Add git sync as fallback
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- SKILL.md: New workflow pattern for creating edges between memories
- SKILL.md: Added proactive trigger for edge creation after storing memories
- SKILL.md: Updated bug fix example to show relating solution to problem
- scripts/edge-proposer.py: Retroactive edge candidate analysis tool
Scores memory pairs by type heuristics, tag overlap, and content similarity
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MCP store was missing the --episode behavior that the CLI had,
so episodes stopped being logged when sessions switched to using
MCP tools. Now defaults to true with opt-out via episode=false.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Normalize both signals to 0-1 range so semantic similarity scores
aren't drowned out by keyword position scores. Jellyfin DB recovery
now ranks #1 for "media server database broken sqlite error" instead
of being buried behind keyword noise matches on "error".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- embed --if-changed compares memory ID sets to skip when unchanged
- --ollama-model config flag to switch models without code changes
- _ollama_embed now accepts model param, respects config throughout
- Switched default to qwen3-embedding:8b (70+ MTEB vs nomic's ~52)
- Hourly systemd timer for embedding, daily timer no longer embeds
- Fixed PATH for uv in both systemd services
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add first-class edge files in graph/edges/ with bidirectional frontmatter
refs, hybrid Ollama/OpenAI embedding providers with fallback chain, and
native MCP server (18 tools) for direct Claude Code integration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add commit.md and commit-push-pr.md commands
- Update cognitive-memory SKILL.md to use claude-memory wrapper
- Split major-domo CLI into cli.py + cli_admin.py
- Add claude-statusline scripts and plugins dir
- Remove deprecated claude-pulse script
- Update settings.json and claude-researcher agent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Changed zero-access usage_factor from 0.5 to 1.0 in calculate_decay_score().
Previously, a freshly stored solution (importance=0.7, weight=1.2) scored
0.42 (Fading); now scores 0.84 (Active) as intended.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>