@monoes/monobrowse 1.0.17 → 1.0.21

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.
Files changed (68) hide show
  1. package/dist/src/__tests__/browse-concurrency.test.d.ts +15 -0
  2. package/dist/src/__tests__/browse-concurrency.test.d.ts.map +1 -0
  3. package/dist/src/__tests__/browse-concurrency.test.js +198 -0
  4. package/dist/src/__tests__/browse-concurrency.test.js.map +1 -0
  5. package/dist/src/__tests__/browser-launch.test.js +132 -1
  6. package/dist/src/__tests__/browser-launch.test.js.map +1 -1
  7. package/dist/src/__tests__/close-browser.test.js +2 -2
  8. package/dist/src/__tests__/close-browser.test.js.map +1 -1
  9. package/dist/src/__tests__/frame-command.test.js +12 -2
  10. package/dist/src/__tests__/frame-command.test.js.map +1 -1
  11. package/dist/src/__tests__/reap-idle-browser.test.js +13 -13
  12. package/dist/src/__tests__/reap-idle-browser.test.js.map +1 -1
  13. package/dist/src/__tests__/ref-cache.test.js +96 -58
  14. package/dist/src/__tests__/ref-cache.test.js.map +1 -1
  15. package/dist/src/__tests__/report-exit-code.test.js +1 -1
  16. package/dist/src/__tests__/session-discovery.test.d.ts +13 -0
  17. package/dist/src/__tests__/session-discovery.test.d.ts.map +1 -0
  18. package/dist/src/__tests__/session-discovery.test.js +218 -0
  19. package/dist/src/__tests__/session-discovery.test.js.map +1 -0
  20. package/dist/src/browser/browser.d.ts +2 -1
  21. package/dist/src/browser/browser.d.ts.map +1 -1
  22. package/dist/src/browser/browser.js +145 -42
  23. package/dist/src/browser/browser.js.map +1 -1
  24. package/dist/src/browser/ref-cache.d.ts +50 -22
  25. package/dist/src/browser/ref-cache.d.ts.map +1 -1
  26. package/dist/src/browser/ref-cache.js +122 -57
  27. package/dist/src/browser/ref-cache.js.map +1 -1
  28. package/dist/src/browser/types.d.ts +2 -0
  29. package/dist/src/browser/types.d.ts.map +1 -1
  30. package/dist/src/browser/types.js.map +1 -1
  31. package/dist/src/cli/commands-context.js +1 -1
  32. package/dist/src/cli/commands-context.js.map +1 -1
  33. package/dist/src/cli/commands-navigate.js +2 -2
  34. package/dist/src/cli/commands-navigate.js.map +1 -1
  35. package/dist/src/cli/commands-page.js +2 -2
  36. package/dist/src/cli/commands-page.js.map +1 -1
  37. package/dist/src/cli/commands-report.js +2 -2
  38. package/dist/src/cli/commands-report.js.map +1 -1
  39. package/dist/src/cli/commands-session.d.ts.map +1 -1
  40. package/dist/src/cli/commands-session.js +70 -56
  41. package/dist/src/cli/commands-session.js.map +1 -1
  42. package/dist/src/cli/commands.d.ts.map +1 -1
  43. package/dist/src/cli/commands.js +102 -66
  44. package/dist/src/cli/commands.js.map +1 -1
  45. package/dist/src/cli/session.d.ts +66 -2
  46. package/dist/src/cli/session.d.ts.map +1 -1
  47. package/dist/src/cli/session.js +190 -33
  48. package/dist/src/cli/session.js.map +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +1 -1
  51. package/src/__tests__/browse-concurrency.test.ts +233 -0
  52. package/src/__tests__/browser-launch.test.ts +142 -1
  53. package/src/__tests__/close-browser.test.ts +2 -2
  54. package/src/__tests__/frame-command.test.ts +12 -2
  55. package/src/__tests__/reap-idle-browser.test.ts +15 -14
  56. package/src/__tests__/ref-cache.test.ts +112 -59
  57. package/src/__tests__/report-exit-code.test.ts +1 -1
  58. package/src/__tests__/session-discovery.test.ts +259 -0
  59. package/src/browser/browser.ts +149 -39
  60. package/src/browser/ref-cache.ts +144 -72
  61. package/src/browser/types.ts +2 -0
  62. package/src/cli/commands-context.ts +1 -1
  63. package/src/cli/commands-navigate.ts +2 -2
  64. package/src/cli/commands-page.ts +2 -2
  65. package/src/cli/commands-report.ts +2 -2
  66. package/src/cli/commands-session.ts +74 -55
  67. package/src/cli/commands.ts +106 -66
  68. package/src/cli/session.ts +208 -33
