@monoes/monomindcli 2.9.10 → 2.9.11

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.
@@ -281,15 +281,20 @@ async function main() {
281
281
  let sawForeignOnDefault = false;
282
282
  for (let attempt = 0; attempt < CONFIRM_ATTEMPTS; attempt++) {
283
283
  await new Promise(r => setTimeout(r, 500));
284
- // 1) Authoritative: child self-reported its bound port
284
+ // 1) Authoritative: child self-reported its bound port. Identity comes
285
+ // from BOUND_REPORT's own per-invocation-unique path (nothing else on
286
+ // the machine knows it, since it's only handed to this child via env),
287
+ // NOT a pid match: under shell:true (#141's Windows EINVAL fix),
288
+ // child.pid is the wrapping cmd.exe's pid, not the real server's —
289
+ // rep.pid !== child.pid always, so a pid comparison here can never
290
+ // succeed on the npx-fallback path regardless of how long we wait
291
+ // (#143). rep.pid is the real server pid — use it for control.json.
285
292
  try {
286
293
  const rep = JSON.parse(fs.readFileSync(BOUND_REPORT, 'utf8'));
287
- if (rep && rep.pid === child.pid && typeof rep.port === 'number') {
294
+ if (rep && typeof rep.pid === 'number' && typeof rep.port === 'number') {
288
295
  try { fs.unlinkSync(BOUND_REPORT); } catch { /* ignore */ }
289
- if (rep.port !== DEFAULT_PORT) {
290
- writeStatus(child.pid, rep.port);
291
- if (String(process.env.MONOMIND_HOOK_QUIET || "") !== "1") process.stdout.write(`[control] server bound to port ${rep.port} (updated control.json)\n`);
292
- }
296
+ writeStatus(rep.pid, rep.port);
297
+ if (String(process.env.MONOMIND_HOOK_QUIET || "") !== "1") process.stdout.write(`[control] server bound to port ${rep.port} (pid ${rep.pid})\n`);
293
298
  return;
294
299
  }
295
300
  } catch { /* not written yet or old server — fall through to probe */ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monoes/monomindcli",
3
- "version": "2.9.10",
3
+ "version": "2.9.11",
4
4
  "type": "module",
5
5
  "description": "CLI engine for Monomind — an open-source MCP server that extends Claude Code with a codebase knowledge graph (tree-sitter + SQLite), persistent memory, multi-agent task coordination, and session hooks. Apache 2.0 licensed, fully local.",
6
6
  "main": "dist/src/index.js",
@@ -119,10 +119,10 @@
119
119
  "@opencode-ai/sdk": "^1.18.15",
120
120
  "monofence-ai": "^1.0.2",
121
121
  "sql.js": "^1.14.1",
122
- "@monoes/routing": "1.0.4",
123
122
  "@monoes/hooks": "1.0.5",
123
+ "@monoes/mcp": "1.0.3",
124
124
  "@monoes/memory": "1.0.15",
125
- "@monoes/mcp": "1.0.3"
125
+ "@monoes/routing": "1.0.4"
126
126
  },
127
127
  "publishConfig": {
128
128
  "access": "public",