agent-browser-stealth 0.16.3-fork.3 → 0.16.3-fork.4
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.
- package/README.md +5 -0
- package/bin/agent-browser-darwin-arm64 +0 -0
- package/bin/agent-browser-darwin-x64 +0 -0
- package/bin/agent-browser-linux-arm64 +0 -0
- package/bin/agent-browser-linux-x64 +0 -0
- package/bin/agent-browser-win32-x64.exe +0 -0
- package/dist/daemon.d.ts +10 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +327 -242
- package/dist/daemon.js.map +1 -1
- package/package.json +1 -1
- package/skills/agent-browser/SKILL.md +2 -0
package/README.md
CHANGED
|
@@ -63,6 +63,10 @@ agent-browser --parallel worker-b open https://example.org
|
|
|
63
63
|
|
|
64
64
|
`--parallel` is designed for stateless throughput tasks (navigation, extraction, checks). For authenticated flows, keep using one stable `--session-name`.
|
|
65
65
|
|
|
66
|
+
Default session isolation policy:
|
|
67
|
+
- Running a default-session command reaps all non-default daemon sessions (`parallel-*` and legacy named channels).
|
|
68
|
+
- This avoids stale daemon reuse and keeps stealth behavior consistent on the primary channel.
|
|
69
|
+
|
|
66
70
|
| Option | Purpose | Typical Usage |
|
|
67
71
|
| --- | --- | --- |
|
|
68
72
|
| `--parallel <name>` | Isolate runtime channel for concurrent AI tasks | Stateless/no-login parallel jobs |
|
|
@@ -261,6 +265,7 @@ flowchart TD
|
|
|
261
265
|
- Prefer `--headed` for high-friction targets.
|
|
262
266
|
- Reuse session state with one stable `--session-name` for continuity (when omitted, it defaults to `default`).
|
|
263
267
|
- Use `--parallel <name>` only for stateless parallel workloads where higher throughput matters.
|
|
268
|
+
- Default-session commands will reap all non-default daemon sessions, so keep parallel workers short-lived.
|
|
264
269
|
- Use `--resident` only for deliberate long-running workflows, and close when done.
|
|
265
270
|
- Keep locale/timezone consistent with target market.
|
|
266
271
|
- For challenge-heavy pages, prefer `--wait-until domcontentloaded` on `open`/`navigate` to avoid `load` stalls.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/daemon.d.ts
CHANGED
|
@@ -5,6 +5,11 @@ import * as net from 'net';
|
|
|
5
5
|
* waits for the 'drain' event before resolving.
|
|
6
6
|
*/
|
|
7
7
|
export declare function safeWrite(socket: net.Socket, payload: string): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Create an async executor that runs tasks strictly one-by-one.
|
|
10
|
+
* Used to serialize daemon commands across all client connections.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createSerializedExecutor(): <T>(task: () => Promise<T>) => Promise<T>;
|
|
8
13
|
/**
|
|
9
14
|
* Set the current session
|
|
10
15
|
*/
|
|
@@ -31,6 +36,10 @@ export declare function getPortFile(session?: string): string;
|
|
|
31
36
|
* Get the PID file path for the current session
|
|
32
37
|
*/
|
|
33
38
|
export declare function getPidFile(session?: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Get the daemon metadata file path for a session.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getMetaFile(session?: string): string;
|
|
34
43
|
/**
|
|
35
44
|
* Check if daemon is running for the current session
|
|
36
45
|
*/
|
|
@@ -62,5 +71,6 @@ export declare function getStreamPortFile(session?: string): string;
|
|
|
62
71
|
export declare function startDaemon(options?: {
|
|
63
72
|
streamPort?: number;
|
|
64
73
|
provider?: string;
|
|
74
|
+
resident?: boolean;
|
|
65
75
|
}): Promise<void>;
|
|
66
76
|
//# sourceMappingURL=daemon.d.ts.map
|
package/dist/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAuB3B;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC5E;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAuB3B;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC5E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAWpF;AA6GD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAgBD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAclC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAMrC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAmBzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAMhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmiBhB"}
|
package/dist/daemon.js
CHANGED
|
@@ -51,6 +51,18 @@ export function safeWrite(socket, payload) {
|
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Create an async executor that runs tasks strictly one-by-one.
|
|
56
|
+
* Used to serialize daemon commands across all client connections.
|
|
57
|
+
*/
|
|
58
|
+
export function createSerializedExecutor() {
|
|
59
|
+
let tail = Promise.resolve();
|
|
60
|
+
return async function runSerialized(task) {
|
|
61
|
+
const run = tail.then(task, task);
|
|
62
|
+
tail = run.then(() => undefined, () => undefined);
|
|
63
|
+
return run;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
54
66
|
// Platform detection
|
|
55
67
|
const isWindows = process.platform === 'win32';
|
|
56
68
|
// Session support - each session gets its own socket/pid
|
|
@@ -59,6 +71,8 @@ let currentSession = process.env.AGENT_BROWSER_SESSION || 'default';
|
|
|
59
71
|
let streamServer = null;
|
|
60
72
|
// Default stream port (can be overridden with AGENT_BROWSER_STREAM_PORT)
|
|
61
73
|
const DEFAULT_STREAM_PORT = 9223;
|
|
74
|
+
// Default idle auto-shutdown timeout: 10 minutes
|
|
75
|
+
const DEFAULT_IDLE_SHUTDOWN_MS = 10 * 60 * 1000;
|
|
62
76
|
/**
|
|
63
77
|
* Save state to file with optional encryption.
|
|
64
78
|
*/
|
|
@@ -212,6 +226,13 @@ export function getPidFile(session) {
|
|
|
212
226
|
const sess = session ?? currentSession;
|
|
213
227
|
return path.join(getSocketDir(), `${sess}.pid`);
|
|
214
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Get the daemon metadata file path for a session.
|
|
231
|
+
*/
|
|
232
|
+
export function getMetaFile(session) {
|
|
233
|
+
const sess = session ?? currentSession;
|
|
234
|
+
return path.join(getSocketDir(), `${sess}.meta.json`);
|
|
235
|
+
}
|
|
215
236
|
/**
|
|
216
237
|
* Check if daemon is running for the current session
|
|
217
238
|
*/
|
|
@@ -253,11 +274,14 @@ export function getConnectionInfo(session) {
|
|
|
253
274
|
export function cleanupSocket(session) {
|
|
254
275
|
const pidFile = getPidFile(session);
|
|
255
276
|
const streamPortFile = getStreamPortFile(session);
|
|
277
|
+
const metaFile = getMetaFile(session);
|
|
256
278
|
try {
|
|
257
279
|
if (fs.existsSync(pidFile))
|
|
258
280
|
fs.unlinkSync(pidFile);
|
|
259
281
|
if (fs.existsSync(streamPortFile))
|
|
260
282
|
fs.unlinkSync(streamPortFile);
|
|
283
|
+
if (fs.existsSync(metaFile))
|
|
284
|
+
fs.unlinkSync(metaFile);
|
|
261
285
|
if (isWindows) {
|
|
262
286
|
const portFile = getPortFile(session);
|
|
263
287
|
if (fs.existsSync(portFile))
|
|
@@ -301,6 +325,10 @@ export async function startDaemon(options) {
|
|
|
301
325
|
// Create appropriate manager
|
|
302
326
|
const manager = isIOS ? new IOSManager() : new BrowserManager();
|
|
303
327
|
let shuttingDown = false;
|
|
328
|
+
const runSerialized = createSerializedExecutor();
|
|
329
|
+
const residentMode = options?.resident ?? process.argv.includes('--resident');
|
|
330
|
+
let idleTimer = null;
|
|
331
|
+
let pendingCommands = 0;
|
|
304
332
|
// Start stream server if port is specified (or use default if env var is set)
|
|
305
333
|
// Note: Stream server only works with BrowserManager (desktop), not iOS
|
|
306
334
|
const streamPort = options?.streamPort ??
|
|
@@ -314,6 +342,20 @@ export async function startDaemon(options) {
|
|
|
314
342
|
const streamPortFile = getStreamPortFile();
|
|
315
343
|
fs.writeFileSync(streamPortFile, streamPort.toString());
|
|
316
344
|
}
|
|
345
|
+
const cancelIdleTimer = () => {
|
|
346
|
+
if (idleTimer) {
|
|
347
|
+
clearTimeout(idleTimer);
|
|
348
|
+
idleTimer = null;
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
const scheduleIdleShutdown = () => {
|
|
352
|
+
if (residentMode || shuttingDown || pendingCommands > 0)
|
|
353
|
+
return;
|
|
354
|
+
cancelIdleTimer();
|
|
355
|
+
idleTimer = setTimeout(() => {
|
|
356
|
+
void shutdown('idle timeout');
|
|
357
|
+
}, DEFAULT_IDLE_SHUTDOWN_MS);
|
|
358
|
+
};
|
|
317
359
|
const server = net.createServer((socket) => {
|
|
318
360
|
let buffer = '';
|
|
319
361
|
let httpChecked = false;
|
|
@@ -328,269 +370,281 @@ export async function startDaemon(options) {
|
|
|
328
370
|
processing = true;
|
|
329
371
|
while (commandQueue.length > 0) {
|
|
330
372
|
const line = commandQueue.shift();
|
|
373
|
+
pendingCommands += 1;
|
|
374
|
+
cancelIdleTimer();
|
|
331
375
|
try {
|
|
332
|
-
|
|
333
|
-
if (!parseResult.success) {
|
|
334
|
-
const resp = errorResponse(parseResult.id ?? 'unknown', parseResult.error);
|
|
335
|
-
await safeWrite(socket, serializeResponse(resp) + '\n');
|
|
336
|
-
continue;
|
|
337
|
-
}
|
|
338
|
-
// Handle device_list specially - it works without a session and always uses IOSManager
|
|
339
|
-
if (parseResult.command.action === 'device_list') {
|
|
340
|
-
const iosManager = new IOSManager();
|
|
376
|
+
await runSerialized(async () => {
|
|
341
377
|
try {
|
|
342
|
-
const
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
if (!manager.isLaunched() &&
|
|
360
|
-
parseResult.command.action !== 'launch' &&
|
|
361
|
-
parseResult.command.action !== 'close' &&
|
|
362
|
-
parseResult.command.action !== 'state_load' &&
|
|
363
|
-
parseResult.command.action !== 'doctor') {
|
|
364
|
-
if (isIOS && manager instanceof IOSManager) {
|
|
365
|
-
// Auto-launch iOS Safari
|
|
366
|
-
// Check for device in command first (for reused daemons), then fall back to env vars
|
|
367
|
-
const cmd = parseResult.command;
|
|
368
|
-
const iosDevice = cmd.iosDevice || process.env.AGENT_BROWSER_IOS_DEVICE;
|
|
369
|
-
await manager.launch({
|
|
370
|
-
device: iosDevice,
|
|
371
|
-
udid: process.env.AGENT_BROWSER_IOS_UDID,
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
else if (manager instanceof BrowserManager) {
|
|
375
|
-
// Auto-launch desktop browser
|
|
376
|
-
const extensions = process.env.AGENT_BROWSER_EXTENSIONS
|
|
377
|
-
? process.env.AGENT_BROWSER_EXTENSIONS.split(/[,\n]/)
|
|
378
|
-
.map((p) => p.trim())
|
|
379
|
-
.filter(Boolean)
|
|
380
|
-
: undefined;
|
|
381
|
-
// Parse args from env (comma or newline separated)
|
|
382
|
-
const argsEnv = process.env.AGENT_BROWSER_ARGS;
|
|
383
|
-
const args = argsEnv
|
|
384
|
-
? argsEnv
|
|
385
|
-
.split(/[,\n]/)
|
|
386
|
-
.map((a) => a.trim())
|
|
387
|
-
.filter((a) => a.length > 0)
|
|
388
|
-
: undefined;
|
|
389
|
-
// Parse proxy from env
|
|
390
|
-
const proxyServer = process.env.AGENT_BROWSER_PROXY;
|
|
391
|
-
const proxyBypass = process.env.AGENT_BROWSER_PROXY_BYPASS;
|
|
392
|
-
const proxy = proxyServer
|
|
393
|
-
? {
|
|
394
|
-
server: proxyServer,
|
|
395
|
-
...(proxyBypass && { bypass: proxyBypass }),
|
|
378
|
+
const parseResult = parseCommand(line);
|
|
379
|
+
if (!parseResult.success) {
|
|
380
|
+
const resp = errorResponse(parseResult.id ?? 'unknown', parseResult.error);
|
|
381
|
+
await safeWrite(socket, serializeResponse(resp) + '\n');
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
384
|
+
// Handle device_list specially - it works without a session and always uses IOSManager
|
|
385
|
+
if (parseResult.command.action === 'device_list') {
|
|
386
|
+
const iosManager = new IOSManager();
|
|
387
|
+
try {
|
|
388
|
+
const devices = await iosManager.listAllDevices();
|
|
389
|
+
const response = {
|
|
390
|
+
id: parseResult.command.id,
|
|
391
|
+
success: true,
|
|
392
|
+
data: { devices },
|
|
393
|
+
};
|
|
394
|
+
await safeWrite(socket, serializeResponse(response) + '\n');
|
|
396
395
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
// Stealth is always enabled in agent-browser-stealth
|
|
401
|
-
const colorSchemeEnv = process.env.AGENT_BROWSER_COLOR_SCHEME;
|
|
402
|
-
const colorScheme = colorSchemeEnv === 'dark' ||
|
|
403
|
-
colorSchemeEnv === 'light' ||
|
|
404
|
-
colorSchemeEnv === 'no-preference'
|
|
405
|
-
? colorSchemeEnv
|
|
406
|
-
: undefined;
|
|
407
|
-
const tabGroup = process.env.AGENT_BROWSER_TAB_GROUP?.trim();
|
|
408
|
-
const tabGroupPluginId = process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim();
|
|
409
|
-
const launchOptions = {
|
|
410
|
-
id: 'auto',
|
|
411
|
-
action: 'launch',
|
|
412
|
-
headless: process.env.AGENT_BROWSER_HEADED !== '1' &&
|
|
413
|
-
process.env.AGENT_BROWSER_HEADED !== 'true',
|
|
414
|
-
executablePath: process.env.AGENT_BROWSER_EXECUTABLE_PATH,
|
|
415
|
-
extensions: extensions,
|
|
416
|
-
storageState: process.env.AGENT_BROWSER_STATE,
|
|
417
|
-
args,
|
|
418
|
-
userAgent: process.env.AGENT_BROWSER_USER_AGENT,
|
|
419
|
-
proxy,
|
|
420
|
-
ignoreHTTPSErrors: ignoreHTTPSErrors,
|
|
421
|
-
allowFileAccess: allowFileAccess,
|
|
422
|
-
colorScheme,
|
|
423
|
-
tabGroup: tabGroup && tabGroup.length > 0 ? tabGroup : undefined,
|
|
424
|
-
tabGroupPluginId: tabGroupPluginId && tabGroupPluginId.length > 0 ? tabGroupPluginId : undefined,
|
|
425
|
-
autoStateFilePath: getSessionAutoStatePath(),
|
|
426
|
-
};
|
|
427
|
-
let attachedToExistingBrowser = false;
|
|
428
|
-
try {
|
|
429
|
-
// Keep default CDP attempt minimal. Launch-only options like extensions
|
|
430
|
-
// are incompatible with CDP and can cause false-negative attach failures.
|
|
431
|
-
const cdpLaunchOptions = {
|
|
432
|
-
id: launchOptions.id,
|
|
433
|
-
action: launchOptions.action,
|
|
434
|
-
cdpPort: 9333,
|
|
435
|
-
ignoreHTTPSErrors: launchOptions.ignoreHTTPSErrors,
|
|
436
|
-
colorScheme: launchOptions.colorScheme,
|
|
437
|
-
userAgent: launchOptions.userAgent,
|
|
438
|
-
tabGroup: launchOptions.tabGroup,
|
|
439
|
-
tabGroupPluginId: launchOptions.tabGroupPluginId,
|
|
440
|
-
};
|
|
441
|
-
await manager.launch({
|
|
442
|
-
...cdpLaunchOptions,
|
|
443
|
-
});
|
|
444
|
-
attachedToExistingBrowser = true;
|
|
445
|
-
if (process.env.AGENT_BROWSER_DEBUG === '1') {
|
|
446
|
-
console.error('[DEBUG] Auto-launch connected via default CDP port 9333');
|
|
396
|
+
catch (err) {
|
|
397
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
398
|
+
await safeWrite(socket, serializeResponse(errorResponse(parseResult.command.id, message)) + '\n');
|
|
447
399
|
}
|
|
400
|
+
return;
|
|
448
401
|
}
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
402
|
+
// Auto-launch if not already launched and this isn't a launch/close/state_load command.
|
|
403
|
+
// Default behavior for this fork: attach to an existing browser only.
|
|
404
|
+
const isDoctor = parseResult.command.action === 'doctor';
|
|
405
|
+
if (!manager.isLaunched() &&
|
|
406
|
+
parseResult.command.action !== 'launch' &&
|
|
407
|
+
parseResult.command.action !== 'close' &&
|
|
408
|
+
parseResult.command.action !== 'state_load' &&
|
|
409
|
+
parseResult.command.action !== 'doctor') {
|
|
410
|
+
if (isIOS && manager instanceof IOSManager) {
|
|
411
|
+
// Auto-launch iOS Safari
|
|
412
|
+
// Check for device in command first (for reused daemons), then fall back to env vars
|
|
413
|
+
const cmd = parseResult.command;
|
|
414
|
+
const iosDevice = cmd.iosDevice || process.env.AGENT_BROWSER_IOS_DEVICE;
|
|
415
|
+
await manager.launch({
|
|
416
|
+
device: iosDevice,
|
|
417
|
+
udid: process.env.AGENT_BROWSER_IOS_UDID,
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
else if (manager instanceof BrowserManager) {
|
|
421
|
+
// Auto-launch desktop browser
|
|
422
|
+
const extensions = process.env.AGENT_BROWSER_EXTENSIONS
|
|
423
|
+
? process.env.AGENT_BROWSER_EXTENSIONS.split(/[,\n]/)
|
|
424
|
+
.map((p) => p.trim())
|
|
425
|
+
.filter(Boolean)
|
|
426
|
+
: undefined;
|
|
427
|
+
// Parse args from env (comma or newline separated)
|
|
428
|
+
const argsEnv = process.env.AGENT_BROWSER_ARGS;
|
|
429
|
+
const args = argsEnv
|
|
430
|
+
? argsEnv
|
|
431
|
+
.split(/[,\n]/)
|
|
432
|
+
.map((a) => a.trim())
|
|
433
|
+
.filter((a) => a.length > 0)
|
|
434
|
+
: undefined;
|
|
435
|
+
// Parse proxy from env
|
|
436
|
+
const proxyServer = process.env.AGENT_BROWSER_PROXY;
|
|
437
|
+
const proxyBypass = process.env.AGENT_BROWSER_PROXY_BYPASS;
|
|
438
|
+
const proxy = proxyServer
|
|
439
|
+
? {
|
|
440
|
+
server: proxyServer,
|
|
441
|
+
...(proxyBypass && { bypass: proxyBypass }),
|
|
442
|
+
}
|
|
443
|
+
: undefined;
|
|
444
|
+
const ignoreHTTPSErrors = process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1';
|
|
445
|
+
const allowFileAccess = process.env.AGENT_BROWSER_ALLOW_FILE_ACCESS === '1';
|
|
446
|
+
// Stealth is always enabled in agent-browser-stealth
|
|
447
|
+
const colorSchemeEnv = process.env.AGENT_BROWSER_COLOR_SCHEME;
|
|
448
|
+
const colorScheme = colorSchemeEnv === 'dark' ||
|
|
449
|
+
colorSchemeEnv === 'light' ||
|
|
450
|
+
colorSchemeEnv === 'no-preference'
|
|
451
|
+
? colorSchemeEnv
|
|
452
|
+
: undefined;
|
|
453
|
+
const tabGroup = process.env.AGENT_BROWSER_TAB_GROUP?.trim();
|
|
454
|
+
const tabGroupPluginId = process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim();
|
|
455
|
+
const launchOptions = {
|
|
456
|
+
id: 'auto',
|
|
457
|
+
action: 'launch',
|
|
458
|
+
headless: process.env.AGENT_BROWSER_HEADED !== '1' &&
|
|
459
|
+
process.env.AGENT_BROWSER_HEADED !== 'true',
|
|
460
|
+
executablePath: process.env.AGENT_BROWSER_EXECUTABLE_PATH,
|
|
461
|
+
extensions: extensions,
|
|
462
|
+
storageState: process.env.AGENT_BROWSER_STATE,
|
|
463
|
+
args,
|
|
464
|
+
userAgent: process.env.AGENT_BROWSER_USER_AGENT,
|
|
465
|
+
proxy,
|
|
466
|
+
ignoreHTTPSErrors: ignoreHTTPSErrors,
|
|
467
|
+
allowFileAccess: allowFileAccess,
|
|
468
|
+
colorScheme,
|
|
469
|
+
tabGroup: tabGroup && tabGroup.length > 0 ? tabGroup : undefined,
|
|
470
|
+
tabGroupPluginId: tabGroupPluginId && tabGroupPluginId.length > 0
|
|
471
|
+
? tabGroupPluginId
|
|
472
|
+
: undefined,
|
|
473
|
+
autoStateFilePath: getSessionAutoStatePath(),
|
|
474
|
+
};
|
|
475
|
+
let attachedToExistingBrowser = false;
|
|
476
|
+
try {
|
|
477
|
+
// Keep default CDP attempt minimal. Launch-only options like extensions
|
|
478
|
+
// are incompatible with CDP and can cause false-negative attach failures.
|
|
479
|
+
const cdpLaunchOptions = {
|
|
480
|
+
id: launchOptions.id,
|
|
481
|
+
action: launchOptions.action,
|
|
482
|
+
cdpPort: 9333,
|
|
483
|
+
ignoreHTTPSErrors: launchOptions.ignoreHTTPSErrors,
|
|
484
|
+
colorScheme: launchOptions.colorScheme,
|
|
485
|
+
userAgent: launchOptions.userAgent,
|
|
486
|
+
tabGroup: launchOptions.tabGroup,
|
|
487
|
+
tabGroupPluginId: launchOptions.tabGroupPluginId,
|
|
488
|
+
};
|
|
489
|
+
await manager.launch({
|
|
490
|
+
...cdpLaunchOptions,
|
|
491
|
+
});
|
|
492
|
+
attachedToExistingBrowser = true;
|
|
493
|
+
if (process.env.AGENT_BROWSER_DEBUG === '1') {
|
|
494
|
+
console.error('[DEBUG] Auto-launch connected via default CDP port 9333');
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
catch (error) {
|
|
498
|
+
if (process.env.AGENT_BROWSER_DEBUG === '1') {
|
|
499
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
500
|
+
console.error(`[DEBUG] Default CDP port 9333 unavailable, trying auto-connect discovery: ${message}`);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
if (!attachedToExistingBrowser) {
|
|
504
|
+
try {
|
|
505
|
+
await manager.launch({
|
|
506
|
+
id: launchOptions.id,
|
|
507
|
+
action: launchOptions.action,
|
|
508
|
+
autoConnect: true,
|
|
509
|
+
ignoreHTTPSErrors: launchOptions.ignoreHTTPSErrors,
|
|
510
|
+
colorScheme: launchOptions.colorScheme,
|
|
511
|
+
userAgent: launchOptions.userAgent,
|
|
512
|
+
tabGroup: launchOptions.tabGroup,
|
|
513
|
+
tabGroupPluginId: launchOptions.tabGroupPluginId,
|
|
514
|
+
});
|
|
515
|
+
attachedToExistingBrowser = true;
|
|
516
|
+
if (process.env.AGENT_BROWSER_DEBUG === '1') {
|
|
517
|
+
console.error('[DEBUG] Auto-launch connected via auto-connect discovery');
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
catch (error) {
|
|
521
|
+
if (process.env.AGENT_BROWSER_DEBUG === '1') {
|
|
522
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
523
|
+
console.error(`[DEBUG] Auto-connect discovery failed: ${message}`);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
if (!attachedToExistingBrowser) {
|
|
528
|
+
throw new Error('Project policy requires using your existing browser. Could not connect to CDP at localhost:9333 and auto-discovery also failed.');
|
|
529
|
+
}
|
|
453
530
|
}
|
|
454
531
|
}
|
|
455
|
-
if
|
|
532
|
+
// For doctor, attempt the same default attach flow but do not fail hard if attach is unavailable.
|
|
533
|
+
// This keeps diagnostics actionable even when CDP is down.
|
|
534
|
+
if (!manager.isLaunched() && isDoctor && manager instanceof BrowserManager) {
|
|
456
535
|
try {
|
|
457
536
|
await manager.launch({
|
|
458
|
-
id:
|
|
459
|
-
action:
|
|
460
|
-
|
|
461
|
-
ignoreHTTPSErrors:
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
537
|
+
id: 'doctor-cdp',
|
|
538
|
+
action: 'launch',
|
|
539
|
+
cdpPort: 9333,
|
|
540
|
+
ignoreHTTPSErrors: process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1',
|
|
541
|
+
userAgent: process.env.AGENT_BROWSER_USER_AGENT,
|
|
542
|
+
colorScheme: process.env.AGENT_BROWSER_COLOR_SCHEME === 'dark' ||
|
|
543
|
+
process.env.AGENT_BROWSER_COLOR_SCHEME === 'light' ||
|
|
544
|
+
process.env.AGENT_BROWSER_COLOR_SCHEME === 'no-preference'
|
|
545
|
+
? process.env.AGENT_BROWSER_COLOR_SCHEME
|
|
546
|
+
: undefined,
|
|
547
|
+
tabGroup: process.env.AGENT_BROWSER_TAB_GROUP?.trim() || undefined,
|
|
548
|
+
tabGroupPluginId: process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim() || undefined,
|
|
466
549
|
});
|
|
467
|
-
attachedToExistingBrowser = true;
|
|
468
|
-
if (process.env.AGENT_BROWSER_DEBUG === '1') {
|
|
469
|
-
console.error('[DEBUG] Auto-launch connected via auto-connect discovery');
|
|
470
|
-
}
|
|
471
550
|
}
|
|
472
|
-
catch
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
551
|
+
catch {
|
|
552
|
+
try {
|
|
553
|
+
await manager.launch({
|
|
554
|
+
id: 'doctor-auto-connect',
|
|
555
|
+
action: 'launch',
|
|
556
|
+
autoConnect: true,
|
|
557
|
+
ignoreHTTPSErrors: process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1',
|
|
558
|
+
userAgent: process.env.AGENT_BROWSER_USER_AGENT,
|
|
559
|
+
colorScheme: process.env.AGENT_BROWSER_COLOR_SCHEME === 'dark' ||
|
|
560
|
+
process.env.AGENT_BROWSER_COLOR_SCHEME === 'light' ||
|
|
561
|
+
process.env.AGENT_BROWSER_COLOR_SCHEME === 'no-preference'
|
|
562
|
+
? process.env.AGENT_BROWSER_COLOR_SCHEME
|
|
563
|
+
: undefined,
|
|
564
|
+
tabGroup: process.env.AGENT_BROWSER_TAB_GROUP?.trim() || undefined,
|
|
565
|
+
tabGroupPluginId: process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim() || undefined,
|
|
566
|
+
});
|
|
567
|
+
}
|
|
568
|
+
catch {
|
|
569
|
+
// Keep running: doctor should report failures instead of exiting early.
|
|
476
570
|
}
|
|
477
571
|
}
|
|
478
572
|
}
|
|
479
|
-
|
|
480
|
-
|
|
573
|
+
// Recover from stale state: browser is launched but all pages were closed
|
|
574
|
+
if (manager instanceof BrowserManager &&
|
|
575
|
+
manager.isLaunched() &&
|
|
576
|
+
!manager.hasPages() &&
|
|
577
|
+
parseResult.command.action !== 'launch' &&
|
|
578
|
+
parseResult.command.action !== 'close') {
|
|
579
|
+
await manager.ensurePage();
|
|
481
580
|
}
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
action: 'launch',
|
|
491
|
-
cdpPort: 9333,
|
|
492
|
-
ignoreHTTPSErrors: process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1',
|
|
493
|
-
userAgent: process.env.AGENT_BROWSER_USER_AGENT,
|
|
494
|
-
colorScheme: process.env.AGENT_BROWSER_COLOR_SCHEME === 'dark' ||
|
|
495
|
-
process.env.AGENT_BROWSER_COLOR_SCHEME === 'light' ||
|
|
496
|
-
process.env.AGENT_BROWSER_COLOR_SCHEME === 'no-preference'
|
|
497
|
-
? process.env.AGENT_BROWSER_COLOR_SCHEME
|
|
498
|
-
: undefined,
|
|
499
|
-
tabGroup: process.env.AGENT_BROWSER_TAB_GROUP?.trim() || undefined,
|
|
500
|
-
tabGroupPluginId: process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim() || undefined,
|
|
501
|
-
});
|
|
502
|
-
}
|
|
503
|
-
catch {
|
|
504
|
-
try {
|
|
505
|
-
await manager.launch({
|
|
506
|
-
id: 'doctor-auto-connect',
|
|
507
|
-
action: 'launch',
|
|
508
|
-
autoConnect: true,
|
|
509
|
-
ignoreHTTPSErrors: process.env.AGENT_BROWSER_IGNORE_HTTPS_ERRORS === '1',
|
|
510
|
-
userAgent: process.env.AGENT_BROWSER_USER_AGENT,
|
|
511
|
-
colorScheme: process.env.AGENT_BROWSER_COLOR_SCHEME === 'dark' ||
|
|
512
|
-
process.env.AGENT_BROWSER_COLOR_SCHEME === 'light' ||
|
|
513
|
-
process.env.AGENT_BROWSER_COLOR_SCHEME === 'no-preference'
|
|
514
|
-
? process.env.AGENT_BROWSER_COLOR_SCHEME
|
|
515
|
-
: undefined,
|
|
516
|
-
tabGroup: process.env.AGENT_BROWSER_TAB_GROUP?.trim() || undefined,
|
|
517
|
-
tabGroupPluginId: process.env.AGENT_BROWSER_TAB_GROUP_PLUGIN_ID?.trim() || undefined,
|
|
518
|
-
});
|
|
519
|
-
}
|
|
520
|
-
catch {
|
|
521
|
-
// Keep running: doctor should report failures instead of exiting early.
|
|
581
|
+
// Handle explicit launch with auto-load state
|
|
582
|
+
if (parseResult.command.action === 'launch' &&
|
|
583
|
+
manager instanceof BrowserManager &&
|
|
584
|
+
!parseResult.command.autoStateFilePath) {
|
|
585
|
+
const autoStatePath = getSessionAutoStatePath();
|
|
586
|
+
if (autoStatePath) {
|
|
587
|
+
parseResult.command.autoStateFilePath = autoStatePath;
|
|
588
|
+
}
|
|
522
589
|
}
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
}
|
|
542
|
-
// Handle close command specially - shuts down daemon
|
|
543
|
-
if (parseResult.command.action === 'close') {
|
|
544
|
-
// Auto-save state before closing
|
|
545
|
-
if (manager instanceof BrowserManager && manager.isLaunched()) {
|
|
546
|
-
const savePath = getSessionSaveStatePath();
|
|
547
|
-
if (savePath) {
|
|
548
|
-
try {
|
|
549
|
-
const { encrypted } = await saveStateToFile(manager, savePath);
|
|
550
|
-
fs.chmodSync(savePath, 0o600);
|
|
551
|
-
if (process.env.AGENT_BROWSER_DEBUG === '1') {
|
|
552
|
-
console.error(`Auto-saved session state: ${savePath}${encrypted ? ' (encrypted)' : ''}`);
|
|
590
|
+
// Handle close command specially - shuts down daemon
|
|
591
|
+
if (parseResult.command.action === 'close') {
|
|
592
|
+
// Auto-save state before closing
|
|
593
|
+
if (manager instanceof BrowserManager && manager.isLaunched()) {
|
|
594
|
+
const savePath = getSessionSaveStatePath();
|
|
595
|
+
if (savePath) {
|
|
596
|
+
try {
|
|
597
|
+
const { encrypted } = await saveStateToFile(manager, savePath);
|
|
598
|
+
fs.chmodSync(savePath, 0o600);
|
|
599
|
+
if (process.env.AGENT_BROWSER_DEBUG === '1') {
|
|
600
|
+
console.error(`Auto-saved session state: ${savePath}${encrypted ? ' (encrypted)' : ''}`);
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
catch (err) {
|
|
604
|
+
if (process.env.AGENT_BROWSER_DEBUG === '1') {
|
|
605
|
+
console.error(`Failed to auto-save session state:`, err);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
553
608
|
}
|
|
554
609
|
}
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
610
|
+
const response = isIOS && manager instanceof IOSManager
|
|
611
|
+
? await executeIOSCommand(parseResult.command, manager)
|
|
612
|
+
: await executeCommand(parseResult.command, manager);
|
|
613
|
+
await safeWrite(socket, serializeResponse(response) + '\n');
|
|
614
|
+
if (!shuttingDown) {
|
|
615
|
+
shuttingDown = true;
|
|
616
|
+
setTimeout(() => {
|
|
617
|
+
server.close();
|
|
618
|
+
cleanupSocket();
|
|
619
|
+
process.exit(0);
|
|
620
|
+
}, 100);
|
|
559
621
|
}
|
|
622
|
+
commandQueue.length = 0;
|
|
623
|
+
processing = false;
|
|
624
|
+
return;
|
|
560
625
|
}
|
|
626
|
+
// Execute command with appropriate handler
|
|
627
|
+
const response = isIOS && manager instanceof IOSManager
|
|
628
|
+
? await executeIOSCommand(parseResult.command, manager)
|
|
629
|
+
: await executeCommand(parseResult.command, manager);
|
|
630
|
+
// Add any launch warnings to the response
|
|
631
|
+
if (manager instanceof BrowserManager) {
|
|
632
|
+
const warnings = manager.getAndClearWarnings();
|
|
633
|
+
if (warnings.length > 0 && response.success && response.data) {
|
|
634
|
+
response.data.warnings = warnings;
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
await safeWrite(socket, serializeResponse(response) + '\n');
|
|
561
638
|
}
|
|
562
|
-
|
|
563
|
-
?
|
|
564
|
-
|
|
565
|
-
await safeWrite(socket, serializeResponse(response) + '\n');
|
|
566
|
-
if (!shuttingDown) {
|
|
567
|
-
shuttingDown = true;
|
|
568
|
-
setTimeout(() => {
|
|
569
|
-
server.close();
|
|
570
|
-
cleanupSocket();
|
|
571
|
-
process.exit(0);
|
|
572
|
-
}, 100);
|
|
573
|
-
}
|
|
574
|
-
commandQueue.length = 0;
|
|
575
|
-
processing = false;
|
|
576
|
-
return;
|
|
577
|
-
}
|
|
578
|
-
// Execute command with appropriate handler
|
|
579
|
-
const response = isIOS && manager instanceof IOSManager
|
|
580
|
-
? await executeIOSCommand(parseResult.command, manager)
|
|
581
|
-
: await executeCommand(parseResult.command, manager);
|
|
582
|
-
// Add any launch warnings to the response
|
|
583
|
-
if (manager instanceof BrowserManager) {
|
|
584
|
-
const warnings = manager.getAndClearWarnings();
|
|
585
|
-
if (warnings.length > 0 && response.success && response.data) {
|
|
586
|
-
response.data.warnings = warnings;
|
|
639
|
+
catch (err) {
|
|
640
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
641
|
+
await safeWrite(socket, serializeResponse(errorResponse('error', message)) + '\n').catch(() => { }); // Socket may already be destroyed
|
|
587
642
|
}
|
|
588
|
-
}
|
|
589
|
-
await safeWrite(socket, serializeResponse(response) + '\n');
|
|
643
|
+
});
|
|
590
644
|
}
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
645
|
+
finally {
|
|
646
|
+
pendingCommands = Math.max(0, pendingCommands - 1);
|
|
647
|
+
scheduleIdleShutdown();
|
|
594
648
|
}
|
|
595
649
|
}
|
|
596
650
|
processing = false;
|
|
@@ -634,6 +688,29 @@ export async function startDaemon(options) {
|
|
|
634
688
|
const pidFile = getPidFile();
|
|
635
689
|
// Write PID file before listening
|
|
636
690
|
fs.writeFileSync(pidFile, process.pid.toString());
|
|
691
|
+
try {
|
|
692
|
+
fs.chmodSync(pidFile, 0o600);
|
|
693
|
+
}
|
|
694
|
+
catch {
|
|
695
|
+
// Best-effort hardening; skip on platforms that don't support POSIX modes.
|
|
696
|
+
}
|
|
697
|
+
const metaFile = getMetaFile();
|
|
698
|
+
// Ownership/version proof consumed by the CLI before reusing default daemon.
|
|
699
|
+
const daemonMeta = {
|
|
700
|
+
session: currentSession,
|
|
701
|
+
pid: process.pid,
|
|
702
|
+
startedAt: Date.now(),
|
|
703
|
+
daemonPath: process.argv[1] ? path.resolve(process.argv[1]) : '',
|
|
704
|
+
cliVersion: process.env.AGENT_BROWSER_CLI_VERSION ?? '',
|
|
705
|
+
mode: residentMode ? 'resident' : 'idle',
|
|
706
|
+
};
|
|
707
|
+
fs.writeFileSync(metaFile, JSON.stringify(daemonMeta, null, 2));
|
|
708
|
+
try {
|
|
709
|
+
fs.chmodSync(metaFile, 0o600);
|
|
710
|
+
}
|
|
711
|
+
catch {
|
|
712
|
+
// Best-effort hardening; skip on platforms that don't support POSIX modes.
|
|
713
|
+
}
|
|
637
714
|
if (isWindows) {
|
|
638
715
|
// Windows: use TCP socket on localhost
|
|
639
716
|
const port = getPortForSession(currentSession);
|
|
@@ -652,14 +729,16 @@ export async function startDaemon(options) {
|
|
|
652
729
|
}
|
|
653
730
|
server.on('error', (err) => {
|
|
654
731
|
console.error('Server error:', err);
|
|
732
|
+
cancelIdleTimer();
|
|
655
733
|
cleanupSocket();
|
|
656
734
|
process.exit(1);
|
|
657
735
|
});
|
|
658
736
|
// Handle shutdown signals
|
|
659
|
-
const shutdown = async () => {
|
|
737
|
+
const shutdown = async (_reason) => {
|
|
660
738
|
if (shuttingDown)
|
|
661
739
|
return;
|
|
662
740
|
shuttingDown = true;
|
|
741
|
+
cancelIdleTimer();
|
|
663
742
|
// Stop stream server if running
|
|
664
743
|
if (streamServer) {
|
|
665
744
|
await streamServer.stop();
|
|
@@ -685,24 +764,30 @@ export async function startDaemon(options) {
|
|
|
685
764
|
// Handle unexpected errors - always cleanup
|
|
686
765
|
process.on('uncaughtException', (err) => {
|
|
687
766
|
console.error('Uncaught exception:', err);
|
|
767
|
+
cancelIdleTimer();
|
|
688
768
|
cleanupSocket();
|
|
689
769
|
process.exit(1);
|
|
690
770
|
});
|
|
691
771
|
process.on('unhandledRejection', (reason) => {
|
|
692
772
|
console.error('Unhandled rejection:', reason);
|
|
773
|
+
cancelIdleTimer();
|
|
693
774
|
cleanupSocket();
|
|
694
775
|
process.exit(1);
|
|
695
776
|
});
|
|
696
777
|
// Cleanup on normal exit
|
|
697
778
|
process.on('exit', () => {
|
|
779
|
+
cancelIdleTimer();
|
|
698
780
|
cleanupSocket();
|
|
699
781
|
});
|
|
782
|
+
scheduleIdleShutdown();
|
|
700
783
|
// Keep process alive
|
|
701
784
|
process.stdin.resume();
|
|
702
785
|
}
|
|
703
786
|
// Run daemon if this is the entry point
|
|
704
787
|
if (process.argv[1]?.endsWith('daemon.js') || process.env.AGENT_BROWSER_DAEMON === '1') {
|
|
705
|
-
startDaemon(
|
|
788
|
+
startDaemon({
|
|
789
|
+
resident: process.argv.includes('--resident'),
|
|
790
|
+
}).catch((err) => {
|
|
706
791
|
console.error('Daemon error:', err);
|
|
707
792
|
cleanupSocket();
|
|
708
793
|
process.exit(1);
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -216,6 +216,7 @@ agent-browser --parallel site2 snapshot -i
|
|
|
216
216
|
```
|
|
217
217
|
|
|
218
218
|
Use `--parallel <name>` for stateless throughput tasks (navigation, extraction, checks). For login/auth continuity, use `--session-name` instead.
|
|
219
|
+
Default-session commands intentionally reap all non-default daemon sessions (`parallel-*` and legacy named channels) to prevent stale daemon reuse.
|
|
219
220
|
|
|
220
221
|
### Connect to Existing Chrome
|
|
221
222
|
|
|
@@ -504,6 +505,7 @@ These behaviors are always active. For sensitive sites, combine with `--headed`
|
|
|
504
505
|
## Session Management and Cleanup
|
|
505
506
|
|
|
506
507
|
`--session` is ignored in this fork. Runtime defaults to `default`; use `--parallel <name>` for isolated concurrent channels, and `--session-name` for persistence isolation.
|
|
508
|
+
When a default-session command runs, non-default daemon sessions are reaped automatically.
|
|
507
509
|
|
|
508
510
|
Always close your browser session when done to avoid leaked processes:
|
|
509
511
|
|