hungry-ghost-hive 0.18.0 → 0.18.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"assign.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/assign.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,aAAa,SA8ItB,CAAC"}
1
+ {"version":3,"file":"assign.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/assign.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,aAAa,SAsJtB,CAAC"}
@@ -12,6 +12,8 @@ export const assignCommand = new Command('assign')
12
12
  .description('Assign planned stories to agents (spawns Seniors as needed)')
13
13
  .option('--dry-run', 'Show what would be assigned without making changes')
14
14
  .action(async (options) => {
15
+ // Track if we need to start the manager after DB is closed
16
+ let shouldStartManager = false;
15
17
  await withHiveContext(async ({ root, paths, db }) => {
16
18
  const spinner = ora('Assigning stories...').start();
17
19
  try {
@@ -112,18 +114,10 @@ export const assignCommand = new Command('assign')
112
114
  else {
113
115
  spinner.succeed(chalk.green(summaryMsg));
114
116
  }
115
- // Auto-start the manager if work was assigned and it's not running
117
+ // Determine if we should start the manager, but don't start it yet
118
+ // Wait until after withHiveContext closes the DB to prevent race condition
116
119
  if (result.assigned > 0) {
117
- if (!(await isManagerRunning())) {
118
- spinner.start('Starting manager daemon...');
119
- const started = await startManager(60);
120
- if (started) {
121
- spinner.succeed(chalk.green('Manager daemon started (checking every 60s)'));
122
- }
123
- else {
124
- spinner.info(chalk.gray('Manager daemon already running'));
125
- }
126
- }
120
+ shouldStartManager = !(await isManagerRunning());
127
121
  }
128
122
  console.log();
129
123
  console.log(chalk.gray('View agent status:'));
@@ -136,5 +130,17 @@ export const assignCommand = new Command('assign')
136
130
  process.exit(1);
137
131
  }
138
132
  });
133
+ // DB is now closed - safe to start the manager daemon
134
+ // This prevents the race condition where manager loads stale DB state
135
+ if (shouldStartManager) {
136
+ const spinner = ora('Starting manager daemon...').start();
137
+ const started = await startManager(60);
138
+ if (started) {
139
+ spinner.succeed(chalk.green('Manager daemon started (checking every 60s)'));
140
+ }
141
+ else {
142
+ spinner.info(chalk.gray('Manager daemon already running'));
143
+ }
144
+ }
139
145
  });
140
146
  //# sourceMappingURL=assign.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../src/cli/commands/assign.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../src/cli/commands/assign.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hungry-ghost-hive",
3
- "version": "0.18.0",
3
+ "version": "0.18.2",
4
4
  "description": "AI Agent Orchestrator - Manages agile software development teams of AI agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -9,6 +9,7 @@
9
9
  "main": "./dist/index.js",
10
10
  "scripts": {
11
11
  "prepare": "husky install",
12
+ "postinstall": "node scripts/postinstall.js",
12
13
  "build": "tsc",
13
14
  "prepack": "npm run build",
14
15
  "dev": "tsx src/index.ts",
@@ -68,6 +69,7 @@
68
69
  },
69
70
  "files": [
70
71
  "dist",
72
+ "scripts",
71
73
  "src",
72
74
  "tsconfig.json"
73
75
  ],
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Postinstall script that checks if the npm global bin directory
5
+ * is in the user's PATH on Windows. If not, prints a helpful message.
6
+ */
7
+
8
+ if (process.platform !== 'win32') {
9
+ process.exit(0);
10
+ }
11
+
12
+ import { execSync } from 'child_process';
13
+
14
+ try {
15
+ // Get npm's global bin directory
16
+ const npmBin = execSync('npm config get prefix', { encoding: 'utf-8' }).trim();
17
+ const envPath = process.env.PATH || process.env.Path || '';
18
+
19
+ // On Windows, npm installs binaries to <prefix>/
20
+ // Check both <prefix> and <prefix>/node_modules/.bin
21
+ const pathEntries = envPath.split(';').map(p => p.toLowerCase().replace(/\\/g, '/'));
22
+ const npmBinNorm = npmBin.toLowerCase().replace(/\\/g, '/');
23
+
24
+ const inPath = pathEntries.some(p => p === npmBinNorm || p === npmBinNorm + '/');
25
+
26
+ if (!inPath) {
27
+ console.log('');
28
+ console.log('\x1b[33m%s\x1b[0m', ' ⚠ Hive CLI: npm global bin directory is not in your PATH');
29
+ console.log('');
30
+ console.log(' To use the "hive" command, add this directory to your PATH:');
31
+ console.log('');
32
+ console.log('\x1b[36m%s\x1b[0m', ` ${npmBin}`);
33
+ console.log('');
34
+ console.log(' You can do this by running (PowerShell as Administrator):');
35
+ console.log('');
36
+ console.log(
37
+ '\x1b[36m%s\x1b[0m',
38
+ ` [Environment]::SetEnvironmentVariable("PATH", $env:PATH + ";${npmBin}", "User")`
39
+ );
40
+ console.log('');
41
+ console.log(' Then restart your terminal.');
42
+ console.log('');
43
+ }
44
+ } catch {
45
+ // Silently ignore errors - this is just a helpful hint
46
+ }
@@ -13,6 +13,9 @@ export const assignCommand = new Command('assign')
13
13
  .description('Assign planned stories to agents (spawns Seniors as needed)')
14
14
  .option('--dry-run', 'Show what would be assigned without making changes')
15
15
  .action(async (options: { dryRun?: boolean }) => {
16
+ // Track if we need to start the manager after DB is closed
17
+ let shouldStartManager = false;
18
+
16
19
  await withHiveContext(async ({ root, paths, db }) => {
17
20
  const spinner = ora('Assigning stories...').start();
18
21
 
@@ -128,17 +131,10 @@ export const assignCommand = new Command('assign')
128
131
  spinner.succeed(chalk.green(summaryMsg));
129
132
  }
130
133
 
131
- // Auto-start the manager if work was assigned and it's not running
134
+ // Determine if we should start the manager, but don't start it yet
135
+ // Wait until after withHiveContext closes the DB to prevent race condition
132
136
  if (result.assigned > 0) {
133
- if (!(await isManagerRunning())) {
134
- spinner.start('Starting manager daemon...');
135
- const started = await startManager(60);
136
- if (started) {
137
- spinner.succeed(chalk.green('Manager daemon started (checking every 60s)'));
138
- } else {
139
- spinner.info(chalk.gray('Manager daemon already running'));
140
- }
141
- }
137
+ shouldStartManager = !(await isManagerRunning());
142
138
  }
143
139
 
144
140
  console.log();
@@ -151,4 +147,16 @@ export const assignCommand = new Command('assign')
151
147
  process.exit(1);
152
148
  }
153
149
  });
150
+
151
+ // DB is now closed - safe to start the manager daemon
152
+ // This prevents the race condition where manager loads stale DB state
153
+ if (shouldStartManager) {
154
+ const spinner = ora('Starting manager daemon...').start();
155
+ const started = await startManager(60);
156
+ if (started) {
157
+ spinner.succeed(chalk.green('Manager daemon started (checking every 60s)'));
158
+ } else {
159
+ spinner.info(chalk.gray('Manager daemon already running'));
160
+ }
161
+ }
154
162
  });