@openscout/scout 0.2.109 → 0.2.110

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.
@@ -2752,6 +2752,7 @@ async function readTmuxPaneLocal(key, ctx) {
2752
2752
  try {
2753
2753
  if (parsed.kind === "detail") {
2754
2754
  const { stdout: stdout2 } = await execProbeFile(ctx, tmuxBin(), [
2755
+ "-u",
2755
2756
  ...tmuxSocketArgs(parsed.socketPath),
2756
2757
  "display-message",
2757
2758
  "-p",
@@ -3920,7 +3921,10 @@ var pty = (() => {
3920
3921
  return require3("node-pty");
3921
3922
  }
3922
3923
  })();
3923
- var DEFAULT_ORPHAN_TTL_MS = 30 * 60 * 1000;
3924
+ function defaultOrphanTtlMs() {
3925
+ const raw = Number(process.env.OPENSCOUT_RELAY_ORPHAN_TTL_MS || 0);
3926
+ return Number.isFinite(raw) && raw > 0 ? raw : 0;
3927
+ }
3924
3928
  var MAX_BUFFER_SIZE = 512 * 1024;
3925
3929
  var SAFE_TRUNCATION_WINDOW = 4096;
3926
3930
  var sessions2 = new Map;
@@ -4460,7 +4464,7 @@ async function createSession(ws, msg) {
4460
4464
  send(ws, { type: "session:error", error: `Failed to spawn terminal: ${message}` });
4461
4465
  return null;
4462
4466
  }
4463
- const orphanTTL = msg.orphanTTL && msg.orphanTTL > 0 ? msg.orphanTTL : DEFAULT_ORPHAN_TTL_MS;
4467
+ const orphanTTL = msg.orphanTTL && msg.orphanTTL > 0 ? msg.orphanTTL : defaultOrphanTtlMs();
4464
4468
  const session = {
4465
4469
  id,
4466
4470
  pty: ptyProcess,
@@ -4554,9 +4558,14 @@ function detachSession(session) {
4554
4558
  session.ws = null;
4555
4559
  if (session.exited) {
4556
4560
  scheduleReap(session, 5000);
4557
- } else {
4561
+ } else if (session.orphanTTL > 0) {
4558
4562
  scheduleReap(session, session.orphanTTL);
4559
4563
  console.log(`[relay] Session ${session.id} detached (orphaned for ${session.orphanTTL / 1000}s)`);
4564
+ } else {
4565
+ if (session.reapTimer)
4566
+ clearTimeout(session.reapTimer);
4567
+ session.reapTimer = null;
4568
+ console.log(`[relay] Session ${session.id} detached (kept until exit)`);
4560
4569
  }
4561
4570
  }
4562
4571
  function scheduleReap(session, delay) {