- Multi-graph: named graph routing in MCP server (graph param on all tools),
CLI --graph flag, graphs subcommand, resolve_graph_path() in common.py
- XDG compliance: data dir resolves via COGNITIVE_MEMORY_DIR env > XDG_DATA_HOME > ~/.local/share/
- Remove CORE.md auto-loading: drop MEMORY.md symlinks, update CLAUDE.md to MCP-first recall
- Update all scripts (git-sync, ensure-symlinks, edge-proposer) for portable path resolution
- Remove symlinks step from daily systemd service
- Version bump to 3.1.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3,348-line monolith → 6 modules with mixin classes resolving via MRO.
client.py retains __init__, internal helpers, and core CRUD (1,091 lines).
All backward-compat imports preserved for mcp_server.py and dev/migrate.py.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Closescal/claude-memory#3. All ID-based lookups now resolve partial
UUID prefixes (git-style) instead of requiring exact full UUIDs.
Affects _resolve_memory_path, _resolve_edge_path, edge_search, and
related(). Ambiguous prefixes raise ValueError with candidates.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>
- commands/save-memories.md: slash command that analyzes session context,
finds cutoff point from last memory save, gates on value, and spawns
memory-saver agent in background with structured summary
- agents/memory-saver.md: sonnet-based agent that stores cognitive memories
from structured summaries via MCP tools or CLI fallback
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>
Updated Paper Dynasty skill to reference the new live-series-card-update
agent instead of inline CLI commands for live series workflow.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Updated Paper Dynasty skill to reference the new retrosheet-card-update
agent instead of inline CLI commands for card generation workflow.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Refactored monolithic cli.py into modular architecture:
- cli_common.py: shared state, console, output helpers
- cli_transactions.py: list + simulate (compliance checker)
- cli_injuries.py: injury listing with team/active filters
- cli_stats.py: batting/pitching leaderboards
- cli_results.py: game results
- cli_schedule.py: game schedules
Also: team get now shows salary_cap, SKILL.md fully updated
with CLI docs, flag ordering warning, and compliance workflow.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The regex used mismatched quote types, causing $(cat << to leak
into memory titles. Now tries heredoc format first with proper
EOF terminator matching, falls back to same-type quoted strings.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove homelab special-case from commit-push command (all repos now use origin)
- Update sync-config to use origin remote instead of homelab
- Enhance card generation with season-pct params, CLI reference, and validation fixes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- New: live-series-update.md workflow (FanGraphs data sourcing, PotM variant)
- Updated: card-generation.md with retrosheet PotM variant section
- Updated: SKILL.md with live series workflow references and load table
- Updated: CLAUDE.md, claude-pulse submodule
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>
- Move skills/memorygraph/ to skills/_archive/memorygraph/
- Saves ~67 tokens per session from skill loading
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Strengthen git commit memory trigger to MANDATORY
- Replace all python ~/.claude/skills/cognitive-memory/client.py refs with claude-memory wrapper
- Clean up CLI usage examples, remove CM variable boilerplate
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Version control Claude Code configuration including:
- Global instructions (CLAUDE.md)
- User settings (settings.json)
- Custom agents (architect, designer, engineer, etc.)
- Custom skills (create-skill templates and workflows)
Excludes session data, secrets, cache, and temporary files per .gitignore.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>