instar 1.3.1210 → 1.3.1211
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/dist/core/ChromeCdpReloginBrowser.d.ts +1 -0
- package/dist/core/ChromeCdpReloginBrowser.d.ts.map +1 -1
- package/dist/core/ChromeCdpReloginBrowser.js +30 -2
- package/dist/core/ChromeCdpReloginBrowser.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/upgrades/1.3.1211.md +23 -0
- package/upgrades/side-effects/chrome-cdp-profile-cleanup-race.md +86 -0
|
@@ -32,6 +32,7 @@ export declare class ChromeCdpReloginBrowser implements ReloginBrowserPort {
|
|
|
32
32
|
readPasteCode(): Promise<string | null>;
|
|
33
33
|
wait(ms: number): Promise<void>;
|
|
34
34
|
close(): Promise<void>;
|
|
35
|
+
private waitForChildExit;
|
|
35
36
|
private fill;
|
|
36
37
|
private evaluate;
|
|
37
38
|
private waitForPort;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeCdpReloginBrowser.d.ts","sourceRoot":"","sources":["../../src/core/ChromeCdpReloginBrowser.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAYD,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AAID;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAmI;gBAEtI,OAAO,EAAE,8BAA8B;IAS7C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA6BnE,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9D,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQvC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ChromeCdpReloginBrowser.d.ts","sourceRoot":"","sources":["../../src/core/ChromeCdpReloginBrowser.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAYD,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AAID;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAmI;gBAEtI,OAAO,EAAE,8BAA8B;IAS7C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA6BnE,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9D,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQvC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBd,gBAAgB;YAoBhB,IAAI;YAaJ,QAAQ;YAQR,WAAW;YAaX,OAAO;IAwBrB,OAAO,CAAC,IAAI;CAcb"}
|
|
@@ -147,6 +147,7 @@ export class ChromeCdpReloginBrowser {
|
|
|
147
147
|
await new Promise((resolve) => setTimeout(resolve, Math.max(0, Math.min(5_000, ms))));
|
|
148
148
|
}
|
|
149
149
|
async close() {
|
|
150
|
+
const child = this.child;
|
|
150
151
|
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
151
152
|
try {
|
|
152
153
|
await this.send('Browser.close');
|
|
@@ -160,10 +161,37 @@ export class ChromeCdpReloginBrowser {
|
|
|
160
161
|
entry.reject(new Error('relogin-browser-closed'));
|
|
161
162
|
}
|
|
162
163
|
this.pending.clear();
|
|
163
|
-
if (
|
|
164
|
-
|
|
164
|
+
if (child && child.exitCode === null && child.signalCode === null) {
|
|
165
|
+
child.kill('SIGTERM');
|
|
166
|
+
if (!await this.waitForChildExit(child, 5_000)) {
|
|
167
|
+
child.kill('SIGKILL');
|
|
168
|
+
await this.waitForChildExit(child, 2_000);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
165
171
|
this.child = null;
|
|
166
172
|
}
|
|
173
|
+
async waitForChildExit(child, timeoutMs) {
|
|
174
|
+
if (child.exitCode !== null || child.signalCode !== null)
|
|
175
|
+
return true;
|
|
176
|
+
return new Promise((resolve) => {
|
|
177
|
+
let settled = false;
|
|
178
|
+
const finish = (exited) => {
|
|
179
|
+
if (settled)
|
|
180
|
+
return;
|
|
181
|
+
settled = true;
|
|
182
|
+
clearTimeout(timer);
|
|
183
|
+
child.off('exit', onExit);
|
|
184
|
+
resolve(exited);
|
|
185
|
+
};
|
|
186
|
+
const onExit = () => finish(true);
|
|
187
|
+
child.once('exit', onExit);
|
|
188
|
+
const timer = setTimeout(() => finish(false), timeoutMs);
|
|
189
|
+
// Close the check-then-listen gap: the process may have exited between
|
|
190
|
+
// the fast-path check above and listener registration.
|
|
191
|
+
if (child.exitCode !== null || child.signalCode !== null)
|
|
192
|
+
finish(true);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
167
195
|
async fill(selector, value) {
|
|
168
196
|
const expression = `(() => {
|
|
169
197
|
const node = document.querySelector(${JSON.stringify(selector)});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeCdpReloginBrowser.js","sourceRoot":"","sources":["../../src/core/ChromeCdpReloginBrowser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ChromeCdpReloginBrowser.js","sourceRoot":"","sources":["../../src/core/ChromeCdpReloginBrowser.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"generatedFrom": "source-tree",
|
|
4
4
|
"registrySha256": "8e6606a6722433c5ffc15b3870402283c5406083a14cdbd0e18e735731e2aae2",
|
|
5
|
-
"packageVersion": "1.3.
|
|
5
|
+
"packageVersion": "1.3.1211",
|
|
6
6
|
"guards": [
|
|
7
7
|
{
|
|
8
8
|
"ref": "docs/audits/phase-b/f10-triage.md",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"sha256": "
|
|
2
|
+
"sha256": "3b0e2fb49532fc71ccad75e7d03da358c58350c06b743a3c7a71b1d47e29fdfe",
|
|
3
3
|
"registrySha256": "8e6606a6722433c5ffc15b3870402283c5406083a14cdbd0e18e735731e2aae2",
|
|
4
|
-
"packageVersion": "1.3.
|
|
4
|
+
"packageVersion": "1.3.1211"
|
|
5
5
|
}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-08-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-08-29T18:46:17.419Z",
|
|
5
|
+
"instarVersion": "1.3.1211",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"generatedFrom": "source-tree",
|
|
4
4
|
"registrySha256": "8e6606a6722433c5ffc15b3870402283c5406083a14cdbd0e18e735731e2aae2",
|
|
5
|
-
"packageVersion": "1.3.
|
|
5
|
+
"packageVersion": "1.3.1211",
|
|
6
6
|
"guards": [
|
|
7
7
|
{
|
|
8
8
|
"ref": "docs/audits/phase-b/f10-triage.md",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"sha256": "
|
|
2
|
+
"sha256": "3b0e2fb49532fc71ccad75e7d03da358c58350c06b743a3c7a71b1d47e29fdfe",
|
|
3
3
|
"registrySha256": "8e6606a6722433c5ffc15b3870402283c5406083a14cdbd0e18e735731e2aae2",
|
|
4
|
-
"packageVersion": "1.3.
|
|
4
|
+
"packageVersion": "1.3.1211"
|
|
5
5
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
- Browser-backed assisted re-login now waits for its owned Chrome process to exit before reporting cleanup complete.
|
|
9
|
+
- Shutdown uses bounded graceful and forced termination, and the real-process integration test always closes Chrome even after an assertion failure.
|
|
10
|
+
|
|
11
|
+
## What to Tell Your User
|
|
12
|
+
|
|
13
|
+
Assisted re-login browser cleanup is more reliable under loaded CI and production hosts. Temporary browser profiles are no longer removed while Chrome may still be writing them.
|
|
14
|
+
|
|
15
|
+
## Summary of New Capabilities
|
|
16
|
+
|
|
17
|
+
- Race-free completion semantics for the assisted re-login Chrome worker.
|
|
18
|
+
- Bounded recovery when Chrome does not exit promptly.
|
|
19
|
+
|
|
20
|
+
## Evidence
|
|
21
|
+
|
|
22
|
+
- The real-Chrome integration test passed twelve consecutive stress runs and one full-suite run locally.
|
|
23
|
+
- TypeScript build passed; remote CI remains the merge authority.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Side-Effects Review — Chrome CDP profile cleanup race
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `chrome-cdp-profile-cleanup-race`
|
|
4
|
+
**Date:** `2026-08-28`
|
|
5
|
+
**Author:** `echo`
|
|
6
|
+
**Second-pass reviewer:** `chrome_cleanup_review`
|
|
7
|
+
|
|
8
|
+
## Summary of the change
|
|
9
|
+
|
|
10
|
+
`ChromeCdpReloginBrowser.close()` now waits for the spawned Chrome browser process to exit before returning. If a graceful CDP close does not finish, shutdown escalates through bounded SIGTERM and SIGKILL waits. The real-process integration test closes the browser from a `finally` block and gives Chrome's short-lived profile-writing helpers a bounded thirty-second retry window before failing cleanup. The test also uses an explicit thirty-second launch allowance because eight simultaneous real-Chrome CI shards can exceed the production-default startup window under runner contention. This prevents CI load from masquerading as a browser defect without weakening production bounds or the filesystem safety funnel.
|
|
11
|
+
|
|
12
|
+
## Decision-point inventory
|
|
13
|
+
|
|
14
|
+
- `ChromeCdpReloginBrowser.close()` — modify — deterministic child-process lifecycle and bounded shutdown escalation.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 1. Over-block
|
|
19
|
+
|
|
20
|
+
No block/allow surface — over-block is not applicable. A slow Chrome shutdown can add up to seven seconds to `close()`, but it does not reject a legitimate login action.
|
|
21
|
+
|
|
22
|
+
## 2. Under-block
|
|
23
|
+
|
|
24
|
+
An operating-system defect could leave an unkillable process after SIGKILL. The method still returns after the final bounded wait rather than hanging forever; a later filesystem cleanup can still report the honest failure. The change does not attempt to discover or kill unrelated Chrome processes.
|
|
25
|
+
|
|
26
|
+
## 3. Level-of-abstraction fit
|
|
27
|
+
|
|
28
|
+
The browser adapter owns the child it spawns, so it is the correct layer to await that child's termination. Linux Chrome launchers can still exit well before their profile-writing helpers under loaded CI, so the disposable integration-test directory also needs a narrow retry for `ENOTEMPTY`, `EBUSY`, and `EPERM`. The lifecycle fix, the test retry, and the test-only launch allowance address distinct layers; none replaces another or changes production browser timeouts.
|
|
29
|
+
|
|
30
|
+
## 4. Signal vs authority compliance
|
|
31
|
+
|
|
32
|
+
**Required reference:** [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)
|
|
33
|
+
|
|
34
|
+
- [x] No — this change has no block/allow surface.
|
|
35
|
+
|
|
36
|
+
This is deterministic owned-process cleanup, not a judgment over user input or agent behavior.
|
|
37
|
+
|
|
38
|
+
## 4b. Judgment-point check (Judgment Within Floors standard)
|
|
39
|
+
|
|
40
|
+
No new static heuristic at a competing-signals decision point. Process exit, signal delivery, and fixed time bounds are enumerable lifecycle mechanics.
|
|
41
|
+
|
|
42
|
+
## 5. Interactions
|
|
43
|
+
|
|
44
|
+
- **Shadowing:** no existing shutdown authority is bypassed; CDP `Browser.close` remains the first graceful action.
|
|
45
|
+
- **Double-fire:** `close()` remains safe when Chrome already exited. The saved child reference and exit/signal checks prevent unnecessary signals.
|
|
46
|
+
- **Races:** the parent-process race is closed by awaiting the child exit event before returning. The listener is registered before the second exit-state check, and an idempotent settlement guard closes the check-then-listen race identified during second-pass review. The remaining launcher-helper tail is handled only in disposable test cleanup by a thirty-second, typed retry with a constant 250 ms pause and an explicit thirty-five-second hook timeout. CI launch contention is separately bounded at thirty seconds.
|
|
47
|
+
- **Feedback loops:** none; teardown creates no durable state or retry loop.
|
|
48
|
+
|
|
49
|
+
## 6. External surfaces
|
|
50
|
+
|
|
51
|
+
Callers now receive a stronger `close()` completion guarantee and may wait up to seven seconds for a wedged owned Chrome process. There are no API, dashboard, credential, message, or persistent-state shape changes. No operator-facing actions are added.
|
|
52
|
+
|
|
53
|
+
## 6b. Operator-surface quality (Operator-Surface Quality standard)
|
|
54
|
+
|
|
55
|
+
No operator surface — not applicable.
|
|
56
|
+
|
|
57
|
+
## 7. Multi-machine posture (Cross-Machine Coherence)
|
|
58
|
+
|
|
59
|
+
**Machine-local BY DESIGN:** Chrome processes and their profile directories are physical-machine resources. Each browser adapter waits only for the child it spawned locally. The change emits no notices, holds no new durable state, and generates no URLs, so no one-voice, transfer, or cross-machine URL handling is needed.
|
|
60
|
+
|
|
61
|
+
## 8. Rollback cost
|
|
62
|
+
|
|
63
|
+
Pure code change: revert and publish a patch. No data migration or agent-state repair is required. Rollback would restore the cleanup race until the reverted version propagated.
|
|
64
|
+
|
|
65
|
+
## Conclusion
|
|
66
|
+
|
|
67
|
+
The fix belongs in the process owner, preserves bounded teardown, and closes the observed CI race without broadening process-kill scope. It is clear to ship once the second-pass lifecycle review and CI concur.
|
|
68
|
+
|
|
69
|
+
## Second-pass review (if required)
|
|
70
|
+
|
|
71
|
+
**Reviewer:** `chrome_cleanup_review`
|
|
72
|
+
**Independent read of the artifact:** concur after revision
|
|
73
|
+
|
|
74
|
+
The reviewer identified a check-then-listen race in the first `waitForChildExit()` implementation. The implementation now registers the listener first, immediately rechecks process state, and settles idempotently. With that correction, the reviewer concurred with the ownership layer, bounded escalation, `finally` cleanup, authority analysis, and side-effects conclusions.
|
|
75
|
+
|
|
76
|
+
## Evidence pointers
|
|
77
|
+
|
|
78
|
+
- `tests/integration/chrome-cdp-relogin-browser.test.ts`
|
|
79
|
+
- Sixty consecutive local real-Chrome stress passes across the three revisions, plus one pass inside the 50,310-test repository run.
|
|
80
|
+
- `npm run build` passed.
|
|
81
|
+
|
|
82
|
+
## Class-Closure Declaration (display-only mirror)
|
|
83
|
+
|
|
84
|
+
`defectClass: unbounded-self-action`, `closure: n/a`, `reason: one-shot close() teardown for one explicitly opened browser child, not a self-triggered loop or controller`.
|
|
85
|
+
|
|
86
|
+
This change modifies process-signaling code, so the structural classifier correctly asks for an explicit declaration. The operation is invoked once by the bounded repair worker's cleanup path; it does not schedule itself, retry across episodes, or create an autonomous control loop.
|