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
package/scripts/postinstall.js
CHANGED
|
@@ -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: '
|
|
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
|
|
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
|
|
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
|