froggo-mission-control 1.2.7 → 1.2.9

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.
@@ -5,8 +5,18 @@ import path from 'path';
5
5
  import { execSync } from 'child_process';
6
6
 
7
7
  function checkCliInstalled(): boolean {
8
+ // Check common install locations — 'which claude' fails in LaunchAgent PATH context
9
+ const candidates = [
10
+ process.env.CLAUDE_BIN, // set by cli.js in LaunchAgent env
11
+ '/opt/homebrew/bin/claude', // Homebrew Apple Silicon
12
+ '/usr/local/bin/claude', // Homebrew Intel / manual
13
+ `${homedir()}/.npm-global/bin/claude`, // npm global custom prefix
14
+ `${homedir()}/.local/bin/claude`, // Linux local
15
+ '/usr/bin/claude',
16
+ ];
17
+ if (candidates.some(p => p && existsSync(p))) return true;
8
18
  try {
9
- execSync('which claude', { stdio: 'pipe' });
19
+ execSync('which claude', { stdio: 'pipe', env: { ...process.env, PATH: `/opt/homebrew/bin:/usr/local/bin:${homedir()}/.npm-global/bin:${process.env.PATH}` } });
10
20
  return true;
11
21
  } catch {
12
22
  return false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "froggo-mission-control",
3
- "version": "1.2.7",
3
+ "version": "1.2.9",
4
4
  "description": "Self-hosted AI agent platform for Claude Code CLI. Multi-agent orchestration, task management, Gmail, Calendar, Kanban and more.",
5
5
  "keywords": [
6
6
  "claude",
@@ -135,14 +135,15 @@ installObsidian();
135
135
 
136
136
  // ── Rebuild native addons for current Node.js version ──────────────────────
137
137
  info('Rebuilding native modules for Node.js ' + process.version + '...');
138
+ // Use 'inherit' so failures are visible; npm rebuild finds nested .pnpm packages automatically
138
139
  for (const mod of ['better-sqlite3', 'keytar']) {
139
140
  const result = spawnSync('npm', ['rebuild', mod], {
140
- cwd: ROOT, shell: true, stdio: 'pipe', encoding: 'utf-8',
141
+ cwd: ROOT, shell: true, stdio: 'inherit',
141
142
  });
142
143
  if (result.status === 0) {
143
144
  success(`${mod} compiled`);
144
145
  } else {
145
- warn(`${mod} rebuild failed (non-fatal): ${(result.stderr || '').slice(0, 120)}`);
146
+ warn(`${mod} rebuild failed — the app may not start correctly. Try: npm rebuild ${mod} in the install directory`);
146
147
  }
147
148
  }
148
149
 
@@ -586,11 +586,25 @@ export default function OnboardingWizard({ onComplete, onSkip }: OnboardingWizar
586
586
  </div>
587
587
  ))}
588
588
  </div>
589
+ {sysCheck.cli === 'fail' && (
590
+ <div className="p-3 rounded-lg bg-amber-500/10 border border-amber-500/20 mb-3 text-xs space-y-1.5">
591
+ <p className="font-medium text-amber-400">Claude CLI not detected</p>
592
+ <p className="text-mission-control-text-dim">Mission Control requires the Claude Code CLI to spawn agents.</p>
593
+ <a
594
+ href="https://docs.anthropic.com/claude-code"
595
+ target="_blank"
596
+ rel="noopener noreferrer"
597
+ className="inline-flex items-center gap-1 text-mission-control-accent hover:underline font-medium"
598
+ >
599
+ Install Claude Code CLI →
600
+ </a>
601
+ <p className="text-mission-control-text-dim">After installing, click Re-check below.</p>
602
+ </div>
603
+ )}
589
604
  {criticalFailed && (
590
605
  <div className="p-3 rounded-lg bg-red-500/10 border border-red-500/20 mb-4 text-xs text-red-400 space-y-1">
591
606
  <p className="font-medium">Task database not found</p>
592
- <p>Run: <code className="font-mono">mkdir -p ~/mission-control/data</code></p>
593
- <p>Then restart the app and return here.</p>
607
+ <p className="text-mission-control-text-dim">Run <code className="font-mono text-red-300">mission-control restart</code> in your terminal, then click Re-check.</p>
594
608
  </div>
595
609
  )}
596
610
  <button