@helix3/helix-cli 0.1.18-helix3.349 → 0.1.18-helix3.350

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.
@@ -57,6 +57,8 @@ exports.bakeLighting = bakeLighting;
57
57
  const node_fs_1 = require("node:fs");
58
58
  const node_path_1 = require("node:path");
59
59
  const helix_manifest_1 = require("@hypersoniclabs/helix-manifest");
60
+ const hostSlots_1 = require("./browser/hostSlots");
61
+ const nonSystemChrome_1 = require("./browser/nonSystemChrome");
60
62
  const launch_1 = require("./browser/launch");
61
63
  const staticServe_1 = require("./screenshot/staticServe");
62
64
  const visualsConfig_1 = require("./visualsConfig");
@@ -326,13 +328,15 @@ async function bakeLighting(opts) {
326
328
  const attempts = [];
327
329
  for (const candidate of opts.gpu ? (0, launch_1.gpuBrowserCandidates)() : (0, launch_1.browserCandidates)()) {
328
330
  try {
329
- browser = await playwright.chromium.launch(candidate.launchOptions);
330
- onProgress(` using ${candidate.label}${opts.gpu ? ' (GPU)' : ''}`);
331
- break;
331
+ (0, nonSystemChrome_1.assertNotSystemChrome)(candidate.launchOptions.executablePath, candidate.launchOptions.channel);
332
+ browser = await (0, hostSlots_1.launchWithBrowserSlot)(() => playwright.chromium.launch(candidate.launchOptions), 'disconnected', { identity: `lighting-bake:${opts.directory}` });
332
333
  }
333
334
  catch (err) {
334
335
  attempts.push({ key: candidate.key, label: candidate.label, message: err instanceof Error ? err.message : String(err) });
336
+ continue;
335
337
  }
338
+ onProgress(` using ${candidate.label}${opts.gpu ? ' (GPU)' : ''}`);
339
+ break;
336
340
  }
337
341
  if (!browser)
338
342
  throw new Error((0, launch_1.composeLaunchFailure)(attempts));
@@ -437,8 +441,12 @@ async function bakeLighting(opts) {
437
441
  };
438
442
  }
439
443
  finally {
440
- await browser?.close();
441
- await server.close();
444
+ try {
445
+ await browser?.close();
446
+ }
447
+ finally {
448
+ await server.close();
449
+ }
442
450
  }
443
451
  }
444
452
  //# sourceMappingURL=bakeLighting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bakeLighting.js","sourceRoot":"","sources":["../src/bakeLighting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bakeLighting.js","sourceRoot":"","sources":["../src/bakeLighting.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,31 @@
1
+ export interface BrowserLease {
2
+ file?: string;
3
+ nonce: string;
4
+ beginLaunch(): Promise<void>;
5
+ release(): Promise<void>;
6
+ }
1
7
  export declare function hostBrowserCap(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): number;
