Releases: skymanbp/cc-memory
v2.0.3 - Fix sqlite3 missing in installer exe
Bug Fix
Fixed 'No module named sqlite3' error when initializing a project via the installer exe.
Root cause: PyInstaller only traces static imports. Since db.py is bundled as a data file (not analyzed), its import sqlite3 was invisible to PyInstaller. Fixed by adding --hidden-import sqlite3 --collect-all sqlite3 to force inclusion.
Downloads
cc-memory-installer.exe— Installer + project initializer (11.7 MB)cc-memory-dashboard.exe— Visual memory dashboard (12.0 MB)
v2.0.2 - Fix exe project initialization
Bug Fixes
- Fixed SQLite error when initializing project via exe — The installer now uses the bundled
db.py(from inside the exe) instead of requiring the plugin to be installed first. You can now initialize a project in Step 3 without doing Step 1 first. - Uninstall button now visible — The Uninstall button in the bottom toolbar has been present in code since v2.0.1 but required an exe rebuild to appear. This release includes the rebuilt exe.
Downloads
cc-memory-installer.exe— One-click installer + project initializer (10.8 MB)cc-memory-dashboard.exe— Visual memory management dashboard (12.0 MB)
v2.0.0 — Real-time Observer, FTS5, MCP Server, Web Viewer
cc-memory v2.0.0
Major upgrade matching claude-mem feature set while keeping zero external dependencies (pure Python stdlib).
New Features
- Real-time observer — Stop hook calls Haiku AI after each Claude response to evaluate observations and decide what to save (like claude-mem's observer agent, but batched per-turn)
- PostToolUse capture — Every tool call recorded as observation in SQLite
- FTS5 full-text search — SQLite native ranking with LIKE fallback
- Progressive disclosure — 5-layer token-budget context injection (topics → critical → timeline → handoff → footer)
- SHA-256 dedup — Content hash deduplication replaces string comparison
- Structured session summaries — 6 fields (request/investigated/learned/completed/next_steps/notes)
- Privacy tags —
<private>content stripped before storage - MCP server — 7 tools via JSON-RPC stdio
- Web dashboard — localhost:9377 browser-based SPA
- Mode system — code/research/writing profiles
- File logger — All hooks log to file, never stderr (fixes hook error UI)
- One-click uninstall — GUI button +
--uninstallCLI flag
Database
- 8 backward-compatible migrations (auto-applied on first connect)
- Existing
memory.dbfiles upgrade transparently - SQLite PRAGMA optimizations (busy_timeout, mmap, cache)
Three-Layer Save Mechanism
| Layer | When | Who Decides |
|---|---|---|
| Observer | After each Claude response | Haiku AI (real-time) |
| PreCompact | Before compaction | Haiku AI (batch) |
| /save-memories | Manual | Claude (on-demand) |
Installation
Download cc-memory-installer.exe and run it. Three steps:
- Install Plugin → copies files to
~/.claude/hooks/cc-memory/ - Configure Hooks → registers 5 hooks in
settings.json - Initialize Project → creates
memory/in your project
Files
cc-memory-installer.exe— One-click installer (GUI + CLI)cc-memory-dashboard.exe— Tkinter visual dashboard
v1.2.0 — Topic-based memory consolidation
What's New
Hierarchical Topic Consolidation
Memories are now organized into a 3-level hierarchy instead of a flat list:
- Level 0: Topic summaries — consolidated via Haiku LLM, always injected at session start
- Level 1: Active memories — top-5 per topic kept, rest archived
- Level 2: Archived — queryable but not injected
New Module: consolidate.py
6-step consolidation pipeline:
- Garbage cleanup — regex patterns remove Claude meta-text, XML tags, etc.
- Fuzzy dedup — trigram Jaccard similarity (threshold=0.65) merges near-duplicates
- Topic assignment — keyword-frequency-based, no LLM needed
- LLM summarization — Haiku generates per-topic summaries →
topicstable - Importance decay — imp=5 decays to 4 after 30 days, 4→3 after 60 days
- Archive consolidated — memories captured in summaries get archived (keep top-5)
Improved Context Injection (session_start.py)
- Injects topic summaries (compact, ~250 chars each) instead of raw memory dump
- Adds unmerged critical memories + recent high-value items
- Total injection: ~4.5KB structured vs ~3KB random before
Smarter Extraction (pre_compact.py)
- LLM extraction now includes
topicfield for each memory - Auto-consolidation triggers every 5 sessions
New CLI Commands (mem.py)
mem.py --project <path> topics # View all topic summaries
mem.py --project <path> consolidate # Run full consolidation
mem.py --project <path> cleanup # Quick: garbage + dedup + topic assign (no LLM)
mem.py --project <path> add ... --topic <name> # Add with topic tagSchema Migration
memoriestable gainstopic TEXTcolumn (auto-migrated on first connect)- Migration tracking via
_migrationstable - Backward-compatible: existing DBs upgrade transparently
Results on real project (288 memories, 39 sessions)
| Metric | Before | After |
|---|---|---|
| Active memories | 288 (flat) | 76 (top-5/topic) |
| Topic summaries | 0 | 16 |
| Near-duplicates | 9+ | 0 |
| Injection quality | Random dump | Structured by topic |
Full Changelog: v1.1.1...v1.2.0
v1.1.1 — Fix non-ASCII path encoding bug
Fix
-
Fixed encoding bug with non-ASCII project paths — When the project directory contains non-ASCII characters (e.g., Chinese
D:\档案\),json.dumps()with defaultensure_ascii=Trueproduced Unicode escape sequences that created invalid surrogate pairs in API request bodies, causing:- API Error 400: "invalid high surrogate in string"
- Empty
memory.db(0 memories, 0 sessions saved) - Garbled path display in logs
-
Added
ensure_ascii=Falsetojson.dumps()in bothsession_start.pyandpre_compact.pyAPI request serialization.
Files
cc-memory-installer.exe— One-click installercc-memory-dashboard.exe— Memory management GUI
v1.0.0: Auto-deploy /save-memories skill and Stop hook on project init
Install with cc-memory-installer.exe. cc-memory-dashboard.exe is a stand alone memory/task manager for this plugin.