Stability & Performance
This release addresses the top-reported stability and performance issues.
SQLite Lock Contention Fix (#52)
- Fix ref counting race condition:
ListProjectsand watcher'spollAllnow useAcquireStorewith proper ref counting, preventing the evictor from closing database connections mid-query — the most likely root cause of server hangs requiring SIGKILL - Stale SHM recovery: After an unclean shutdown (SIGKILL), stale
-shmfiles with orphaned lock state are automatically detected and removed on next startup, preventing deadlocks - Increased busy_timeout: From 5s to 10s for better tolerance on large databases
OOM Prevention (#49, #46)
- Default GOMEMLIMIT: 2GB memory limit applied by default when not user-configured, preventing unbounded memory growth that caused 13GB+ OOM kills
- Reduced mmap_size: From 256MB to 64MB per database — with multiple projects open, the old value could consume excessive virtual memory
CPU Usage Reduction (#45)
- Watcher base interval: Increased from 1s to 5s — ~5x fewer polling ticks
- Poll interval base: Increased from 1s to 5s — reduces
git statusfrequency for change detection - Net effect: significantly lower idle CPU usage, especially with multiple projects
Windows Duplicate Database Fix (#50)
- Drive letter normalization:
D:\projectandd:\projectnow resolve to the same database, preventing duplicate indexing on Windows
Upgrade
codebase-memory-mcp update
After updating, restart your editor/Claude Code session. Stale SHM files from previous crashes will be automatically cleaned up on first launch.