@helix3/helix-cli 0.1.18-helix3.365 → 0.1.18-helix3.366

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.
@@ -4,8 +4,34 @@ export interface BrowserLease {
4
4
  beginLaunch(): Promise<void>;
5
5
  release(): Promise<void>;
6
6
  }
7
+ interface Receipt {
8
+ protocol: 2;
9
+ nonce: string;
10
+ pid: number;
11
+ start: string;
12
+ state: 'reserved' | 'launching';
13
+ at: string;
14
+ identity?: string;
15
+ }
7
16
  export declare function hostBrowserCap(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): number;
8
- export declare function slotIsStale(file: string, alive?: (pid: number) => boolean | 'unknown', birth?: (pid: number) => string): {
17
+ interface ProcessRow {
18
+ pid: number;
19
+ ppid: number;
20
+ start: string;
21
+ command: string;
22
+ }
23
+ /**
24
+ * Could a browser launched under this (dead) owner's receipt still be running?
25
+ * A persistent launch records its profile as `identity`: any process holding that --user-data-dir
26
+ * is the browser. Otherwise (Playwright's own temp profile) fall back to the only thing a dead
27
+ * Playwright owner can leave behind: an orphaned (ppid 1) pipe-driven Chromium main process born
28
+ * after the owner. Anything unmeasurable answers 'unknown', which keeps the lease.
29
+ */
30
+ export declare function browserMayStillRun(owner: {
31
+ identity?: string;
32
+ start: string;
33
+ }, procs?: ProcessRow[] | null): boolean | 'unknown';
34
+ export declare function slotIsStale(file: string, alive?: (pid: number) => boolean | 'unknown', birth?: (pid: number) => string, browser?: (owner: Receipt) => boolean | 'unknown'): {
9
35
  stale: boolean;
10
36
  raw: string | null;
11
37
  };
@@ -4,12 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.hostBrowserCap = hostBrowserCap;
7
+ exports.browserMayStillRun = browserMayStillRun;
7
8
  exports.slotIsStale = slotIsStale;
8
9
  exports.acquireHostBrowserSlot = acquireHostBrowserSlot;
9
10
  exports.releaseHostBrowserSlot = releaseHostBrowserSlot;
10
11
  exports.bindBrowserLease = bindBrowserLease;
11
12
  exports.launchWithBrowserSlot = launchWithBrowserSlot;
12
- // Per-browser admission protocol v2; kept identical to workspace headless-browser.mjs.
13
+ // Per-browser admission protocol v2; kept identical to workspace headless-browser.mjs
14
+ // (workspace: scripts/lib/headless-browser.mjs; change both together).
13
15
  // slot-N is a permanent directory. Old process-slot clients see it occupied and fail
14
16
  // closed. Legacy slot FILES are never reclaimed by v2. See architecture change journal.
15
17
  // All mutations of lease.json occur under atomic mkdir(mutex). We NEVER reclaim a
@@ -21,6 +23,43 @@ const node_fs_1 = __importDefault(require("node:fs"));
21
23
  const node_os_1 = __importDefault(require("node:os"));
22
24
  const node_path_1 = __importDefault(require("node:path"));
23
25
  const held = new Map();
26
+ const HOOKS = Symbol.for('helix-headless-browser-lease-hooks');
27
+ const globalHooks = globalThis;
28
+ const hooks = (globalHooks[HOOKS] ??= { releasers: new Set(), installed: false, exit: undefined, signals: [] });
29
+ function releaseAllSync() {
30
+ for (const release of [...hooks.releasers]) {
31
+ try {
32
+ release();
33
+ }
34
+ catch { /* the next acquirer reclaims it */ }
35
+ }
36
+ }
37
+ function syncHookRefresh() {
38
+ if (hooks.releasers.size && !hooks.installed) {
39
+ hooks.installed = true;
40
+ hooks.exit = () => releaseAllSync();
41
+ process.on('exit', hooks.exit);
42
+ for (const sig of ['SIGINT', 'SIGTERM', 'SIGHUP']) {
43
+ const handler = () => {
44
+ if (process.listenerCount(sig) > 1)
45
+ return;
46
+ releaseAllSync();
47
+ process.removeListener(sig, handler);
48
+ process.kill(process.pid, sig);
49
+ };
50
+ hooks.signals.push([sig, handler]);
51
+ process.on(sig, handler);
52
+ }
53
+ }
54
+ else if (!hooks.releasers.size && hooks.installed) {
55
+ hooks.installed = false;
56
+ process.removeListener('exit', hooks.exit);
57
+ for (const [sig, handler] of hooks.signals)
58
+ process.removeListener(sig, handler);
59
+ hooks.signals = [];
60
+ }
61
+ }
62
+ function sleepSync(ms) { Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms); }
24
63
  function hostBrowserCap(env = process.env, platform = process.platform) {
25
64
  const v = env.HELIX_HEADLESS_MAX;
26
65
  if (v !== undefined) {
@@ -56,10 +95,65 @@ function pidAlive(pid) {
56
95
  return e.code === 'ESRCH' ? false : 'unknown';
57
96
  }
58
97
  }
59
- // Only a RESERVED v2 lease can be reclaimed: once launch begins, an owner may die
60
- // while Chromium survives. Playwright exposes no portable child PID, so keep that
61
- // receipt until confirmed browser close, even when its Node owner is dead/reused.
62
- function slotIsStale(file, alive = pidAlive, birth = startStamp) {
98
+ // ps snapshot: pid, ppid, birth stamp and full command line of every process, or null when unreadable.
99
+ function listProcesses() {
100
+ try {
101
+ const out = (0, node_child_process_1.execFileSync)('ps', ['-axo', 'pid=,ppid=,lstart=,command='], { encoding: 'utf8', maxBuffer: 256 << 20, stdio: ['ignore', 'pipe', 'ignore'] });
102
+ const procs = [];
103
+ for (const line of out.split('\n')) {
104
+ const m = /^\s*(\d+)\s+(\d+)\s+(\w{3} \w{3}\s+\d+ \d\d:\d\d:\d\d \d{4})\s+(.*)$/.exec(line);
105
+ if (m)
106
+ procs.push({ pid: Number(m[1]), ppid: Number(m[2]), start: m[3], command: m[4] });
107
+ }
108
+ return procs.length ? procs : null;
109
+ }
110
+ catch {
111
+ return null;
112
+ }
113
+ }
114
+ function hasUserDataDir(command, dir) {
115
+ const flag = `--user-data-dir=${dir}`;
116
+ for (let at = command.indexOf(flag); at >= 0; at = command.indexOf(flag, at + 1)) {
117
+ const next = command[at + flag.length];
118
+ if (next === undefined || next === ' ' || next === '/')
119
+ return true;
120
+ }
121
+ return false;
122
+ }
123
+ /**
124
+ * Could a browser launched under this (dead) owner's receipt still be running?
125
+ * A persistent launch records its profile as `identity`: any process holding that --user-data-dir
126
+ * is the browser. Otherwise (Playwright's own temp profile) fall back to the only thing a dead
127
+ * Playwright owner can leave behind: an orphaned (ppid 1) pipe-driven Chromium main process born
128
+ * after the owner. Anything unmeasurable answers 'unknown', which keeps the lease.
129
+ */
130
+ function browserMayStillRun(owner, procs = listProcesses()) {
131
+ if (!procs)
132
+ return 'unknown';
133
+ const id = typeof owner.identity === 'string' ? owner.identity : '';
134
+ if (node_path_1.default.isAbsolute(id)) {
135
+ const dirs = new Set([id]);
136
+ try {
137
+ dirs.add(node_fs_1.default.realpathSync(id));
138
+ }
139
+ catch { /* profile already removed */ }
140
+ for (const d of [...dirs])
141
+ dirs.add(d.startsWith('/private/') ? d.slice('/private'.length) : `/private${d}`);
142
+ return procs.some((p) => [...dirs].some((d) => hasUserDataDir(p.command, d)));
143
+ }
144
+ const born = Date.parse(owner.start);
145
+ return procs.some((p) => {
146
+ if (p.ppid !== 1 || !p.command.includes('--remote-debugging-pipe') || p.command.includes(' --type='))
147
+ return false;
148
+ const t = Date.parse(p.start);
149
+ return !Number.isFinite(born) || !Number.isFinite(t) || t >= born - 1000;
150
+ });
151
+ }
152
+ // A RESERVED lease is stale as soon as its owner is dead or its pid was reused. A LAUNCHING lease
153
+ // is stale only when, in addition, no browser it could have started is still running: a Node
154
+ // owner that dies mid-launch (SIGKILL, crash, harness timeout) takes its pipe-driven Chromium down
155
+ // with it, and before this check that left the slot held forever by a dead pid and no browser.
156
+ function slotIsStale(file, alive = pidAlive, birth = startStamp, browser = browserMayStillRun) {
63
157
  let raw;
64
158
  try {
65
159
  raw = node_fs_1.default.readFileSync(file, 'utf8');
@@ -74,15 +168,19 @@ function slotIsStale(file, alive = pidAlive, birth = startStamp) {
74
168
  catch {
75
169
  return { stale: false, raw };
76
170
  }
77
- if (!owner || typeof owner !== 'object' || owner.protocol !== 2 || owner.state !== 'reserved' || typeof owner.nonce !== 'string' || !owner.nonce || !Number.isSafeInteger(owner.pid) || owner.pid <= 0 || typeof owner.start !== 'string' || !owner.start)
171
+ if (!owner || typeof owner !== 'object' || owner.protocol !== 2 || (owner.state !== 'reserved' && owner.state !== 'launching') || typeof owner.nonce !== 'string' || !owner.nonce || !Number.isSafeInteger(owner.pid) || owner.pid <= 0 || typeof owner.start !== 'string' || !owner.start)
78
172
  return { stale: false, raw };
79
173
  const state = alive(owner.pid);
80
- if (state === false)
81
- return { stale: true, raw };
82
174
  if (state === 'unknown')
83
175
  return { stale: false, raw };
84
- const now = birth(owner.pid);
85
- return { stale: !!now && owner.start !== now, raw };
176
+ if (state !== false) {
177
+ const now = birth(owner.pid);
178
+ if (!now || owner.start === now)
179
+ return { stale: false, raw };
180
+ }
181
+ if (owner.state === 'launching' && browser(owner) !== false)
182
+ return { stale: false, raw };
183
+ return { stale: true, raw };
86
184
  }
87
185
  function aborted(signal) {
88
186
  if (signal?.aborted)
@@ -183,7 +281,7 @@ async function acquireHostBrowserSlot(options = {}) {
183
281
  if (changed.acquired) {
184
282
  if (remove) {
185
283
  released = true;
186
- held.delete(nonce);
284
+ forget();
187
285
  }
188
286
  return;
189
287
  }
@@ -192,12 +290,37 @@ async function acquireHostBrowserSlot(options = {}) {
192
290
  await delay(20);
193
291
  }
194
292
  };
293
+ const forget = () => { held.delete(nonce); hooks.releasers.delete(releaseSync); syncHookRefresh(); };
294
+ // Synchronous best-effort release for process exit; leaves the receipt if the mutex stays busy.
295
+ const releaseSync = () => {
296
+ if (released)
297
+ return;
298
+ for (const until = Date.now() + 500; Date.now() < until; sleepSync(10)) {
299
+ const changed = underMutex(container, () => {
300
+ let current;
301
+ try {
302
+ current = JSON.parse(node_fs_1.default.readFileSync(file, 'utf8'));
303
+ }
304
+ catch {
305
+ return;
306
+ }
307
+ if (current?.nonce === nonce && current.pid === receipt.pid && current.start === receipt.start)
308
+ node_fs_1.default.unlinkSync(file);
309
+ });
310
+ if (changed.acquired) {
311
+ released = true;
312
+ return;
313
+ }
314
+ }
315
+ };
195
316
  const lease = {
196
317
  file, nonce,
197
318
  beginLaunch: async () => { aborted(options.signal); await mutate(false); aborted(options.signal); },
198
319
  release: () => mutate(true),
199
320
  };
200
321
  held.set(nonce, lease);
322
+ hooks.releasers.add(releaseSync);
323
+ syncHookRefresh();
201
324
  if (options.signal?.aborted) {
202
325
  await lease.release();
203
326
  aborted(options.signal);
@@ -234,7 +357,8 @@ async function launchWithBrowserSlot(launch, event, options = {}) {
234
357
  browser = await launch();
235
358
  }
236
359
  catch (e) {
237
- await lease.release();
360
+ // A failed release must not mask the launch error; the exit hook / stale reclaim covers it.
361
+ await lease.release().catch(() => undefined);
238
362
  throw e;
239
363
  }
240
364
  bindBrowserLease(browser, lease, event);
@@ -1 +1 @@
1
- {"version":3,"file":"hostSlots.js","sourceRoot":"","sources":["../../src/browser/hostSlots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hostSlots.js","sourceRoot":"","sources":["../../src/browser/hostSlots.ts"],"names":[],"mappings":"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"}