From 142d6ae56f6a72b3c39da18985904de305518891 Mon Sep 17 00:00:00 2001 From: Alex Newman Date: Sat, 25 Oct 2025 15:12:05 -0400 Subject: [PATCH] chore: Update changelog for v4.2.11 with cross-platform path detection fixes --- CHANGELOG.md | 18 +++++++++ CLAUDE.md | 102 ++++++++------------------------------------------- 2 files changed, 33 insertions(+), 87 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58341885..7c6c9c73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] +## [4.2.11] - 2025-10-25 + +### Fixed +- **Cross-platform Claude path detection**: Fixed SDK auto-detection failure by implementing explicit `which`/`where` command execution + - SDK's automatic Claude path detection was returning undefined + - Unix/macOS: Uses `which claude` command to find executable + - Windows: Uses `where claude` command (works in both CMD and PowerShell) + - Fallback to `CLAUDE_CODE_PATH` environment variable if set + - Handles Windows multiple results by taking first match + - Worker now logs discovered path for debugging: "Found Claude executable: /path/to/claude" + +### Technical Details +- Added `findClaudePath()` helper function using `child_process.execSync` +- Platform detection via `process.platform === 'win32'` to choose appropriate command +- Updated `src/sdk/worker.ts` and `src/services/worker-service.ts` with explicit path detection +- Both files now pass `pathToClaudeCodeExecutable: claudePath` to SDK query + + ## [4.2.10] - 2025-10-25 ### Fixed diff --git a/CLAUDE.md b/CLAUDE.md index 3e832b08..884fa845 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -210,99 +210,27 @@ npm run build && git commit -a -m "Build and update" && git push && cd ~/.claude ## Version History -### v4.2.11 (Current) -**Breaking Changes**: None (patch version) +For detailed version history and changelog, see [CHANGELOG.md](CHANGELOG.md). -**Critical Bugfix**: -- Fixed SDK auto-detection failure by implementing explicit `which`/`where` command execution - - SDK's automatic Claude path detection was not working (returned undefined) - - Implemented cross-platform executable finder using `child_process.execSync` - - Unix/macOS: Uses `which claude` command - - Windows: Uses `where claude` command (works in both CMD and PowerShell) - - Fallback to `CLAUDE_CODE_PATH` environment variable if set - - Handles Windows multiple results (takes first match) +**Current Version**: 4.2.11 -**Impact**: -- Before: Worker service failed with "path argument must be of type string. Received undefined" -- After: Worker service correctly finds Claude executable on all platforms +### Recent Highlights -**Technical Details**: -- Added `findClaudePath()` helper function to both worker files -- Uses `process.platform === 'win32'` to detect Windows and choose appropriate command -- Logs the discovered path for debugging: "Found Claude executable: /path/to/claude" -- Updated `src/sdk/worker.ts` with explicit path detection -- Updated `src/services/worker-service.ts` with explicit path detection -- Both files now pass `pathToClaudeCodeExecutable: claudePath` to SDK +#### v4.2.11 (2025-10-25) +- Fixed cross-platform Claude executable path detection using `which`/`where` commands +- Full Windows, macOS, and Linux compatibility -**Files Changed**: -- `src/sdk/worker.ts` -- `src/services/worker-service.ts` -- `plugin/scripts/worker-service.cjs` (rebuilt) +#### v4.2.8 (2025-10-25) +- Fixed NOT NULL constraint violation for claude_session_id -### v4.2.10 -**Breaking Changes**: None (patch version) +#### v4.2.3 (2025-10-23) +- Fixed FTS5 injection vulnerability +- Fixed Windows PowerShell compatibility -**Critical Bugfix**: -- Attempted to fix Windows compatibility by removing hardcoded macOS path - - Removed hardcoded path: `/Users/alexnewman/.nvm/versions/node/v24.5.0/bin/claude` - - Removed `pathToClaudeCodeExecutable` parameter to rely on SDK auto-detection - - **Note**: This approach failed; SDK auto-detection did not work (fixed in v4.2.11) - -**Impact**: -- Partial fix: Removed hardcoded macOS path -- Issue: SDK auto-detection returned undefined, causing worker failures - -**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**: -- Added experimental progressive disclosure context system documentation - - New README section explaining the 3-layer memory retrieval approach - - Created `EXPERIMENTAL_RELEASE_NOTES.md` with comprehensive testing guide - - Created `GITHUB_RELEASE_TEMPLATE.md` for release announcements - - Invites users to test `feature/context-with-observations` branch -- Progressive disclosure concept: Index (what exists + token costs) → Details (on-demand via MCP) → Perfect recall (source code) -- Seeks user feedback on observation-level context injection vs current summary-only approach - -**Purpose**: -- Gather real-world feedback before merging experimental context improvements -- Test whether showing observation index improves Claude's retrieval decisions -- Validate token cost metadata influences Claude's search behavior - -**Files Changed**: -- `README.md` - Added experimental feature section -- `EXPERIMENTAL_RELEASE_NOTES.md` - Full testing guide and feedback template -- `GITHUB_RELEASE_TEMPLATE.md` - Release announcement template -- Updated all version references to 4.2.9 - -### v4.2.8 -**Breaking Changes**: None (patch version) - -**Critical Bugfix**: -- Fixed NOT NULL constraint violation that prevented observations and summaries from being stored - - Root cause: `SessionStore.getSessionById()` was not selecting `claude_session_id` from database - - Worker service received `undefined` for `claude_session_id` when initializing sessions - - Result: Database inserts failed with "NOT NULL constraint failed: sdk_sessions.claude_session_id" - - Fix: Added `claude_session_id` to SELECT query and return type in `getSessionById()` - - Impact: Session ID from hooks now flows correctly: hook → database → worker → SDK agent - - Affects: All observation and summary storage operations - -**Technical Details**: -- Updated `src/services/sqlite/SessionStore.ts:711` to include `claude_session_id` in SELECT -- Updated return type signature to include `claude_session_id: string` field -- Worker service now correctly receives and uses `claude_session_id` from database -- System maintains consistency throughout entire session lifecycle - -**Files Changed**: -- `src/services/sqlite/SessionStore.ts` (getSessionById method) - -### v4.2.7 -**Breaking Changes**: None (patch version) +#### v4.0.0 (2025-10-18) +- MCP Search Server with FTS5 full-text search +- Plugin data directory integration +- HTTP REST API architecture with PM2 **Improvements**: - Enhanced data quality with consistent null handling