Compare commits

...

10 Commits

Author SHA1 Message Date
Alex Newman 65e3047df8 feat: add worker control scripts for start, stop, restart, and status 2025-12-23 16:54:19 -05:00
Alex Newman cc5a9ace6f chore: update mem-search plugin zip file 2025-12-23 16:53:04 -05:00
Alex Newman 20801f3a31 chore: bump version to 8.0.4
Changed worker start script

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 16:52:39 -05:00
Alex Newman 6033498adf fix: correct JSON structure in marketplace.json for plugin definition 2025-12-23 16:43:44 -05:00
Alex Newman f9bd5fd032 chore: update version to 8.0.3 in package.json 2025-12-23 16:38:30 -05:00
Alex Newman a60a8974b6 docs: update changelog for v8.0.3 2025-12-23 16:31:42 -05:00
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
9 changed files with 67 additions and 19 deletions
+1 -1
View File
@@ -10,7 +10,7 @@
"plugins": [ "plugins": [
{ {
"name": "claude-mem", "name": "claude-mem",
"version": "8.0.2", "version": "8.0.4",
"source": "./plugin", "source": "./plugin",
"description": "Persistent memory system for Claude Code - context compression across sessions" "description": "Persistent memory system for Claude Code - context compression across sessions"
} }
+29
View File
@@ -4,6 +4,35 @@ 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.3] - 2025-12-23
Fix critical worker crashes on startup (v8.0.2 regression)
## [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
+5 -5
View File
@@ -1,6 +1,6 @@
{ {
"name": "claude-mem", "name": "claude-mem",
"version": "8.0.2", "version": "8.0.4",
"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",
@@ -36,13 +36,13 @@
"sync-marketplace": "node scripts/sync-marketplace.cjs", "sync-marketplace": "node scripts/sync-marketplace.cjs",
"sync-marketplace:force": "node scripts/sync-marketplace.cjs --force", "sync-marketplace:force": "node scripts/sync-marketplace.cjs --force",
"build:binaries": "node scripts/build-worker-binary.js", "build:binaries": "node scripts/build-worker-binary.js",
"worker:start": "claude-mem start",
"worker:stop": "claude-mem stop",
"worker:restart": "claude-mem restart",
"worker:status": "claude-mem status",
"worker:logs": "tail -n 50 ~/.claude-mem/logs/worker-$(date +%Y-%m-%d).log", "worker:logs": "tail -n 50 ~/.claude-mem/logs/worker-$(date +%Y-%m-%d).log",
"changelog:generate": "node scripts/generate-changelog.js", "changelog:generate": "node scripts/generate-changelog.js",
"discord:notify": "node scripts/discord-release-notify.js", "discord:notify": "node scripts/discord-release-notify.js",
"worker:start": "bun plugin/scripts/worker-cli.js start",
"worker:stop": "bun plugin/scripts/worker-cli.js stop",
"worker:restart": "bun plugin/scripts/worker-cli.js restart",
"worker:status": "bun plugin/scripts/worker-cli.js status",
"translate-readme": "bun scripts/translate-readme/cli.ts -v -o docs/i18n README.md", "translate-readme": "bun scripts/translate-readme/cli.ts -v -o docs/i18n README.md",
"translate:tier1": "npm run translate-readme -- zh ja pt-br ko es de fr", "translate:tier1": "npm run translate-readme -- zh ja pt-br ko es de fr",
"translate:tier2": "npm run translate-readme -- he ar ru pl cs nl tr uk", "translate:tier2": "npm run translate-readme -- he ar ru pl cs nl tr uk",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "claude-mem", "name": "claude-mem",
"version": "8.0.2", "version": "8.0.4",
"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"
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "claude-mem-plugin", "name": "claude-mem-plugin",
"version": "8.0.2", "version": "8.0.4",
"private": true, "private": true,
"description": "Runtime dependencies for claude-mem bundled hooks", "description": "Runtime dependencies for claude-mem bundled hooks",
"type": "module", "type": "module",
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');
} }
/** /**