claude-self-reflect 6.0.2 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,9 +42,9 @@ class UpdateManager {
42
42
  async checkCCStatusline() {
43
43
  try {
44
44
  execSync('npm list -g cc-statusline', { stdio: 'ignore' });
45
- return { installed: true, name: 'cc-statusline', critical: false };
45
+ return { installed: true, name: 'cc-statusline', critical: true };
46
46
  } catch {
47
- return { installed: false, name: 'cc-statusline', critical: false, fix: () => this.installCCStatusline() };
47
+ return { installed: false, name: 'cc-statusline', critical: true, fix: () => this.installCCStatusline() };
48
48
  }
49
49
  }
50
50
 
@@ -77,18 +77,18 @@ class UpdateManager {
77
77
  // Check for both 'ast-grep' (brew) and 'sg' (npm) binaries
78
78
  try {
79
79
  execSync('ast-grep --version', { stdio: 'ignore' });
80
- return { installed: true, name: 'AST-Grep', critical: false };
80
+ return { installed: true, name: 'AST-Grep', critical: true };
81
81
  } catch {
82
82
  // Try 'sg' binary (npm install -g @ast-grep/cli)
83
83
  try {
84
84
  execSync('sg --version', { stdio: 'ignore' });
85
- return { installed: true, name: 'AST-Grep (sg)', critical: false };
85
+ return { installed: true, name: 'AST-Grep (sg)', critical: true };
86
86
  } catch {
87
87
  return {
88
88
  installed: false,
89
- name: 'AST-Grep (optional)',
90
- critical: false,
91
- fix: () => this.suggestASTGrep()
89
+ name: 'AST-Grep',
90
+ critical: true,
91
+ fix: () => this.installASTGrep()
92
92
  };
93
93
  }
94
94
  }
@@ -193,11 +193,43 @@ class UpdateManager {
193
193
  return await fallback.run();
194
194
  }
195
195
 
196
- async suggestASTGrep() {
197
- this.log('AST-Grep is optional but recommended for code quality features', 'info');
198
- this.log('Install with: brew install ast-grep (macOS)', 'info');
199
- this.log(' or: npm install -g @ast-grep/cli', 'info');
200
- return true; // Not critical
196
+ async installASTGrep() {
197
+ // Try npm installation first (works on all platforms)
198
+ this.log('Installing AST-Grep via npm...', 'info');
199
+ try {
200
+ execSync('npm install -g @ast-grep/cli', { stdio: 'inherit' });
201
+ this.log('AST-Grep installed successfully', 'success');
202
+ return true;
203
+ } catch (npmError) {
204
+ // Check for permission errors
205
+ const isPermissionError = npmError.code === 'EACCES' ||
206
+ npmError.code === 'EPERM' ||
207
+ (npmError.stderr && npmError.stderr.toString().includes('EACCES')) ||
208
+ (npmError.message && npmError.message.includes('permission'));
209
+
210
+ if (isPermissionError) {
211
+ this.log('Failed to install AST-Grep via npm: Permission denied', 'error');
212
+ this.log('Alternative installation methods:', 'info');
213
+ this.log(' 1. With sudo: sudo npm install -g @ast-grep/cli', 'info');
214
+ this.log(' 2. With brew: brew install ast-grep (macOS/Linux)', 'info');
215
+ this.log(' 3. Use nvm for user-local npm installs', 'info');
216
+ return false;
217
+ }
218
+
219
+ // If npm fails for other reasons, try suggesting brew on macOS
220
+ if (process.platform === 'darwin') {
221
+ this.log('npm installation failed. Checking for Homebrew...', 'warning');
222
+ try {
223
+ execSync('brew --version', { stdio: 'ignore' });
224
+ this.log('Install AST-Grep with: brew install ast-grep', 'info');
225
+ } catch {
226
+ this.log('Homebrew not found. Install from: https://brew.sh', 'info');
227
+ }
228
+ }
229
+
230
+ this.log(`AST-Grep installation failed: ${npmError.message}`, 'error');
231
+ return false;
232
+ }
201
233
  }
202
234
 
203
235
  async startQdrant() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-self-reflect",
3
- "version": "6.0.2",
3
+ "version": "6.0.3",
4
4
  "description": "Give Claude perfect memory of all your conversations - Installation wizard for Python MCP server",
5
5
  "keywords": [
6
6
  "claude",
@@ -31,7 +31,8 @@
31
31
  "author": "Claude-Self-Reflect Contributors",
32
32
  "type": "module",
33
33
  "bin": {
34
- "claude-self-reflect": "installer/cli.js"
34
+ "claude-self-reflect": "installer/cli.js",
35
+ "csr-status": "scripts/csr-status"
35
36
  },
36
37
  "files": [
37
38
  "installer/**/*.js",
@@ -43,8 +43,10 @@ class LocalEmbeddingProvider(EmbeddingProvider):
43
43
  """Initialize the FastEmbed model."""
44
44
  try:
45
45
  from fastembed import TextEmbedding
46
- self.model = TextEmbedding(model_name="BAAI/bge-small-en-v1.5")
47
- logger.info("Initialized local FastEmbed model (384 dimensions)")
46
+ # CRITICAL: Use the correct model that matches the rest of the system
47
+ # This must be sentence-transformers/all-MiniLM-L6-v2 (384 dimensions)
48
+ self.model = TextEmbedding(model_name="sentence-transformers/all-MiniLM-L6-v2")
49
+ logger.info("Initialized local FastEmbed model: sentence-transformers/all-MiniLM-L6-v2 (384 dimensions)")
48
50
  except ImportError as e:
49
51
  logger.error("FastEmbed not installed. Install with: pip install fastembed")
50
52
  raise