Compare commits

...

6 Commits

Author SHA1 Message Date
Alex Newman ae2c789781 Bump version to 4.2.10 and fix Windows compatibility by removing hardcoded macOS path 2025-10-25 13:24:18 -04:00
Alex Newman e82d9e075b Remove hardcoded Claude code path and update project directory handling in XML import script 2025-10-25 13:18:31 -04:00
Alex Newman 99af5fdf13 Merge pull request #20 from thedotmack/copilot/fix-claude-executable-path
Remove hardcoded Claude executable path breaking non-standard installations
2025-10-25 13:02:44 -04:00
copilot-swe-agent[bot] b88ce840fa Remove hardcoded Claude executable path and defensive checks
Co-authored-by: thedotmack <683968+thedotmack@users.noreply.github.com>
2025-10-25 06:19:30 +00:00
copilot-swe-agent[bot] 516e136966 Initial exploration - understanding the issue
Co-authored-by: thedotmack <683968+thedotmack@users.noreply.github.com>
2025-10-25 06:17:53 +00:00
copilot-swe-agent[bot] 051bc8dd67 Initial plan 2025-10-25 06:14:29 +00:00
12 changed files with 48 additions and 22 deletions
+1 -1
View File
@@ -10,7 +10,7 @@
"plugins": [
{
"name": "claude-mem",
"version": "4.2.9",
"version": "4.2.10",
"source": "./plugin",
"description": "Persistent memory system for Claude Code - context compression across sessions"
}
+10
View File
@@ -8,6 +8,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased]
## [4.2.10] - 2025-10-25
### Fixed
- **Windows compatibility**: Removed hardcoded macOS-specific Claude executable path that prevented worker service from running on Windows
- Removed hardcoded path: `/Users/alexnewman/.nvm/versions/node/v24.5.0/bin/claude`
- Removed `pathToClaudeCodeExecutable` parameter from SDK query() calls
- SDK now automatically detects Claude Code executable path on all platforms
- Affects: `src/sdk/worker.ts`, `src/services/worker-service.ts`, `plugin/scripts/worker-service.cjs`
## [4.2.3] - 2025-10-23
### Security
+27 -2
View File
@@ -4,7 +4,7 @@
Claude-mem is a persistent memory compression system that preserves context across Claude Code sessions. It automatically captures tool usage observations, processes them through the Claude Agent SDK, and makes summaries available to future sessions.
**Current Version**: 4.2.9
**Current Version**: 4.2.10
**License**: AGPL-3.0
**Author**: Alex Newman (@thedotmack)
@@ -210,7 +210,32 @@ npm run build && git commit -a -m "Build and update" && git push && cd ~/.claude
## Version History
### v4.2.9 (Current)
### v4.2.10 (Current)
**Breaking Changes**: None (patch version)
**Critical Bugfix**:
- Fixed Windows compatibility issue caused by hardcoded macOS-specific Claude executable path
- Removed hardcoded path: `/Users/alexnewman/.nvm/versions/node/v24.5.0/bin/claude`
- Removed `pathToClaudeCodeExecutable` parameter from SDK query() calls
- SDK now automatically detects Claude Code executable path on all platforms
- Improves cross-platform compatibility (Windows, macOS, Linux)
**Impact**:
- Before: Worker service failed on Windows due to hardcoded macOS path
- After: Worker service works correctly on all platforms
**Technical Details**:
- Updated `src/sdk/worker.ts` to remove hardcoded Claude path and `pathToClaudeCodeExecutable` parameter
- Updated `src/services/worker-service.ts` to remove hardcoded Claude path and parameter
- Built `plugin/scripts/worker-service.cjs` reflects changes
- Affects all SDK agent initialization in worker service
**Files Changed**:
- `src/sdk/worker.ts`
- `src/services/worker-service.ts`
- `plugin/scripts/worker-service.cjs` (rebuilt)
### v4.2.9
**Breaking Changes**: None (patch version)
**Documentation**:
+1 -1
View File
@@ -17,7 +17,7 @@
<img src="https://img.shields.io/badge/License-AGPL%203.0-blue.svg" alt="License">
</a>
<a href="package.json">
<img src="https://img.shields.io/badge/version-4.2.9-green.svg" alt="Version">
<img src="https://img.shields.io/badge/version-4.2.10-green.svg" alt="Version">
</a>
<a href="package.json">
<img src="https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg" alt="Node">
-1
View File
@@ -1098,7 +1098,6 @@ Skip routine operations:
|----------|---------|---------|----------------|
| `CLAUDE_MEM_MODEL` | `claude-sonnet-4-5` | AI model for processing | Invalid = SDK fails |
| `CLAUDE_MEM_WORKER_PORT` | `37777` | HTTP server port | Invalid = Worker won't start |
| `CLAUDE_CODE_PATH` | `/Users/alexnewman/.nvm/versions/node/v24.5.0/bin/claude` | Path to Claude Code | Invalid = SDK fails |
### Constants
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "claude-mem",
"version": "4.2.1",
"version": "4.2.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "claude-mem",
"version": "4.2.1",
"version": "4.2.9",
"license": "AGPL-3.0",
"dependencies": {
"@anthropic-ai/claude-agent-sdk": "^0.1.23",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "claude-mem",
"version": "4.2.9",
"version": "4.2.10",
"description": "Memory compression system for Claude Code - persist context across sessions",
"keywords": [
"claude",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "claude-mem",
"version": "4.2.9",
"version": "4.2.10",
"description": "Persistent memory system for Claude Code - seamlessly preserve context across sessions",
"author": {
"name": "Alex Newman"
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -61,7 +61,7 @@ function buildTimestampMap(): TimestampMapping {
const data = JSON.parse(line);
const timestamp = data.timestamp;
const sessionId = data.sessionId;
const project = data.cwd || '/Users/alexnewman/Scripts/claude-mem';
const project = data.cwd;
if (timestamp && sessionId) {
// Round timestamp to second for matching with XML timestamps
+1 -6
View File
@@ -282,17 +282,12 @@ class SDKWorker {
* Run SDK agent with streaming input mode
*/
private async runSDKAgent(): Promise<void> {
// Find Claude Code executable
const claudePath = process.env.CLAUDE_CODE_PATH || '/Users/alexnewman/.nvm/versions/node/v24.5.0/bin/claude';
console.error(`[SDK Worker DEBUG] About to call query with claudePath: ${claudePath}`);
const queryResult = query({
prompt: this.createMessageGenerator(),
options: {
model: MODEL,
disallowedTools: DISALLOWED_TOOLS,
abortController: this.abortController,
pathToClaudeCodeExecutable: claudePath
abortController: this.abortController
}
});
+1 -4
View File
@@ -345,16 +345,13 @@ class WorkerService {
private async runSDKAgent(session: ActiveSession): Promise<void> {
logger.info('SDK', 'Agent starting', { sessionId: session.sessionDbId });
const claudePath = process.env.CLAUDE_CODE_PATH || '/Users/alexnewman/.nvm/versions/node/v24.5.0/bin/claude';
try {
const queryResult = query({
prompt: this.createMessageGenerator(session),
options: {
model: MODEL,
disallowedTools: DISALLOWED_TOOLS,
abortController: session.abortController,
pathToClaudeCodeExecutable: claudePath
abortController: session.abortController
}
});