Compare commits

..

4 Commits

Author SHA1 Message Date
Alex Newman 2137407663 chore: bump version to 8.0.3 2025-12-23 16:30:48 -05:00
Alex Newman cd2ed80d74 Update mem-search plugin with new features and improvements 2025-12-23 16:29:45 -05:00
Alex Newman fdd8411dea fix: resolve critical worker crashes on startup (v8.0.2 regression)
Fixes #417, #418, #421, #422, #425

1. Handle Chroma sync errors gracefully in DatabaseManager to prevent unhandled promise rejections.

2. Safely handle missing 'claude' executable in SDKAgent with try-catch block around auto-detection.
2025-12-23 16:27:58 -05:00
Alex Newman f491b61f4f chore: update CHANGELOG.md for v8.0.2
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 22:07:02 -05:00
8 changed files with 61 additions and 18 deletions
+3 -5
View File
@@ -8,11 +8,9 @@
"homepage": "https://github.com/thedotmack/claude-mem" "homepage": "https://github.com/thedotmack/claude-mem"
}, },
"plugins": [ "plugins": [
{ "thedotmack": {
"name": "claude-mem", "name": "claude-mem",
"version": "8.0.2", "version": "8.0.3",
"source": "./plugin", "description": "Memory compression system for Claude Code",
"description": "Persistent memory system for Claude Code - context compression across sessions"
}
] ]
} }
+25
View File
@@ -4,6 +4,31 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [8.0.2] - 2025-12-23
New "chill" remix of code mode for users who want fewer, more selective observations.
## Features
- **code--chill mode**: A behavioral variant that produces fewer observations
- Only records things "painful to rediscover" - shipped features, architectural decisions, non-obvious gotchas
- Skips routine work, straightforward implementations, and obvious changes
- Philosophy: "When in doubt, skip it"
## Documentation
- Updated modes.mdx with all 28 language modes (was 10)
- Added Code Mode Variants section documenting chill mode
## Usage
Set in ~/.claude-mem/settings.json:
```json
{
"CLAUDE_MEM_MODE": "code--chill"
}
```
## [8.0.1] - 2025-12-23 ## [8.0.1] - 2025-12-23
## 🎨 UI Improvements ## 🎨 UI Improvements
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "claude-mem", "name": "claude-mem",
"version": "8.0.2", "version": "8.0.3",
"description": "Memory compression system for Claude Code - persist context across sessions", "description": "Memory compression system for Claude Code - persist context across sessions",
"keywords": [ "keywords": [
"claude", "claude",
+2 -1
View File
@@ -1,6 +1,7 @@
{ {
"schema_version": "1.0",
"version": "8.0.3",
"name": "claude-mem", "name": "claude-mem",
"version": "8.0.2",
"description": "Persistent memory system for Claude Code - seamlessly preserve context across sessions", "description": "Persistent memory system for Claude Code - seamlessly preserve context across sessions",
"author": { "author": {
"name": "Alex Newman" "name": "Alex Newman"
File diff suppressed because one or more lines are too long
Binary file not shown.
+3 -1
View File
@@ -31,7 +31,9 @@ export class DatabaseManager {
this.chromaSync = new ChromaSync('claude-mem'); this.chromaSync = new ChromaSync('claude-mem');
// Start background backfill (fire-and-forget) // Start background backfill (fire-and-forget)
this.chromaSync.ensureBackfilled(); this.chromaSync.ensureBackfilled().catch(error => {
logger.error('DB', 'Chroma backfill failed (non-fatal)', {}, error);
});
logger.info('DB', 'Database initialized'); logger.info('DB', 'Database initialized');
} }
+22 -7
View File
@@ -435,15 +435,30 @@ export class SDKAgent {
*/ */
private findClaudeExecutable(): string { private findClaudeExecutable(): string {
const settings = SettingsDefaultsManager.loadFromFile(USER_SETTINGS_PATH); const settings = SettingsDefaultsManager.loadFromFile(USER_SETTINGS_PATH);
const claudePath = settings.CLAUDE_CODE_PATH ||
execSync(process.platform === 'win32' ? 'where claude' : 'which claude', { encoding: 'utf8', windowsHide: true }) // 1. Check configured path
.trim().split('\n')[0].trim(); if (settings.CLAUDE_CODE_PATH) {
// Lazy load fs to keep startup fast
if (!claudePath) { const { existsSync } = require('fs');
throw new Error('Claude executable not found in PATH'); if (!existsSync(settings.CLAUDE_CODE_PATH)) {
throw new Error(`CLAUDE_CODE_PATH is set to "${settings.CLAUDE_CODE_PATH}" but the file does not exist.`);
}
return settings.CLAUDE_CODE_PATH;
} }
return claudePath; // 2. Try auto-detection
try {
const claudePath = execSync(
process.platform === 'win32' ? 'where claude' : 'which claude',
{ encoding: 'utf8', windowsHide: true, stdio: ['ignore', 'pipe', 'ignore'] }
).trim().split('\n')[0].trim();
if (claudePath) return claudePath;
} catch (error) {
logger.debug('SDK', 'Claude executable auto-detection failed', error);
}
throw new Error('Claude executable not found. Please either:\n1. Add "claude" to your system PATH, or\n2. Set CLAUDE_CODE_PATH in ~/.claude-mem/settings.json');
} }
/** /**