2
- /** Pure-ish: is this slot file's owner gone? `raw` is returned so the caller can confirm the file did not change before reclaiming. */
3
- export declare function slotIsStale(file: string, alive?: (pid: number) => boolean | 'unknown'): {
8
+ export declare function slotIsStale(file: string, alive?: (pid: number) => boolean | 'unknown', birth?: (pid: number) => string): {
4
9
  stale: boolean;
5
10
  raw: string | null;
6
11
  };
7
- /** Take this process's browser slot (idempotent) and wait while the host is at its cap. Resolves to the slot file, or undefined when uncapped. */
8
- export declare function acquireHostBrowserSlot(): Promise<string | undefined>;
9
- export declare function releaseHostBrowserSlot(): void;
12
+ /** One unique lease per actual launch; callers must beginLaunch immediately before launching. */
13
+ export declare function acquireHostBrowserSlot(options?: {
14
+ signal?: AbortSignal;
15
+ identity?: string;
16
+ }): Promise<BrowserLease>;
17
+ /** Explicit lease only; there is no process-wide release that could free live browsers. */
18
+ export declare function releaseHostBrowserSlot(lease: BrowserLease): Promise<void>;
19
+ interface ManagedBrowser {
20
+ close(...args: any[]): Promise<void>;
21
+ once?(event: any, listener: () => void): unknown;
22
+ }
23
+ /** Bind admission to actual teardown. A rejected close keeps the lease unless an
24
+ * independent close/disconnected event confirms the browser is gone. */
25
+ export declare function bindBrowserLease<T extends ManagedBrowser>(browser: T, lease: BrowserLease, event: 'close' | 'disconnected'): T;
26
+ /** A launch rejection means Playwright completed its failed-launch cleanup. */
27
+ export declare function launchWithBrowserSlot<T extends ManagedBrowser>(launch: () => Promise<T>, event: 'close' | 'disconnected', options?: {
28
+ signal?: AbortSignal;
29
+ identity?: string;
30
+ }): Promise<T>;
31
+ export {};
@@ -7,27 +7,35 @@ exports.hostBrowserCap = hostBrowserCap;
7
7
  exports.slotIsStale = slotIsStale;
8
8
  exports.acquireHostBrowserSlot = acquireHostBrowserSlot;
9
9
  exports.releaseHostBrowserSlot = releaseHostBrowserSlot;
10
- // Host-wide cap on concurrent automated browsers. 8-16 headless QA Chromes at once cost ~5 cores and up to 22 GB on the
11
- // Mac (docs/compute-offload-model.md in the HELIX workspace), and a single `helix item visual-qa` fan-out started four.
12
- // Every PROCESS that opens a browser takes ONE slot for its whole life (released at exit), so a run that opens several
13
- // browsers can never deadlock against itself. Slots are files in ~/.cache/helix-headless-slots/ — the same protocol as the
14
- // workspace's scripts/lib/headless-browser.mjs, so scripts and this CLI share one budget. A slot whose owner pid is dead (or
15
- // was reused: start time differs) is reclaimed; nothing is ever signalled.
16
- // HELIX_HEADLESS_MAX=<n> cap (default 4 on macOS; unlimited elsewhere and when CI is set; 0 = off)
17
- // HELIX_HEADLESS_WAIT_MS=<ms> give up waiting after this long (default 30 min) and throw
18
- // HELIX_HEADLESS_SLOT_DIR=<dir> override the slot directory (tests)
10
+ exports.bindBrowserLease = bindBrowserLease;
11
+ exports.launchWithBrowserSlot = launchWithBrowserSlot;
12
+ // Per-browser admission protocol v2; kept identical to workspace headless-browser.mjs.
13
+ // slot-N is a permanent directory. Old process-slot clients see it occupied and fail
14
+ // closed. Legacy slot FILES are never reclaimed by v2. See architecture change journal.
15
+ // All mutations of lease.json occur under atomic mkdir(mutex). We NEVER reclaim a
16
+ // mutex: a crash in a critical section sacrifices capacity, rather than risking CAS
17
+ // races or deleting a new owner's receipt. No owner or browser is ever signalled.
19
18
  const node_child_process_1 = require("node:child_process");
19
+ const node_crypto_1 = require("node:crypto");
20
20
  const node_fs_1 = __importDefault(require("node:fs"));
21
21
  const node_os_1 = __importDefault(require("node:os"));
22
22
  const node_path_1 = __importDefault(require("node:path"));
23
- let held;
23
+ const held = new Map();
24
24
  function hostBrowserCap(env = process.env, platform = process.platform) {
25
25
  const v = env.HELIX_HEADLESS_MAX;
26
- if (v !== undefined && v !== '') {
27
- const n = Number(v);
28
- return Number.isFinite(n) && n > 0 ? Math.floor(n) : 0;
26
+ if (v !== undefined) {
27
+ if (!/^\d+$/.test(v) || !Number.isSafeInteger(Number(v)))
28
+ throw new Error('HELIX_HEADLESS_MAX must be a non-negative whole number (0 explicitly disables admission)');
29
+ return Number(v);
29
30
  }
30
- return platform !== 'darwin' || env.CI ? 0 : 4;
31
+ // CI (including CI=false) never removes the Mac's local budget.
32
+ return platform === 'darwin' ? 4 : 0;
33
+ }
34
+ function waitBudget() {
35
+ const v = process.env.HELIX_HEADLESS_WAIT_MS ?? String(30 * 60_000);
36
+ if (!/^\d+$/.test(v) || !Number.isSafeInteger(Number(v)))
37
+ throw new Error('HELIX_HEADLESS_WAIT_MS must be a non-negative whole number');
38
+ return Number(v);
31
39
  }
32
40
  function startStamp(pid) {
33
41
  try {
@@ -37,8 +45,21 @@ function startStamp(pid) {
37
45
  return '';
38
46
  }
39
47
  }
40
- /** Pure-ish: is this slot file's owner gone? `raw` is returned so the caller can confirm the file did not change before reclaiming. */
41
- function slotIsStale(file, alive = pidAlive) {
48
+ function pidAlive(pid) {
49
+ if (!Number.isInteger(pid) || pid <= 0)
50
+ return 'unknown';
51
+ try {
52
+ process.kill(pid, 0);
53
+ return true;
54
+ }
55
+ catch (e) {
56
+ return e.code === 'ESRCH' ? false : 'unknown';
57
+ }
58
+ }
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) {
42
63
  let raw;
43
64
  try {
44
65
  raw = node_fs_1.default.readFileSync(file, 'utf8');
@@ -51,95 +72,176 @@ function slotIsStale(file, alive = pidAlive) {
51
72
  owner = JSON.parse(raw);
52
73
  }
53
74
  catch {
54
- owner = null;
55
- }
56
- if (!owner || !Number.isInteger(owner.pid)) {
57
- try {
58
- return { stale: Date.now() - node_fs_1.default.statSync(file).mtimeMs > 5000, raw };
59
- }
60
- catch {
61
- return { stale: false, raw };
62
- }
75
+ return { stale: false, raw };
63
76
  }
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)
78
+ return { stale: false, raw };
64
79
  const state = alive(owner.pid);
65
80
  if (state === false)
66
81
  return { stale: true, raw };
67
82
  if (state === 'unknown')
68
83
  return { stale: false, raw };
69
- const now = startStamp(owner.pid);
70
- return { stale: !!owner.start && !!now && owner.start !== now, raw };
84
+ const now = birth(owner.pid);
85
+ return { stale: !!now && owner.start !== now, raw };
71
86
  }
72
- function pidAlive(pid) {
87
+ function aborted(signal) {
88
+ if (signal?.aborted)
89
+ throw new Error('Browser admission aborted');
90
+ }
91
+ function delay(ms, signal) {
92
+ return new Promise((resolve, reject) => {
93
+ aborted(signal);
94
+ const done = () => { signal?.removeEventListener('abort', cancel); resolve(); };
95
+ const timer = setTimeout(done, ms);
96
+ const cancel = () => { clearTimeout(timer); signal?.removeEventListener('abort', cancel); reject(new Error('Browser admission aborted')); };
97
+ signal?.addEventListener('abort', cancel, { once: true });
98
+ });
99
+ }
100
+ function underMutex(container, action) {
101
+ const mutex = node_path_1.default.join(container, 'mutex');
73
102
  try {
74
- process.kill(pid, 0);
75
- return true;
103
+ node_fs_1.default.mkdirSync(mutex);
76
104
  }
77
105
  catch (e) {
78
- return e.code === 'ESRCH' ? false : 'unknown';
106
+ if (['EEXIST', 'ENOTDIR', 'ENOENT'].includes(e.code ?? ''))
107
+ return { acquired: false };
108
+ throw e;
109
+ }
110
+ try {
111
+ return { acquired: true, value: action() };
112
+ }
113
+ finally {
114
+ node_fs_1.default.rmdirSync(mutex);
79
115
  }
80
116
  }
81
- /** Take this process's browser slot (idempotent) and wait while the host is at its cap. Resolves to the slot file, or undefined when uncapped. */
82
- async function acquireHostBrowserSlot() {
83
- if (held)
84
- return held;
117
+ /** One unique lease per actual launch; callers must beginLaunch immediately before launching. */
118
+ async function acquireHostBrowserSlot(options = {}) {
85
119
  const cap = hostBrowserCap();
120
+ const waitMs = waitBudget();
121
+ aborted(options.signal);
122
+ const nonce = (0, node_crypto_1.randomUUID)();
86
123
  if (!cap)
87
- return undefined;
124
+ return { nonce, beginLaunch: async () => { aborted(options.signal); }, release: async () => undefined };
88
125
  const dir = process.env.HELIX_HEADLESS_SLOT_DIR ?? node_path_1.default.join(node_os_1.default.homedir(), '.cache/helix-headless-slots');
89
126
  node_fs_1.default.mkdirSync(dir, { recursive: true });
90
- const me = JSON.stringify({ pid: process.pid, start: startStamp(process.pid), script: process.argv[1] ?? null, at: new Date().toISOString() });
91
- const waitMs = Number(process.env.HELIX_HEADLESS_WAIT_MS ?? 30 * 60_000);
127
+ const receipt = { protocol: 2, nonce, pid: process.pid, start: startStamp(process.pid), state: 'reserved', at: new Date().toISOString(), identity: options.identity };
92
128
  const began = Date.now();
93
- let lastNote = 0;
94
129
  for (;;) {
95
- const retries = {};
130
+ aborted(options.signal);
131
+ let sameProcessHolder = false;
96
132
  for (let k = 0; k < cap; k++) {
97
- const file = node_path_1.default.join(dir, `slot-${k}`);
133
+ const container = node_path_1.default.join(dir, `slot-${k}`);
98
134
  try {
99
- node_fs_1.default.writeFileSync(file, me, { flag: 'wx' });
100
- held = file;
101
- process.once('exit', releaseHostBrowserSlot);
102
- return file;
135
+ node_fs_1.default.mkdirSync(container);
103
136
  }
104
137
  catch (e) {
105
138
  if (e.code !== 'EEXIST')
106
139
  throw e;
107
140
  }
108
- const { stale, raw } = slotIsStale(file);
109
- retries[k] = (retries[k] ?? 0) + 1;
110
- if (stale && retries[k] <= 5) {
111
- const tomb = `${file}.reclaimed-${process.pid}-${Date.now()}`;
112
- try {
113
- if (node_fs_1.default.readFileSync(file, 'utf8') === raw)
114
- node_fs_1.default.renameSync(file, tomb);
115
- node_fs_1.default.rmSync(tomb, { force: true });
141
+ const file = node_path_1.default.join(container, 'lease.json');
142
+ const claim = underMutex(container, () => {
143
+ if (node_fs_1.default.existsSync(file)) {
144
+ // CLI and workspace modules have independent in-memory maps. Read the
145
+ // common receipt under this mutex so mixed APIs cannot wait on self.
146
+ try {
147
+ const owner = JSON.parse(node_fs_1.default.readFileSync(file, 'utf8'));
148
+ if (owner?.protocol === 2 && owner.pid === receipt.pid &&
149
+ (owner.state === 'reserved' || owner.state === 'launching') &&
150
+ (!owner.start || !receipt.start || owner.start === receipt.start))
151
+ sameProcessHolder = true;
152
+ }
153
+ catch { /* corrupt ownership stays occupied */ }
154
+ if (!slotIsStale(file).stale)
155
+ return false;
156
+ node_fs_1.default.unlinkSync(file); // read and remove under the SAME mutex, never read+rename CAS
116
157
  }
117
- catch { /* another reclaimer won */ }
118
- k -= 1;
158
+ node_fs_1.default.writeFileSync(file, JSON.stringify(receipt), { flag: 'wx' });
159
+ return true;
160
+ });
161
+ if (!claim.value)
162
+ continue;
163
+ let released = false;
164
+ const mutate = async (remove) => {
165
+ if (released) {
166
+ if (!remove)
167
+ throw new Error('Browser lease was already released');
168
+ return;
169
+ }
170
+ const deadline = Date.now() + 2000;
171
+ for (;;) {
172
+ const changed = underMutex(container, () => {
173
+ const current = JSON.parse(node_fs_1.default.readFileSync(file, 'utf8'));
174
+ if (current?.nonce !== nonce || current.pid !== receipt.pid || current.start !== receipt.start)
175
+ throw new Error('Browser lease ownership changed; refusing mutation');
176
+ if (remove)
177
+ node_fs_1.default.unlinkSync(file);
178
+ else {
179
+ receipt.state = 'launching';
180
+ node_fs_1.default.writeFileSync(file, JSON.stringify(receipt));
181
+ }
182
+ });
183
+ if (changed.acquired) {
184
+ if (remove) {
185
+ released = true;
186
+ held.delete(nonce);
187
+ }
188
+ return;
189
+ }
190
+ if (Date.now() >= deadline)
191
+ throw new Error(`Browser lease mutex unavailable; retained ${file}`);
192
+ await delay(20);
193
+ }
194
+ };
195
+ const lease = {
196
+ file, nonce,
197
+ beginLaunch: async () => { aborted(options.signal); await mutate(false); aborted(options.signal); },
198
+ release: () => mutate(true),
199
+ };
200
+ held.set(nonce, lease);
201
+ if (options.signal?.aborted) {
202
+ await lease.release();
203
+ aborted(options.signal);
119
204
  }
205
+ return lease;
120
206
  }
121
- for (const f of node_fs_1.default.readdirSync(dir))
122
- if (f.includes('.reclaimed-'))
123
- node_fs_1.default.rmSync(node_path_1.default.join(dir, f), { force: true });
124
- if (Date.now() - began > waitMs)
125
- throw new Error(`No browser slot free after ${Math.round(waitMs / 1000)}s (host cap ${cap} in ${dir}). Other QA runs hold them; wait, or raise HELIX_HEADLESS_MAX.`);
126
- if (Date.now() - lastNote > 30_000) {
127
- lastNote = Date.now();
128
- console.error(`[visual-qa] waiting for a browser slot: host cap is ${cap} concurrent automated browsers (HELIX_HEADLESS_MAX overrides)`);
129
- }
130
- await new Promise((r) => setTimeout(r, 500));
207
+ // Fail promptly if this process already owns browsers. Waiting here may deadlock
208
+ // a Promise.all fanout whose cleanup cannot run until every launch resolves.
209
+ if (sameProcessHolder || [...held.values()].some((lease) => lease.file?.startsWith(`${dir}${node_path_1.default.sep}`)))
210
+ throw new Error(`Browser capacity exhausted while this process holds leases (cap ${cap}); serialize browser fanout and close each browser before launching another`);
211
+ if (Date.now() - began >= waitMs)
212
+ throw new Error(`No browser slot free after ${waitMs}ms (host cap ${cap} in ${dir}); legacy receipts or interrupted mutexes require a quiescent migration`);
213
+ await delay(Math.min(100, waitMs - (Date.now() - began)), options.signal);
131
214
  }
132
215
  }
133
- function releaseHostBrowserSlot() {
134
- if (!held)
135
- return;
136
- const file = held;
137
- held = undefined;
216
+ /** Explicit lease only; there is no process-wide release that could free live browsers. */
217
+ async function releaseHostBrowserSlot(lease) { await lease.release(); }
218
+ /** Bind admission to actual teardown. A rejected close keeps the lease unless an
219
+ * independent close/disconnected event confirms the browser is gone. */
220
+ function bindBrowserLease(browser, lease, event) {
221
+ let releasePromise;
222
+ const release = () => releasePromise ??= lease.release().catch((e) => { releasePromise = undefined; throw e; });
223
+ browser.once?.(event, () => { void release().catch((e) => console.error('Browser lease retained after teardown:', e)); });
224
+ const close = browser.close.bind(browser);
225
+ browser.close = async (...args) => { await close(...args); await release(); };
226
+ return browser;
227
+ }
228
+ /** A launch rejection means Playwright completed its failed-launch cleanup. */
229
+ async function launchWithBrowserSlot(launch, event, options = {}) {
230
+ const lease = await acquireHostBrowserSlot(options);
231
+ let browser;
138
232
  try {
139
- const owner = JSON.parse(node_fs_1.default.readFileSync(file, 'utf8'));
140
- if (owner.pid === process.pid)
141
- node_fs_1.default.rmSync(file, { force: true });
233
+ await lease.beginLaunch();
234
+ browser = await launch();
235
+ }
236
+ catch (e) {
237
+ await lease.release();
238
+ throw e;
239
+ }
240
+ bindBrowserLease(browser, lease, event);
241
+ if (options.signal?.aborted) {
242
+ await browser.close();
243
+ throw new Error('Browser launch aborted');
142
244
  }
143
- catch { /* already gone */ }
245
+ return browser;
144
246
  }
145
247
  //# sourceMappingURL=hostSlots.js.map
@@ -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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"}
@@ -23,7 +23,17 @@ function assertNotSystemChrome(executablePath, channel, platform = process.platf
23
23
  if (channel && /^chrome/i.test(channel)) {
24
24
  throw new Error(`Refusing Playwright channel '${channel}': it launches the system Google Chrome and hijacks the Dock Chrome. Use Playwright's Chromium (npx playwright install chromium).`);
25
25
  }
26
- if (executablePath && SYSTEM_CHROME_MARKERS.some((m) => executablePath.includes(m))) {
26
+ const paths = executablePath ? [node_path_1.default.resolve(executablePath)] : [];
27
+ if (executablePath) {
28
+ try {
29
+ paths.push(node_fs_1.default.realpathSync(executablePath));
30
+ }
31
+ catch (e) {
32
+ if (!['ENOENT', 'ENOTDIR'].includes(e.code ?? ''))
33
+ throw e;
34
+ }
35
+ }
36
+ if (executablePath && paths.some((p) => SYSTEM_CHROME_MARKERS.some((m) => p.toLowerCase().includes(m.toLowerCase())))) {
27
37
  throw new Error(`Refusing to automate ${executablePath}: never launch /Applications/Google Chrome.app for automation. Use Playwright's Chromium / Chrome for Testing (npx playwright install chromium).`);
28
38
  }
29
39
  }
@@ -72,8 +82,10 @@ function resolveAutomationChromium(opts = {}) {
72
82
  return opts.playwrightDefault;
73
83
  }
74
84
  const cached = findCachedAutomationChromium(opts.home, env);
75
- if (cached)
85
+ if (cached) {
86
+ assertNotSystemChrome(cached, undefined, platform);
76
87
  return cached;
88
+ }
77
89
  throw new Error('No Playwright Chromium / Chrome for Testing found. Run `npx playwright install chromium` (the system Google Chrome is never used for automation on macOS).');
78
90
  }
79
91
  //# sourceMappingURL=nonSystemChrome.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nonSystemChrome.js","sourceRoot":"","sources":["../../src/browser/nonSystemChrome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nonSystemChrome.js","sourceRoot":"","sources":["../../src/browser/nonSystemChrome.ts"],"names":[],"mappings":"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"}