.maestro/playbooks/2026-03-12-CM-Issues-PRs/2026-03-12-Issues-PRs-Triage/TRIAGE-06-Cross-Platform-Fixes.md
These bugs affect specific platforms — primarily Windows — and prevent claude-mem from working at all on those systems. While medium severity for the project overall, they're blocking for affected users. Each fix is targeted and low-risk.
Issues addressed: #1342, #1247, #1225, #1297 Prerequisite: Phases 01-05 should be complete.
Fix CRLF line endings in mcp-server.cjs causing shebang failure (#1342). The #!/usr/bin/env node shebang fails on macOS/Linux when the file has Windows line endings (\r\n):
plugin/scripts/mcp-server.cjs for CRLF line endings: search for \r charactersscripts/build-hooks.js and any build scripts that generate plugin/scripts/*.cjs files.replace(/\r\n/g, '\n') to the output write step, OR.gitattributes entry: plugin/scripts/*.cjs text eol=lf to enforce LF on checkout.cjs files in plugin/scripts/ for the same issue — fix them all at onceFix tree-sitter CLI failure on Windows (#1247). smart-explore (smart_search/smart_outline/smart_unfold) fails silently because tree-sitter CLI requires a C compiler which most Windows users don't have:
tree-sitter, smart_search, smart_outline, smart_unfold in the codebase to find the tree-sitter invocationtree-sitter --version (or equivalent quick check)tree-sitter CLI not available. On Windows, install via 'npm install -g tree-sitter-cli' or use WSL.Fix Windows Chroma initialization failure (#1225). chroma-mcp reports "Received request before initialization was complete" causing all semantic searches to fail on Windows:
src/services/sync/ChromaMcpManager.ts — find where the client connects and runs initial commandsthis.client.connect(), call a lightweight Chroma operation (like chroma_list_collections) in a retry loop (max 5 attempts, 2s interval) before marking as connectedCLAUDE_MEM_CHROMA_STARTUP_DELAY_MS setting from Phase 02 helps here — if so, just increase the default for Windows Fix .env.local crash on macOS (#1297). chroma-mcp (pydantic Settings) reads .env.local files from the CWD, causing crashes when the project has environment variables that conflict with Chroma's settings:
src/services/sync/ChromaMcpManager.ts buildCommandArgs() to see how the subprocess is spawnedenv on the spawn options to exclude .env loading. Add PYDANTIC_SETTINGS_DOTENV_PATH='' or DOTENV_PATH='' to the subprocess environment to prevent pydantic from reading project .env.local files~/.claude-mem/) instead of inheriting the project CWDRun tests and build:
npm test — all tests must passnpm run build-and-sync.env.local file