fix: improve worker startup on fresh install

This fixes the issue where the worker service wouldn't start automatically
after installing the plugin, leaving users with confusing error messages.

Changes:
- Update worker-utils.ts to use local PM2 from node_modules instead of
  requiring it in PATH
- Improve error messages to suggest npx pm2 commands
- Add auto-start attempt in smart-install.js after fresh installation
- Fall back gracefully if worker can't start (will auto-start on first use)

Fixes issue where users with PM2 not in their PATH couldn't start the worker.
This commit is contained in:
Dmitry Guyvoronsky
2025-11-18 12:20:41 -08:00
parent 97d8bd3e62
commit 6c9a8d1dca
2 changed files with 30 additions and 6 deletions
+20 -3
View File
@@ -260,10 +260,27 @@ async function main() {
log('', colors.reset);
process.exit(1);
}
}
// Worker will be started lazily when needed (e.g., when save-hook sends data)
// Context hook only needs database access, not the worker service
// Try to start the PM2 worker after fresh install
try {
log('🚀 Starting worker service...', colors.cyan);
const localPm2 = join(NODE_MODULES_PATH, '.bin', 'pm2');
const pm2Command = existsSync(localPm2) ? localPm2 : 'pm2';
const ecosystemPath = join(PLUGIN_ROOT, 'ecosystem.config.cjs');
execSync(`"${pm2Command}" start "${ecosystemPath}"`, {
cwd: PLUGIN_ROOT,
stdio: 'pipe',
encoding: 'utf-8'
});
log('✅ Worker service started', colors.green);
} catch (error) {
// Worker might already be running or PM2 not available - that's okay
// The ensureWorkerRunning() function will handle auto-start when needed
log('️ Worker will start automatically when needed', colors.dim);
}
}
// Success - dependencies installed (if needed)
process.exit(0);