froggo-mission-control 1.2.6 → 1.2.8

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.
package/bin/cli.js CHANGED
@@ -664,9 +664,11 @@ WantedBy=default.target
664
664
  console.log('');
665
665
 
666
666
  const appUrl = `http://localhost:${port}`;
667
+ // Pass ?setup=1 on first launch so the wizard shows even if localStorage is stale
668
+ const launchUrl = `${appUrl}?setup=1`;
667
669
  if (health) {
668
670
  success(`Running at ${appUrl}`);
669
- openBrowser(appUrl);
671
+ openBrowser(launchUrl);
670
672
  } else {
671
673
  warn('Server did not respond — check logs:');
672
674
  if (IS_MAC) info(`tail -f ${logPath}`);
@@ -678,7 +680,7 @@ WantedBy=default.target
678
680
  console.log(c.bold(c.green('║ Setup complete! ║')));
679
681
  console.log(c.bold(c.green('╚══════════════════════════════════════╝')));
680
682
  console.log('');
681
- console.log(` Opening dashboard at ${c.bold(c.cyan(appUrl))}`);
683
+ console.log(` Opening dashboard at ${c.bold(c.cyan(appUrl))} — setup wizard will launch automatically`);
682
684
  console.log('');
683
685
  console.log(` ${c.bold('Data:')} ~/mission-control/`);
684
686
  console.log(` ${c.bold('Platform:')} ${INSTALL_DIR}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "froggo-mission-control",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
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
 
@@ -24,9 +24,11 @@ export function useFirstTimeUser(
24
24
  useEffect(() => {
25
25
  const onboardingDone = localStorage.getItem(ONBOARDING_KEY);
26
26
  const tourSeen = localStorage.getItem(TOUR_SEEN_KEY);
27
+ // ?setup=1 forces wizard open (used by CLI on first launch to bypass stale localStorage)
28
+ const forceSetup = new URLSearchParams(window.location.search).get('setup') === '1';
27
29
 
28
- if (!onboardingDone) {
29
- // Wizard not completed -- show it first
30
+ if (!onboardingDone || forceSetup) {
31
+ // Wizard not completed (or forced) -- show it first
30
32
  setShowOnboardingWizard(true);
31
33
  } else if (!tourSeen && !hasCompletedTour('getting-started')) {
32
34
  // Wizard done but tour not seen -- auto-start tour after brief delay