@@ -1 +1 @@
1
- {"version":3,"file":"reap-idle-browser.test.js","sourceRoot":"","sources":["../../../src/__tests__/reap-idle-browser.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reap-idle-browser.test.js","sourceRoot":"","sources":["../../../src/__tests__/reap-idle-browser.test.ts"],"names":[],"mappings":"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"}
@@ -32,8 +32,8 @@ describe('ref-cache', () => {
32
32
  it('round-trip: save then load returns equivalent data', async () => {
33
33
  const mod = await importRefCache();
34
34
  const refs = makeRefs(2);
35
- await mod.saveRefCache('target-1', 'https://example.com', refs);
36
- const loaded = await mod.loadRefCache('target-1');
35
+ await mod.saveRefCache(9222, 'target-1', 'https://example.com', refs);
36
+ const loaded = await mod.loadRefCache(9222, 'target-1');
37
37
  expect(loaded).not.toBeNull();
38
38
  expect(loaded.url).toBe('https://example.com');
39
39
  expect(loaded.refs.size).toBe(2);
@@ -45,150 +45,188 @@ describe('ref-cache', () => {
45
45
  it('targetId mismatch returns null', async () => {
46
46
  const mod = await importRefCache();
47
47
  const refs = makeRefs(1);
48
- await mod.saveRefCache('target-A', 'https://a.com', refs);
49
- const loaded = await mod.loadRefCache('target-B');
48
+ await mod.saveRefCache(9222, 'target-A', 'https://a.com', refs);
49
+ const loaded = await mod.loadRefCache(9222, 'target-B');
50
50
  expect(loaded).toBeNull();
51
51
  });
52
52
  it('corrupt JSON file returns null', async () => {
53
53
  const mod = await importRefCache();
54
54
  // First save a valid cache to create the directory structure
55
- await mod.saveRefCache('t', 'https://x.com', makeRefs(1));
55
+ await mod.saveRefCache(9222, 't', 'https://x.com', makeRefs(1));
56
56
  // Now overwrite the file with invalid JSON
57
- const cacheFile = join(tempDir, '.monomind', 'monobrowse', 'ax-snapshot.json');
57
+ const cacheFile = join(tempDir, '.monomind', 'monobrowse', 'ax-snapshot-9222.json');
58
58
  const { writeFile: wf } = await import('node:fs/promises');
59
59
  await wf(cacheFile, '{{{not valid json!!!');
60
- const loaded = await mod.loadRefCache('t');
60
+ const loaded = await mod.loadRefCache(9222, 't');
61
61
  expect(loaded).toBeNull();
62
62
  });
63
63
  it('clearRefCache removes the cache file', async () => {
64
64
  const mod = await importRefCache();
65
- await mod.saveRefCache('t1', 'https://x.com', makeRefs(1));
66
- const cacheFile = join(tempDir, '.monomind', 'monobrowse', 'ax-snapshot.json');
65
+ await mod.saveRefCache(9222, 't1', 'https://x.com', makeRefs(1));
66
+ const cacheFile = join(tempDir, '.monomind', 'monobrowse', 'ax-snapshot-9222.json');
67
67
  // Verify file exists
68
68
  const before = await stat(cacheFile).catch(() => null);
69
69
  expect(before).not.toBeNull();
70
- await mod.clearRefCache();
70
+ await mod.clearRefCache(9222);
71
71
  const after = await stat(cacheFile).catch(() => null);
72
72
  expect(after).toBeNull();
73
73
  });
74
74
  it('load after clear returns null', async () => {
75
75
  const mod = await importRefCache();
76
- await mod.saveRefCache('t1', 'https://x.com', makeRefs(1));
77
- await mod.clearRefCache();
78
- const loaded = await mod.loadRefCache('t1');
76
+ await mod.saveRefCache(9222, 't1', 'https://x.com', makeRefs(1));
77
+ await mod.clearRefCache(9222);
78
+ const loaded = await mod.loadRefCache(9222, 't1');
79
79
  expect(loaded).toBeNull();
80
80
  });
81
81
  it('freshly saved cache is not stale', async () => {
82
82
  const mod = await importRefCache();
83
- await mod.saveRefCache('t1', 'https://x.com', makeRefs(1));
84
- const loaded = await mod.loadRefCache('t1');
83
+ await mod.saveRefCache(9222, 't1', 'https://x.com', makeRefs(1));
84
+ const loaded = await mod.loadRefCache(9222, 't1');
85
85
  expect(loaded).not.toBeNull();
86
86
  expect(loaded.stale).toBe(false);
87
87
  expect(loaded.ageMs).toBeLessThan(mod.REF_CACHE_STALE_MS);
88
88
  });
89
89
  it('cache older than REF_CACHE_STALE_MS is flagged stale', async () => {
90
90
  const mod = await importRefCache();
91
- await mod.saveRefCache('t1', 'https://x.com', makeRefs(1));
91
+ await mod.saveRefCache(9222, 't1', 'https://x.com', makeRefs(1));
92
92
  // Manually backdate the savedAt timestamp
93
- const cacheFile = join(tempDir, '.monomind', 'monobrowse', 'ax-snapshot.json');
93
+ const cacheFile = join(tempDir, '.monomind', 'monobrowse', 'ax-snapshot-9222.json');
94
94
  const raw = JSON.parse(await readFile(cacheFile, 'utf8'));
95
95
  raw.savedAt = Date.now() - mod.REF_CACHE_STALE_MS - 5000;
96
96
  const { writeFile: wf } = await import('node:fs/promises');
97
97
  await wf(cacheFile, JSON.stringify(raw));
98
- const loaded = await mod.loadRefCache('t1');
98
+ const loaded = await mod.loadRefCache(9222, 't1');
99
99
  expect(loaded).not.toBeNull();
100
100
  expect(loaded.stale).toBe(true);
101
101
  expect(loaded.ageMs).toBeGreaterThan(mod.REF_CACHE_STALE_MS);
102
102
  });
103
103
  it('loading with no cache file returns null (no crash)', async () => {
104
104
  const mod = await importRefCache();
105
- const loaded = await mod.loadRefCache('nonexistent');
105
+ const loaded = await mod.loadRefCache(9222, 'nonexistent');
106
106
  expect(loaded).toBeNull();
107
107
  });
108
+ it('#318: each session keeps its own ref cache', async () => {
109
+ const mod = await importRefCache();
110
+ await mod.saveRefCache(41111, 'target-A', 'https://a.com', makeRefs(1));
111
+ await mod.saveRefCache(42222, 'target-B', 'https://b.com', makeRefs(2));
112
+ expect((await mod.loadRefCache(41111, 'target-A')).url).toBe('https://a.com');
113
+ expect((await mod.loadRefCache(42222, 'target-B')).refs.size).toBe(2);
114
+ await mod.clearRefCache(41111);
115
+ expect(await mod.loadRefCache(41111, 'target-A')).toBeNull();
116
+ expect(await mod.loadRefCache(42222, 'target-B')).not.toBeNull();
117
+ });
108
118
  });
109
- describe('active-port persistence', () => {
110
- it('round-trip: save then load returns the port; launched defaults true', async () => {
119
+ describe('#318 session store (one record per port)', () => {
120
+ it('round-trip: save then load returns the session; launched defaults true', async () => {
111
121
  const mod = await importRefCache();
112
- await mod.saveActivePort(9333);
113
- expect(await mod.loadActivePort()).toBe(9333);
114
- expect(await mod.loadActivePortInfo()).toEqual({
122
+ await mod.saveSessionRecord(9333);
123
+ expect(await mod.loadSessionRecord(9333)).toEqual({
115
124
  port: 9333,
116
125
  launched: true,
117
126
  savedAt: expect.any(Number),
118
127
  });
119
128
  });
129
+ it('two concurrent sessions coexist — neither overwrites the other', async () => {
130
+ const mod = await importRefCache();
131
+ await mod.saveSessionRecord(41111, { pid: 11 });
132
+ await mod.saveSessionRecord(42222, { pid: 22 });
133
+ expect((await mod.listSessionRecords()).map((r) => r.port).sort()).toEqual([41111, 42222]);
134
+ expect((await mod.loadSessionRecord(41111)).pid).toBe(11);
135
+ expect((await mod.loadSessionRecord(42222)).pid).toBe(22);
136
+ });
137
+ it('lists newest first — the discovery order for a command with no --port', async () => {
138
+ const mod = await importRefCache();
139
+ const now = Date.now();
140
+ const clock = vi.spyOn(Date, 'now').mockReturnValue(now - 5_000);
141
+ await mod.saveSessionRecord(41111);
142
+ clock.mockReturnValue(now);
143
+ await mod.saveSessionRecord(42222);
144
+ clock.mockRestore();
145
+ expect((await mod.listSessionRecords()).map((r) => r.port)).toEqual([42222, 41111]);
146
+ });
147
+ it('removing one session leaves the others alone', async () => {
148
+ const mod = await importRefCache();
149
+ await mod.saveSessionRecord(41111);
150
+ await mod.saveSessionRecord(42222);
151
+ await mod.removeSessionRecord(41111);
152
+ expect(await mod.loadSessionRecord(41111)).toBeNull();
153
+ expect((await mod.listSessionRecords()).map((r) => r.port)).toEqual([42222]);
154
+ });
155
+ it('removing a session that was never recorded resolves without throwing', async () => {
156
+ const mod = await importRefCache();
157
+ await expect(mod.removeSessionRecord(41111)).resolves.toBeUndefined();
158
+ });
159
+ it('listing with no sessions directory returns an empty list (no crash)', async () => {
160
+ const mod = await importRefCache();
161
+ expect(await mod.listSessionRecords()).toEqual([]);
162
+ });
120
163
  it('connect provenance: launched:false survives the round-trip', async () => {
121
164
  const mod = await importRefCache();
122
- await mod.saveActivePort(9229, { launched: false });
123
- expect(await mod.loadActivePortInfo()).toEqual({
165
+ await mod.saveSessionRecord(9229, { launched: false });
166
+ expect(await mod.loadSessionRecord(9229)).toEqual({
124
167
  port: 9229,
125
168
  launched: false,
126
169
  savedAt: expect.any(Number),
127
170
  });
128
171
  });
129
- it('clear removes the file; load returns null afterwards', async () => {
130
- const mod = await importRefCache();
131
- await mod.saveActivePort(9333);
132
- await mod.clearActivePort();
133
- expect(await mod.loadActivePort()).toBeNull();
134
- expect(await mod.loadActivePortInfo()).toBeNull();
135
- });
136
- it('clear with no file resolves without throwing', async () => {
172
+ it('#115: pid and userDataDir persist so a later process can kill an orphaned launch', async () => {
137
173
  const mod = await importRefCache();
138
- await mod.clearActivePort();
139
- await expect(mod.clearActivePort()).resolves.toBeUndefined();
140
- });
141
- it('#115: pid and userDataDir persist and round-trip so a later process can kill an orphaned launch', async () => {
142
- const mod = await importRefCache();
143
- await mod.saveActivePort(9333, { pid: 54321, userDataDir: '/tmp/monomind-browser-9333' });
144
- expect(await mod.loadActivePortInfo()).toEqual({
174
+ await mod.saveSessionRecord(9333, { pid: 54321, userDataDir: '/tmp/monomind-browse-9333' });
175
+ expect(await mod.loadSessionRecord(9333)).toEqual({
145
176
  port: 9333,
146
177
  launched: true,
147
178
  pid: 54321,
148
- userDataDir: '/tmp/monomind-browser-9333',
179
+ userDataDir: '/tmp/monomind-browse-9333',
149
180
  savedAt: expect.any(Number),
150
181
  });
151
182
  });
152
183
  it('#115: an attached (launched:false) session with no pid argument persists none', async () => {
153
184
  const mod = await importRefCache();
154
- await mod.saveActivePort(9229, { launched: false });
155
- const info = await mod.loadActivePortInfo();
185
+ await mod.saveSessionRecord(9229, { launched: false });
186
+ const info = await mod.loadSessionRecord(9229);
156
187
  expect(info.launched).toBe(false);
157
188
  expect(info.pid).toBeUndefined();
158
189
  });
159
- it('#124-review: saveActivePort does NOT strip pid when launched:false — callers must not pass one for an attach', async () => {
190
+ it('#124-review: saveSessionRecord does NOT strip pid when launched:false — callers must not pass one for an attach', async () => {
160
191
  // The property above (attach sessions have no pid) is caller discipline,
161
192
  // not something this function enforces — the one production caller
162
- // (commands.ts's `connect` action) simply never passes a pid alongside
163
- // launched:false. This test documents that explicitly so it can't be
164
- // mistaken for an invariant the code itself guarantees.
193
+ // (`connect`) simply never passes a pid alongside launched:false. This
194
+ // test documents that explicitly so it can't be mistaken for an
195
+ // invariant the code itself guarantees.
165
196
  const mod = await importRefCache();
166
- await mod.saveActivePort(9229, { launched: false, pid: 4242 });
167
- const info = await mod.loadActivePortInfo();
197
+ await mod.saveSessionRecord(9229, { launched: false, pid: 4242 });
198
+ const info = await mod.loadSessionRecord(9229);
168
199
  expect(info.launched).toBe(false);
169
200
  expect(info.pid).toBe(4242);
170
201
  });
171
202
  it('#115: a non-numeric or non-positive persisted pid is dropped, not trusted', async () => {
172
203
  const mod = await importRefCache();
173
204
  const { writeFile, mkdir } = await import('node:fs/promises');
174
- const dir = join(process.cwd(), '.monomind', 'monobrowse');
205
+ const dir = join(process.cwd(), '.monomind', 'monobrowse', 'sessions');
175
206
  await mkdir(dir, { recursive: true });
176
207
  for (const badPid of ['54321', -1, 0, 1.5, null]) {
177
- await writeFile(join(dir, 'active-port.json'), JSON.stringify({ port: 9333, launched: true, pid: badPid }));
178
- const info = await mod.loadActivePortInfo();
208
+ await writeFile(join(dir, '9333.json'), JSON.stringify({ port: 9333, launched: true, pid: badPid }));
209
+ const info = await mod.loadSessionRecord(9333);
179
210
  expect(info.pid).toBeUndefined();
180
211
  }
181
212
  });
182
- it('rejects out-of-range or non-integer persisted ports', async () => {
213
+ it('rejects out-of-range or non-integer persisted ports, and skips them when listing', async () => {
183
214
  const mod = await importRefCache();
184
215
  const { writeFile, mkdir } = await import('node:fs/promises');
185
- const dir = join(process.cwd(), '.monomind', 'monobrowse');
216
+ const dir = join(process.cwd(), '.monomind', 'monobrowse', 'sessions');
186
217
  await mkdir(dir, { recursive: true });
187
218
  for (const bad of [80, 70000, 1.5, '9222', null]) {
188
- await writeFile(join(dir, 'active-port.json'), JSON.stringify({ port: bad }));
189
- expect(await mod.loadActivePort()).toBeNull();
190
- expect(await mod.loadActivePortInfo()).toBeNull();
219
+ await writeFile(join(dir, '9333.json'), JSON.stringify({ port: bad }));
220
+ expect(await mod.loadSessionRecord(9333)).toBeNull();
221
+ expect(await mod.listSessionRecords()).toEqual([]);
191
222
  }
192
223
  });
224
+ it('a corrupt record is skipped, not fatal for the rest of the listing', async () => {
225
+ const mod = await importRefCache();
226
+ await mod.saveSessionRecord(42222);
227
+ const { writeFile } = await import('node:fs/promises');
228
+ await writeFile(join(process.cwd(), '.monomind', 'monobrowse', 'sessions', '41111.json'), '{{{not valid json!!!');
229
+ expect((await mod.listSessionRecords()).map((r) => r.port)).toEqual([42222]);
230
+ });
193
231
  });
194
232
  //# sourceMappingURL=ref-cache.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ref-cache.test.js","sourceRoot":"","sources":["../../../src/__tests__/ref-cache.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ref-cache.test.js","sourceRoot":"","sources":["../../../src/__tests__/ref-cache.test.ts"],"names":[],"mappings":"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"}
@@ -84,7 +84,7 @@ export async function getBrowser() {
84
84
  stopRequestCapture: () => {},
85
85
  teardownConsoleCapture: () => {},
86
86
  ${close}
87
- clearActivePort: async () => {},
87
+ removeSessionRecord: async () => {},
88
88
  clearRefCache: async () => {},
89
89
  };
90
90
  }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * #318: how a CLI command with no `--port` finds "its" session, and what it
3
+ * does when it finds none — the discovery half of the per-session-browser
4
+ * fix. The allocation half (Chrome binding a free port in a profile of its
5
+ * own) is covered by browser-launch.test.ts and, end to end, by
6
+ * browse-concurrency.test.ts.
7
+ *
8
+ * resolveLiveSession() takes the browser namespace as a parameter, so the
9
+ * real session store (with process.cwd() pointed at a temp dir) can be used
10
+ * while only the CDP liveness probe is faked.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=session-discovery.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-discovery.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/session-discovery.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * #318: how a CLI command with no `--port` finds "its" session, and what it
3
+ * does when it finds none — the discovery half of the per-session-browser
4
+ * fix. The allocation half (Chrome binding a free port in a profile of its
5
+ * own) is covered by browser-launch.test.ts and, end to end, by
6
+ * browse-concurrency.test.ts.
7
+ *
8
+ * resolveLiveSession() takes the browser namespace as a parameter, so the
9
+ * real session store (with process.cwd() pointed at a temp dir) can be used
10
+ * while only the CDP liveness probe is faked.
11
+ */
12
+ import { mkdtemp, rm } from 'node:fs/promises';
13
+ import { tmpdir } from 'node:os';
14
+ import { join } from 'node:path';
15
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
16
+ let tempDir;
17
+ beforeEach(async () => {
18
+ tempDir = await mkdtemp(join(tmpdir(), 'monobrowse-session-'));
19
+ vi.spyOn(process, 'cwd').mockReturnValue(tempDir);
20
+ });
21
+ afterEach(async () => {
22
+ vi.restoreAllMocks();
23
+ await rm(tempDir, { recursive: true, force: true });
24
+ });
25
+ async function load() {
26
+ vi.resetModules();
27
+ const store = await import('../browser/ref-cache.js');
28
+ const { resolveLiveSession, adoptLegacySession, pinnedPort, applySessionPortFlag, session } = await import('../cli/session.js');
29
+ // The slice of the browser namespace resolveLiveSession uses.
30
+ const browser = {
31
+ listSessionRecords: store.listSessionRecords,
32
+ removeSessionRecord: store.removeSessionRecord,
33
+ clearRefCache: store.clearRefCache,
34
+ loadSessionRecord: store.loadSessionRecord,
35
+ saveSessionRecord: store.saveSessionRecord,
36
+ loadLegacySessionRecord: store.loadLegacySessionRecord,
37
+ removeLegacySessionRecord: store.removeLegacySessionRecord,
38
+ };
39
+ return {
40
+ store,
41
+ browser,
42
+ resolveLiveSession,
43
+ adoptLegacySession,
44
+ pinnedPort,
45
+ applySessionPortFlag,
46
+ session,
47
+ };
48
+ }
49
+ /** Write the session file a pre-#318 CLI left behind in this directory. */
50
+ async function writeLegacyRecord(record) {
51
+ const { mkdir, writeFile } = await import('node:fs/promises');
52
+ const dir = join(process.cwd(), '.monomind', 'monobrowse');
53
+ await mkdir(dir, { recursive: true });
54
+ await writeFile(join(dir, 'active-port.json'), JSON.stringify(record));
55
+ }
56
+ async function legacyFileExists() {
57
+ const { readFile } = await import('node:fs/promises');
58
+ return readFile(join(process.cwd(), '.monomind', 'monobrowse', 'active-port.json')).then(() => true, () => false);
59
+ }
60
+ /** Fake the CDP `/json/version` probe: only `live` ports answer. */
61
+ function onlyLive(...live) {
62
+ vi.stubGlobal('fetch', async (input) => {
63
+ const port = Number(new URL(String(input)).port);
64
+ if (live.includes(port))
65
+ return new Response('{}', { status: 200 });
66
+ throw new Error('connection refused');
67
+ });
68
+ }
69
+ describe('#318 session discovery', () => {
70
+ it('with no sessions recorded, resolves to none — the caller starts its own', async () => {
71
+ const { browser, resolveLiveSession } = await load();
72
+ onlyLive();
73
+ expect(await resolveLiveSession(browser)).toBeNull();
74
+ });
75
+ it('resolves the newest live session', async () => {
76
+ const { store, browser, resolveLiveSession } = await load();
77
+ const now = Date.now();
78
+ const clock = vi.spyOn(Date, 'now').mockReturnValue(now - 5_000);
79
+ await store.saveSessionRecord(41111, { pid: 11 });
80
+ clock.mockReturnValue(now);
81
+ await store.saveSessionRecord(42222, { pid: 22 });
82
+ clock.mockRestore();
83
+ onlyLive(41111, 42222);
84
+ expect((await resolveLiveSession(browser))?.port).toBe(42222);
85
+ });
86
+ it('skips a session whose browser died and resolves the older live one', async () => {
87
+ const { store, browser, resolveLiveSession } = await load();
88
+ const now = Date.now();
89
+ const clock = vi.spyOn(Date, 'now').mockReturnValue(now - 5_000);
90
+ await store.saveSessionRecord(41111);
91
+ clock.mockReturnValue(now);
92
+ await store.saveSessionRecord(42222);
93
+ clock.mockRestore();
94
+ onlyLive(41111);
95
+ expect((await resolveLiveSession(browser))?.port).toBe(41111);
96
+ });
97
+ it('self-heals: a dead session is dropped from the store, not left to wedge later commands', async () => {
98
+ const { store, browser, resolveLiveSession } = await load();
99
+ await store.saveSessionRecord(42222);
100
+ onlyLive();
101
+ expect(await resolveLiveSession(browser)).toBeNull();
102
+ expect(await store.loadSessionRecord(42222)).toBeNull();
103
+ });
104
+ it('a dead connect-origin session fails loudly instead of being relaunched under the user', async () => {
105
+ const { store, browser, resolveLiveSession } = await load();
106
+ await store.saveSessionRecord(9229, { launched: false });
107
+ onlyLive();
108
+ await expect(resolveLiveSession(browser)).rejects.toThrow(/Connected browser on port 9229/);
109
+ expect(await store.loadSessionRecord(9229)).toBeNull();
110
+ });
111
+ it('close (strict:false) cleans a dead connect-origin session up instead of throwing', async () => {
112
+ const { store, browser, resolveLiveSession } = await load();
113
+ await store.saveSessionRecord(9229, { launched: false });
114
+ onlyLive();
115
+ expect(await resolveLiveSession(browser, { strict: false })).toBeNull();
116
+ expect(await store.loadSessionRecord(9229)).toBeNull();
117
+ });
118
+ });
119
+ describe('#318 adoption of a pre-#318 session record', () => {
120
+ it('adopts a live legacy session: the record is rewritten per port and the old file is gone', async () => {
121
+ const { store, browser, resolveLiveSession } = await load();
122
+ const savedAt = Date.now() - 60_000;
123
+ await writeLegacyRecord({ port: 41111, launched: true, pid: 4242, savedAt });
124
+ onlyLive(41111);
125
+ expect((await resolveLiveSession(browser))?.port).toBe(41111);
126
+ expect(await store.loadSessionRecord(41111)).toEqual({
127
+ port: 41111,
128
+ launched: true,
129
+ pid: 4242,
130
+ // Preserved, not reset — the session's real age is what the idle
131
+ // reaper and the newest-first ordering read.
132
+ savedAt,
133
+ });
134
+ expect(await legacyFileExists()).toBe(false);
135
+ });
136
+ it('adoption keeps connect provenance, so close still never kills the user’s browser', async () => {
137
+ const { store, browser, resolveLiveSession } = await load();
138
+ await writeLegacyRecord({ port: 9229, launched: false });
139
+ onlyLive(9229);
140
+ expect((await resolveLiveSession(browser))?.launched).toBe(false);
141
+ expect((await store.loadSessionRecord(9229)).launched).toBe(false);
142
+ });
143
+ it('a legacy session whose browser is gone is removed, without throwing', async () => {
144
+ const { store, browser, resolveLiveSession } = await load();
145
+ await writeLegacyRecord({ port: 41111, launched: true, pid: 4242 });
146
+ onlyLive();
147
+ expect(await resolveLiveSession(browser)).toBeNull();
148
+ expect(await legacyFileExists()).toBe(false);
149
+ expect(await store.loadSessionRecord(41111)).toBeNull();
150
+ });
151
+ it('a dead legacy connect-origin session is cleaned up too, not raised as an error', async () => {
152
+ const { browser, resolveLiveSession } = await load();
153
+ await writeLegacyRecord({ port: 9229, launched: false });
154
+ onlyLive();
155
+ expect(await resolveLiveSession(browser)).toBeNull();
156
+ expect(await legacyFileExists()).toBe(false);
157
+ });
158
+ it('a live native session wins; the superseded legacy file is dropped', async () => {
159
+ const { store, browser, resolveLiveSession } = await load();
160
+ await store.saveSessionRecord(42222, { pid: 22 });
161
+ await writeLegacyRecord({ port: 41111, launched: true });
162
+ onlyLive(41111, 42222);
163
+ expect((await resolveLiveSession(browser))?.port).toBe(42222);
164
+ // Not adopted while a native session is live — it is the older candidate.
165
+ expect(await legacyFileExists()).toBe(true);
166
+ });
167
+ it('a legacy record for a port that already has a native record is dropped, not adopted twice', async () => {
168
+ const { store, browser, adoptLegacySession } = await load();
169
+ await store.saveSessionRecord(41111, { launched: false });
170
+ await writeLegacyRecord({ port: 41111, launched: true, pid: 4242 });
171
+ onlyLive(41111);
172
+ expect(await adoptLegacySession(browser)).toBeNull();
173
+ expect(await legacyFileExists()).toBe(false);
174
+ expect((await store.loadSessionRecord(41111)).launched).toBe(false);
175
+ });
176
+ it('adoption restricted to a named port leaves another port’s legacy record alone', async () => {
177
+ const { browser, adoptLegacySession } = await load();
178
+ await writeLegacyRecord({ port: 41111, launched: true });
179
+ onlyLive(41111);
180
+ expect(await adoptLegacySession(browser, { port: 42222 })).toBeNull();
181
+ expect(await legacyFileExists()).toBe(true);
182
+ expect((await adoptLegacySession(browser, { port: 41111 }))?.port).toBe(41111);
183
+ expect(await legacyFileExists()).toBe(false);
184
+ });
185
+ it('with no legacy file at all, adoption is a no-op', async () => {
186
+ const { browser, adoptLegacySession } = await load();
187
+ onlyLive();
188
+ expect(await adoptLegacySession(browser)).toBeNull();
189
+ });
190
+ });
191
+ describe('#318 --port session selector', () => {
192
+ it('reads a usable port from the flags, in either the number or string form', async () => {
193
+ const { pinnedPort } = await load();
194
+ expect(pinnedPort({ _: [], port: 9333 })).toBe(9333);
195
+ expect(pinnedPort({ _: [], port: '9333' })).toBe(9333);
196
+ });
197
+ it('treats absent, out-of-range and unparseable ports as "no selector"', async () => {
198
+ const { pinnedPort } = await load();
199
+ expect(pinnedPort({ _: [] })).toBeUndefined();
200
+ expect(pinnedPort({ _: [], port: 80 })).toBeUndefined();
201
+ expect(pinnedPort({ _: [], port: 70000 })).toBeUndefined();
202
+ expect(pinnedPort({ _: [], port: 1.5 })).toBeUndefined();
203
+ expect(pinnedPort({ _: [], port: 'nope' })).toBeUndefined();
204
+ expect(pinnedPort({ _: [], port: true })).toBeUndefined();
205
+ });
206
+ it('pins the process to the named session', async () => {
207
+ const { applySessionPortFlag, session } = await load();
208
+ applySessionPortFlag({ _: [], port: 9333 });
209
+ expect(session.port).toBe(9333);
210
+ });
211
+ it('a command with no --port leaves an established session alone (batch open → snapshot)', async () => {
212
+ const { applySessionPortFlag, session } = await load();
213
+ session.port = 41111; // as `open` set it earlier in this process
214
+ applySessionPortFlag({ _: [] });
215
+ expect(session.port).toBe(41111);
216
+ });
217
+ });
218
+ //# sourceMappingURL=session-discovery.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-discovery.test.js","sourceRoot":"","sources":["../../../src/__tests__/session-discovery.test.ts"],"names":[],"mappings":"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"}