instar 1.3.405 → 1.3.406

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":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiG7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA6JtD,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA05BD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,GAC/F,IAAI,CAyUN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0gUtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiG7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA6JtD,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA05BD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,GAC/F,IAAI,CAyUN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAohUtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
@@ -10281,11 +10281,14 @@ export async function startServer(options) {
10281
10281
  // the ticket is bound to that sender and consumed once on upgrade.
10282
10282
  'pool-stream-ticket': (cmd, sender) => {
10283
10283
  const c = cmd;
10284
- if (!_streamTicketStore)
10284
+ if (!_streamTicketStore) {
10285
+ console.log(pc.dim(` [pool-stream-ticket] mint request from ${sender} REFUSED: store disabled`));
10285
10286
  return { ok: false, reason: 'pool-stream disabled' };
10287
+ }
10286
10288
  if (!c.session || typeof c.session !== 'string')
10287
10289
  return { ok: false, reason: 'session required' };
10288
10290
  const minted = _streamTicketStore.mint(sender);
10291
+ console.log(pc.dim(` [pool-stream-ticket] minted ticket for ${sender}`));
10289
10292
  return { ok: true, ticket: minted.ticket, expiresAtMs: minted.expiresAtMs };
10290
10293
  },
10291
10294
  // COHERENCE-JOURNAL-SPEC §3.4 — always-registered journal-sync verb
@@ -10406,37 +10409,51 @@ export async function startServer(options) {
10406
10409
  // bounded reconnect → machine-unreachable).
10407
10410
  {
10408
10411
  const { WebSocket: WsClient } = await import('ws');
10412
+ const psLog = (m) => console.log(pc.dim(` [pool-stream-connector] ${m}`));
10409
10413
  _poolStreamConnector = {
10410
10414
  connect: (machineId, handlers) => {
10411
10415
  const httpUrl = peerUrl(machineId);
10412
- if (!httpUrl)
10416
+ if (!httpUrl) {
10417
+ psLog(`connect ${machineId}: no peer url → unreachable`);
10413
10418
  return null;
10419
+ }
10414
10420
  let ws = null;
10415
10421
  let open = false;
10416
10422
  let closed = false;
10417
10423
  const pending = [];
10418
10424
  (async () => {
10419
10425
  try {
10420
- const r = await meshClient.send({ machineId, url: httpUrl }, { type: 'pool-stream-ticket', session: '*' }, 0);
10426
+ psLog(`minting ticket from ${machineId} (${httpUrl})`);
10427
+ // EXPLICIT 10s timeout (live-verify finding 2026-06-07): without
10428
+ // it a wedged mint hung indefinitely — the stream never opened
10429
+ // AND never errored (the connector's onClose never fired), so the
10430
+ // dashboard sat silent forever. A bounded send fails honestly →
10431
+ // onClose → the proxy surfaces peer-stream-lost / unreachable.
10432
+ const r = await meshClient.send({ machineId, url: httpUrl }, { type: 'pool-stream-ticket', session: '*' }, 0, { timeoutMs: 10_000 });
10421
10433
  const ticket = r.ok && r.result && typeof r.result === 'object' ? r.result.ticket : undefined;
10422
- if (!ticket || closed) {
10434
+ if (!ticket) {
10435
+ psLog(`mint failed for ${machineId}: ok=${r.ok} status=${r.status} reason=${r.reason ?? ''} hasTicket=${!!ticket}`);
10423
10436
  if (!closed)
10424
10437
  handlers.onClose();
10425
10438
  return;
10426
10439
  }
10440
+ if (closed)
10441
+ return;
10427
10442
  const wsUrl = httpUrl.replace(/^http/, 'ws').replace(/\/$/, '') + `/pool-stream?ticket=${encodeURIComponent(ticket)}`;
10443
+ psLog(`ticket ok; opening upstream ws to ${machineId}`);
10428
10444
  ws = new WsClient(wsUrl);
10429
- ws.on('open', () => { open = true; for (const m of pending)
10445
+ ws.on('open', () => { open = true; psLog(`upstream OPEN to ${machineId}`); for (const m of pending)
10430
10446
  ws.send(m); pending.length = 0; handlers.onOpen(); });
10431
10447
  ws.on('message', (d) => { try {
10432
10448
  handlers.onFrame(JSON.parse(String(d)));
10433
10449
  }
10434
10450
  catch { /* @silent-fallback-ok: a non-JSON peer frame is dropped; the stream protocol is JSON-only (§2.2) */ } });
10435
- ws.on('close', () => handlers.onClose());
10436
- ws.on('error', () => { if (!open)
10451
+ ws.on('close', (code) => { psLog(`upstream CLOSE from ${machineId} (code ${code}, wasOpen ${open})`); handlers.onClose(); });
10452
+ ws.on('error', (e) => { psLog(`upstream ERROR to ${machineId}: ${e?.message ?? e}`); if (!open)
10437
10453
  handlers.onClose(); });
10438
10454
  }
10439
- catch {
10455
+ catch (e) {
10456
+ psLog(`connect to ${machineId} threw: ${e?.message ?? e}`);
10440
10457
  if (!closed)
10441
10458
  handlers.onClose();
10442
10459
  }