gitnexus 1.6.6-rc.16 → 1.6.6-rc.18

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/dist/cli/setup.js CHANGED
@@ -48,11 +48,13 @@ function resolveGitnexusBin() {
48
48
  .map((l) => l.trim())
49
49
  .filter(Boolean);
50
50
  if (isWin) {
51
- // On Windows, `where` returns multiple entries (e.g. the POSIX shell
52
- // script AND the .cmd/.bat wrapper). Prefer the wrapper because
53
- // child_process.spawn() cannot execute a shell script directly.
51
+ // On Windows, npm global installs can surface multiple launchers for the
52
+ // same package (e.g. a POSIX shell shim plus .cmd/.bat wrappers). Claude
53
+ // and the other MCP hosts need a directly spawnable command path, so only
54
+ // accept the Windows wrapper. If it is missing, fall back to the slower
55
+ // npx entry instead of persisting a non-spawnable shim path.
54
56
  const cmdLine = lines.find((l) => /\.(cmd|bat)$/i.test(l));
55
- return cmdLine || lines[0] || null;
57
+ return cmdLine || null;
56
58
  }
57
59
  return lines[0] || null;
58
60
  }
@@ -377,7 +377,15 @@ export const streamGraphNdjson = async (res, includeContent = false, signal) =>
377
377
  */
378
378
  const mountSSEProgress = (app, routePath, jm) => {
379
379
  app.get(routePath, (req, res) => {
380
- const job = jm.getJob(req.params.jobId);
380
+ let jobId;
381
+ try {
382
+ jobId = assertString(req.params.jobId, 'jobId');
383
+ }
384
+ catch (err) {
385
+ res.status(err.status ?? 400).json({ error: err.message });
386
+ return;
387
+ }
388
+ const job = jm.getJob(jobId);
381
389
  if (!job) {
382
390
  res.status(404).json({ error: 'Job not found' });
383
391
  return;
@@ -417,7 +425,7 @@ const mountSSEProgress = (app, routePath, jm) => {
417
425
  try {
418
426
  eventId++;
419
427
  if (progress.phase === 'complete' || progress.phase === 'failed') {
420
- const eventJob = jm.getJob(req.params.jobId);
428
+ const eventJob = jm.getJob(jobId);
421
429
  res.write(`id: ${eventId}\nevent: ${progress.phase}\ndata: ${JSON.stringify({
422
430
  repoName: eventJob?.repoName,
423
431
  error: eventJob?.error,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitnexus",
3
- "version": "1.6.6-rc.16",
3
+ "version": "1.6.6-rc.18",
4
4
  "description": "Graph-powered code intelligence for AI agents. Index any codebase, query via MCP or CLI.",
5
5
  "author": "Abhigyan Patwari",
6
6
  "license": "PolyForm-Noncommercial-1.0.0",
@@ -60,7 +60,7 @@
60
60
  "cli-progress": "^3.12.0",
61
61
  "commander": "^14.0.3",
62
62
  "cors": "^2.8.5",
63
- "express": "^4.19.2",
63
+ "express": "^5.2.1",
64
64
  "express-rate-limit": "^8.4.1",
65
65
  "glob": "^13.0.6",
66
66
  "graphology": "^0.26.0",
@@ -100,7 +100,7 @@
100
100
  "devDependencies": {
101
101
  "@types/cli-progress": "^3.11.6",
102
102
  "@types/cors": "^2.8.17",
103
- "@types/express": "^4.17.21",
103
+ "@types/express": "^5.0.6",
104
104
  "@types/js-yaml": "^4.0.9",
105
105
  "@types/node": "^25.6.0",
106
106
  "@types/uuid": "^11.0.0",