camofox-browser 2.4.6 → 2.4.7
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/CHANGELOG.md +26 -0
- package/README.md +28 -4
- package/THIRD-PARTY-NOTICES.md +49 -0
- package/dist/src/cli/server/manager.d.ts.map +1 -1
- package/dist/src/cli/server/manager.js +1 -4
- package/dist/src/cli/server/manager.js.map +1 -1
- package/dist/src/routes/core.d.ts.map +1 -1
- package/dist/src/routes/core.js +46 -1
- package/dist/src/routes/core.js.map +1 -1
- package/dist/src/routes/openclaw.d.ts.map +1 -1
- package/dist/src/routes/openclaw.js +35 -1
- package/dist/src/routes/openclaw.js.map +1 -1
- package/dist/src/services/context-pool.d.ts +42 -2
- package/dist/src/services/context-pool.d.ts.map +1 -1
- package/dist/src/services/context-pool.js +408 -115
- package/dist/src/services/context-pool.js.map +1 -1
- package/dist/src/services/health.d.ts +57 -6
- package/dist/src/services/health.d.ts.map +1 -1
- package/dist/src/services/health.js +132 -11
- package/dist/src/services/health.js.map +1 -1
- package/dist/src/services/nav-recovery.d.ts +23 -0
- package/dist/src/services/nav-recovery.d.ts.map +1 -0
- package/dist/src/services/nav-recovery.js +63 -0
- package/dist/src/services/nav-recovery.js.map +1 -0
- package/dist/src/services/session.d.ts +84 -0
- package/dist/src/services/session.d.ts.map +1 -1
- package/dist/src/services/session.js +338 -35
- package/dist/src/services/session.js.map +1 -1
- package/dist/src/services/tab.d.ts +5 -1
- package/dist/src/services/tab.d.ts.map +1 -1
- package/dist/src/services/tab.js +114 -51
- package/dist/src/services/tab.js.map +1 -1
- package/dist/src/services/tracing.js +2 -2
- package/dist/src/services/tracing.js.map +1 -1
- package/dist/src/services/vnc.d.ts.map +1 -1
- package/dist/src/services/vnc.js +2 -0
- package/dist/src/services/vnc.js.map +1 -1
- package/dist/src/types.d.ts +2 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/config.d.ts +3 -0
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +3 -0
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/launcher.js +1 -1
- package/dist/src/utils/launcher.js.map +1 -1
- package/dist/src/utils/platform-support.d.ts +17 -0
- package/dist/src/utils/platform-support.d.ts.map +1 -0
- package/dist/src/utils/platform-support.js +57 -0
- package/dist/src/utils/platform-support.js.map +1 -0
- package/dist/src/utils/profile-path.d.ts +9 -0
- package/dist/src/utils/profile-path.d.ts.map +1 -0
- package/dist/src/utils/profile-path.js +105 -0
- package/dist/src/utils/profile-path.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +10 -3
- package/dist/src/cli/utils/api-fallback.d.ts +0 -4
- package/dist/src/cli/utils/api-fallback.d.ts.map +0 -1
- package/dist/src/cli/utils/api-fallback.js +0 -20
- package/dist/src/cli/utils/api-fallback.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pool.js","sourceRoot":"","sources":["../../../src/services/context-pool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-pool.js","sourceRoot":"","sources":["../../../src/services/context-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,68 @@ export interface HealthState {
|
|
|
4
4
|
isRecovering: boolean;
|
|
5
5
|
activeOps: number;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Per-session navigation health tracking.
|
|
9
|
+
*
|
|
10
|
+
* Each session gets an independent failure counter and recovery state.
|
|
11
|
+
* This prevents interleaved failures from different sessions triggering
|
|
12
|
+
* recovery for the wrong session, and a success from one session resetting
|
|
13
|
+
* the failure count for another.
|
|
14
|
+
*
|
|
15
|
+
* When no session identity is available (legacy callers), a user-wide
|
|
16
|
+
* key is used as fallback so those callers still get health tracking.
|
|
17
|
+
*/
|
|
18
|
+
interface SessionNavHealth {
|
|
19
|
+
consecutiveNavFailures: number;
|
|
20
|
+
lastSuccessfulNav: number;
|
|
21
|
+
recovering: boolean;
|
|
22
|
+
}
|
|
7
23
|
export declare function getHealthState(): Readonly<HealthState>;
|
|
8
|
-
export declare function recordNavSuccess(): void;
|
|
9
24
|
/**
|
|
10
|
-
* Records a navigation
|
|
11
|
-
*
|
|
12
|
-
|
|
13
|
-
|
|
25
|
+
* Records a navigation success for a specific session.
|
|
26
|
+
* Resets only that session's failure counter.
|
|
27
|
+
*/
|
|
28
|
+
export declare function recordNavSuccess(userId: string, sessionKey?: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Records a navigation failure for a specific session.
|
|
31
|
+
* Returns true when that session's consecutive failures exceed the
|
|
32
|
+
* threshold, signaling the caller to recover that session's browser context.
|
|
14
33
|
*/
|
|
15
|
-
export declare function recordNavFailure(): boolean;
|
|
34
|
+
export declare function recordNavFailure(userId: string, sessionKey?: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Attempts to acquire the single-flight recovery lock for a session.
|
|
37
|
+
* Returns true if acquired (caller should proceed with recovery),
|
|
38
|
+
* false if a recovery for this session is already in flight.
|
|
39
|
+
*/
|
|
40
|
+
export declare function acquireRecoveryLock(userId: string, sessionKey?: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Releases the single-flight recovery lock for a session.
|
|
43
|
+
* Resets that session's failure counter — recovery was attempted, so
|
|
44
|
+
* the next batch of failures starts fresh.
|
|
45
|
+
*/
|
|
46
|
+
export declare function releaseRecoveryLock(userId: string, sessionKey?: string): void;
|
|
47
|
+
/**
|
|
48
|
+
* Checks whether a session is currently recovering.
|
|
49
|
+
*/
|
|
50
|
+
export declare function isUserRecovering(userId: string, sessionKey?: string): boolean;
|
|
16
51
|
export declare function incrementActiveOps(): void;
|
|
17
52
|
export declare function decrementActiveOps(): void;
|
|
18
53
|
export declare function setRecovering(value: boolean): void;
|
|
19
54
|
export declare function resetHealth(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Evicts a session's health entry from the map. Called after recovery
|
|
57
|
+
* completes to prevent the map from growing unbounded over the
|
|
58
|
+
* process lifetime. Safe to call even if the session has no entry.
|
|
59
|
+
*
|
|
60
|
+
* Preserves entries where `recovering === true`: ordinary session
|
|
61
|
+
* cleanup (timeout, explicit close, bulk close) must not evict a
|
|
62
|
+
* health entry while an in-flight recovery holds the lock, otherwise
|
|
63
|
+
* a concurrent request can recreate the entry and acquire a second
|
|
64
|
+
* recovery lock. The lock owner's `finally` block in
|
|
65
|
+
* `handleNavFailure` is the sole eviction path while recovering.
|
|
66
|
+
*/
|
|
67
|
+
export declare function deleteUserHealth(userId: string, sessionKey?: string): void;
|
|
68
|
+
export declare function __getUserHealthForTests(userId: string, sessionKey?: string): SessionNavHealth | undefined;
|
|
69
|
+
export declare function __clearUserHealthForTests(): void;
|
|
70
|
+
export {};
|
|
20
71
|
//# sourceMappingURL=health.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/services/health.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/services/health.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,UAAU,gBAAgB;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;CACpB;AA8CD,wBAAgB,cAAc,IAAI,QAAQ,CAAC,WAAW,CAAC,CActD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAa7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAKhF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAI7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAI7E;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAElD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAMlC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAK1E;AAMD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAGzG;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
|
@@ -3,43 +3,133 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getHealthState = getHealthState;
|
|
4
4
|
exports.recordNavSuccess = recordNavSuccess;
|
|
5
5
|
exports.recordNavFailure = recordNavFailure;
|
|
6
|
+
exports.acquireRecoveryLock = acquireRecoveryLock;
|
|
7
|
+
exports.releaseRecoveryLock = releaseRecoveryLock;
|
|
8
|
+
exports.isUserRecovering = isUserRecovering;
|
|
6
9
|
exports.incrementActiveOps = incrementActiveOps;
|
|
7
10
|
exports.decrementActiveOps = decrementActiveOps;
|
|
8
11
|
exports.setRecovering = setRecovering;
|
|
9
12
|
exports.resetHealth = resetHealth;
|
|
13
|
+
exports.deleteUserHealth = deleteUserHealth;
|
|
14
|
+
exports.__getUserHealthForTests = __getUserHealthForTests;
|
|
15
|
+
exports.__clearUserHealthForTests = __clearUserHealthForTests;
|
|
10
16
|
const logging_1 = require("../middleware/logging");
|
|
11
17
|
const config_1 = require("../utils/config");
|
|
12
18
|
const CONFIG = (0, config_1.loadConfig)();
|
|
19
|
+
// Per-session health map. Lazily populated — a session's entry is created
|
|
20
|
+
// on first failure or success. Keyed by sessionMapKey when available,
|
|
21
|
+
// falling back to userId for legacy callers without session identity.
|
|
22
|
+
const sessionHealthMap = new Map();
|
|
23
|
+
// Process-global health state — kept for compatibility with the
|
|
24
|
+
// health probe in server.js (lastSuccessfulNav, activeOps, isRecovering).
|
|
25
|
+
// isRecovering is now true if ANY session is recovering.
|
|
13
26
|
const healthState = {
|
|
14
27
|
consecutiveNavFailures: 0,
|
|
15
28
|
lastSuccessfulNav: Date.now(),
|
|
16
29
|
isRecovering: false,
|
|
17
30
|
activeOps: 0,
|
|
18
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Compute the health key for a given userId/sessionKey pair.
|
|
34
|
+
* When sessionKey is provided, use it directly — this isolates
|
|
35
|
+
* per-session counters. When absent, fall back to userId for
|
|
36
|
+
* legacy callers.
|
|
37
|
+
*/
|
|
38
|
+
function healthKey(userId, sessionKey) {
|
|
39
|
+
if (sessionKey !== undefined && sessionKey !== null && sessionKey !== '') {
|
|
40
|
+
return String(sessionKey);
|
|
41
|
+
}
|
|
42
|
+
return String(userId);
|
|
43
|
+
}
|
|
44
|
+
function getSessionHealth(userId, sessionKey) {
|
|
45
|
+
const key = healthKey(userId, sessionKey);
|
|
46
|
+
let h = sessionHealthMap.get(key);
|
|
47
|
+
if (!h) {
|
|
48
|
+
h = {
|
|
49
|
+
consecutiveNavFailures: 0,
|
|
50
|
+
lastSuccessfulNav: Date.now(),
|
|
51
|
+
recovering: false,
|
|
52
|
+
};
|
|
53
|
+
sessionHealthMap.set(key, h);
|
|
54
|
+
}
|
|
55
|
+
return h;
|
|
56
|
+
}
|
|
19
57
|
function getHealthState() {
|
|
58
|
+
// Aggregate per-session state into the process-global view.
|
|
59
|
+
let totalFailures = 0;
|
|
60
|
+
let anyRecovering = false;
|
|
61
|
+
let latestNav = healthState.lastSuccessfulNav;
|
|
62
|
+
for (const h of sessionHealthMap.values()) {
|
|
63
|
+
totalFailures += h.consecutiveNavFailures;
|
|
64
|
+
if (h.recovering)
|
|
65
|
+
anyRecovering = true;
|
|
66
|
+
if (h.lastSuccessfulNav > latestNav)
|
|
67
|
+
latestNav = h.lastSuccessfulNav;
|
|
68
|
+
}
|
|
69
|
+
healthState.consecutiveNavFailures = totalFailures;
|
|
70
|
+
healthState.isRecovering = anyRecovering;
|
|
71
|
+
healthState.lastSuccessfulNav = latestNav;
|
|
20
72
|
return healthState;
|
|
21
73
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Records a navigation success for a specific session.
|
|
76
|
+
* Resets only that session's failure counter.
|
|
77
|
+
*/
|
|
78
|
+
function recordNavSuccess(userId, sessionKey) {
|
|
79
|
+
const h = getSessionHealth(userId, sessionKey);
|
|
80
|
+
h.consecutiveNavFailures = 0;
|
|
81
|
+
h.lastSuccessfulNav = Date.now();
|
|
82
|
+
healthState.lastSuccessfulNav = h.lastSuccessfulNav;
|
|
25
83
|
}
|
|
26
84
|
/**
|
|
27
|
-
* Records a navigation failure
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* Note: Automatic recovery is not implemented — callers decide what action to take.
|
|
85
|
+
* Records a navigation failure for a specific session.
|
|
86
|
+
* Returns true when that session's consecutive failures exceed the
|
|
87
|
+
* threshold, signaling the caller to recover that session's browser context.
|
|
31
88
|
*/
|
|
32
|
-
function recordNavFailure() {
|
|
33
|
-
|
|
34
|
-
|
|
89
|
+
function recordNavFailure(userId, sessionKey) {
|
|
90
|
+
const h = getSessionHealth(userId, sessionKey);
|
|
91
|
+
h.consecutiveNavFailures++;
|
|
92
|
+
const exceeded = h.consecutiveNavFailures >= CONFIG.failureThreshold;
|
|
35
93
|
if (exceeded) {
|
|
36
94
|
(0, logging_1.log)('error', 'consecutive navigation failures exceeded threshold', {
|
|
37
|
-
|
|
95
|
+
userId,
|
|
96
|
+
sessionKey: sessionKey ?? null,
|
|
97
|
+
consecutiveFailures: h.consecutiveNavFailures,
|
|
38
98
|
failureThreshold: CONFIG.failureThreshold,
|
|
39
99
|
});
|
|
40
100
|
}
|
|
41
101
|
return exceeded;
|
|
42
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Attempts to acquire the single-flight recovery lock for a session.
|
|
105
|
+
* Returns true if acquired (caller should proceed with recovery),
|
|
106
|
+
* false if a recovery for this session is already in flight.
|
|
107
|
+
*/
|
|
108
|
+
function acquireRecoveryLock(userId, sessionKey) {
|
|
109
|
+
const h = getSessionHealth(userId, sessionKey);
|
|
110
|
+
if (h.recovering)
|
|
111
|
+
return false;
|
|
112
|
+
h.recovering = true;
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Releases the single-flight recovery lock for a session.
|
|
117
|
+
* Resets that session's failure counter — recovery was attempted, so
|
|
118
|
+
* the next batch of failures starts fresh.
|
|
119
|
+
*/
|
|
120
|
+
function releaseRecoveryLock(userId, sessionKey) {
|
|
121
|
+
const h = getSessionHealth(userId, sessionKey);
|
|
122
|
+
h.recovering = false;
|
|
123
|
+
h.consecutiveNavFailures = 0;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Checks whether a session is currently recovering.
|
|
127
|
+
*/
|
|
128
|
+
function isUserRecovering(userId, sessionKey) {
|
|
129
|
+
const key = healthKey(userId, sessionKey);
|
|
130
|
+
const h = sessionHealthMap.get(key);
|
|
131
|
+
return h?.recovering ?? false;
|
|
132
|
+
}
|
|
43
133
|
function incrementActiveOps() {
|
|
44
134
|
healthState.activeOps++;
|
|
45
135
|
}
|
|
@@ -50,9 +140,40 @@ function setRecovering(value) {
|
|
|
50
140
|
healthState.isRecovering = value;
|
|
51
141
|
}
|
|
52
142
|
function resetHealth() {
|
|
143
|
+
sessionHealthMap.clear();
|
|
53
144
|
healthState.consecutiveNavFailures = 0;
|
|
54
145
|
healthState.lastSuccessfulNav = Date.now();
|
|
55
146
|
healthState.isRecovering = false;
|
|
56
147
|
healthState.activeOps = 0;
|
|
57
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Evicts a session's health entry from the map. Called after recovery
|
|
151
|
+
* completes to prevent the map from growing unbounded over the
|
|
152
|
+
* process lifetime. Safe to call even if the session has no entry.
|
|
153
|
+
*
|
|
154
|
+
* Preserves entries where `recovering === true`: ordinary session
|
|
155
|
+
* cleanup (timeout, explicit close, bulk close) must not evict a
|
|
156
|
+
* health entry while an in-flight recovery holds the lock, otherwise
|
|
157
|
+
* a concurrent request can recreate the entry and acquire a second
|
|
158
|
+
* recovery lock. The lock owner's `finally` block in
|
|
159
|
+
* `handleNavFailure` is the sole eviction path while recovering.
|
|
160
|
+
*/
|
|
161
|
+
function deleteUserHealth(userId, sessionKey) {
|
|
162
|
+
const key = healthKey(userId, sessionKey);
|
|
163
|
+
const h = sessionHealthMap.get(key);
|
|
164
|
+
if (h?.recovering)
|
|
165
|
+
return;
|
|
166
|
+
sessionHealthMap.delete(key);
|
|
167
|
+
}
|
|
168
|
+
// ── Test-only exports ──────────────────────────────────────────────
|
|
169
|
+
// These allow unit tests to inspect and manipulate the per-session health
|
|
170
|
+
// map without relying on the process-global aggregate. Not part of the
|
|
171
|
+
// public API.
|
|
172
|
+
function __getUserHealthForTests(userId, sessionKey) {
|
|
173
|
+
const key = healthKey(userId, sessionKey);
|
|
174
|
+
return sessionHealthMap.get(key);
|
|
175
|
+
}
|
|
176
|
+
function __clearUserHealthForTests() {
|
|
177
|
+
sessionHealthMap.clear();
|
|
178
|
+
}
|
|
58
179
|
//# sourceMappingURL=health.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/services/health.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/services/health.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record a navigation failure for a specific session and recover
|
|
3
|
+
* that session's browser context when the consecutive failure threshold
|
|
4
|
+
* is exceeded.
|
|
5
|
+
*
|
|
6
|
+
* Session-scoped: recovery targets the specific session/profile that had
|
|
7
|
+
* the navigation failure, so one failing tab never terminates unrelated
|
|
8
|
+
* sessions for the same user. When `sessionMapKey` is unavailable, falls
|
|
9
|
+
* back to closing all of the user's contexts (backward compatible).
|
|
10
|
+
*
|
|
11
|
+
* Per-session: health accounting and the single-flight lock are keyed by
|
|
12
|
+
* sessionMapKey when available (independent failure counters per session).
|
|
13
|
+
* When no session key is present, falls back to userId-wide keying.
|
|
14
|
+
*
|
|
15
|
+
* Lock ownership: `releaseRecoveryLock` and `deleteUserHealth` are
|
|
16
|
+
* called **only** by the invocation that acquired the lock. This
|
|
17
|
+
* prevents a below-threshold or non-owner early return from clearing
|
|
18
|
+
* a counter or lock owned by another in-flight request.
|
|
19
|
+
*
|
|
20
|
+
* Safe to call from route catch blocks: best-effort, never throws.
|
|
21
|
+
*/
|
|
22
|
+
export declare function handleNavFailure(userId: string, sessionMapKey?: string): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=nav-recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-recovery.d.ts","sourceRoot":"","sources":["../../../src/services/nav-recovery.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B5F"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleNavFailure = handleNavFailure;
|
|
4
|
+
const logging_1 = require("../middleware/logging");
|
|
5
|
+
const health_1 = require("./health");
|
|
6
|
+
const context_pool_1 = require("./context-pool");
|
|
7
|
+
/**
|
|
8
|
+
* Record a navigation failure for a specific session and recover
|
|
9
|
+
* that session's browser context when the consecutive failure threshold
|
|
10
|
+
* is exceeded.
|
|
11
|
+
*
|
|
12
|
+
* Session-scoped: recovery targets the specific session/profile that had
|
|
13
|
+
* the navigation failure, so one failing tab never terminates unrelated
|
|
14
|
+
* sessions for the same user. When `sessionMapKey` is unavailable, falls
|
|
15
|
+
* back to closing all of the user's contexts (backward compatible).
|
|
16
|
+
*
|
|
17
|
+
* Per-session: health accounting and the single-flight lock are keyed by
|
|
18
|
+
* sessionMapKey when available (independent failure counters per session).
|
|
19
|
+
* When no session key is present, falls back to userId-wide keying.
|
|
20
|
+
*
|
|
21
|
+
* Lock ownership: `releaseRecoveryLock` and `deleteUserHealth` are
|
|
22
|
+
* called **only** by the invocation that acquired the lock. This
|
|
23
|
+
* prevents a below-threshold or non-owner early return from clearing
|
|
24
|
+
* a counter or lock owned by another in-flight request.
|
|
25
|
+
*
|
|
26
|
+
* Safe to call from route catch blocks: best-effort, never throws.
|
|
27
|
+
*/
|
|
28
|
+
async function handleNavFailure(userId, sessionMapKey) {
|
|
29
|
+
let lockAcquired = false;
|
|
30
|
+
try {
|
|
31
|
+
if (!userId)
|
|
32
|
+
return;
|
|
33
|
+
const exceeded = (0, health_1.recordNavFailure)(userId, sessionMapKey);
|
|
34
|
+
if (!exceeded)
|
|
35
|
+
return;
|
|
36
|
+
// Single-flight: skip if a recovery for this session is already running.
|
|
37
|
+
if (!(0, health_1.acquireRecoveryLock)(userId, sessionMapKey)) {
|
|
38
|
+
(0, logging_1.log)('info', 'nav failure threshold exceeded, recovery already in flight', {
|
|
39
|
+
userId,
|
|
40
|
+
sessionMapKey: sessionMapKey ?? null,
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
lockAcquired = true;
|
|
45
|
+
(0, logging_1.log)('info', 'nav failure threshold exceeded, recovering browser context', {
|
|
46
|
+
userId,
|
|
47
|
+
sessionMapKey: sessionMapKey ?? null,
|
|
48
|
+
});
|
|
49
|
+
await context_pool_1.contextPool.closeContextBySession(userId, sessionMapKey);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Best-effort recovery — never propagate
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
if (lockAcquired) {
|
|
56
|
+
(0, health_1.releaseRecoveryLock)(userId, sessionMapKey);
|
|
57
|
+
// Evict the session's health entry after recovery so the map
|
|
58
|
+
// doesn't grow unbounded over the process lifetime.
|
|
59
|
+
(0, health_1.deleteUserHealth)(userId, sessionMapKey);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=nav-recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-recovery.js","sourceRoot":"","sources":["../../../src/services/nav-recovery.ts"],"names":[],"mappings":";;AAyBA,4CA8BC;AAvDD,mDAA4C;AAC5C,qCAAwG;AACxG,iDAA6C;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACI,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,aAAsB;IAC5E,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC;QACJ,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,yEAAyE;QACzE,IAAI,CAAC,IAAA,4BAAmB,EAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;YACjD,IAAA,aAAG,EAAC,MAAM,EAAE,4DAA4D,EAAE;gBACzE,MAAM;gBACN,aAAa,EAAE,aAAa,IAAI,IAAI;aACpC,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,YAAY,GAAG,IAAI,CAAC;QACpB,IAAA,aAAG,EAAC,MAAM,EAAE,4DAA4D,EAAE;YACzE,MAAM;YACN,aAAa,EAAE,aAAa,IAAI,IAAI;SACpC,CAAC,CAAC;QACH,MAAM,0BAAW,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACR,yCAAyC;IAC1C,CAAC;YAAS,CAAC;QACV,IAAI,YAAY,EAAE,CAAC;YAClB,IAAA,4BAAmB,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YAC3C,6DAA6D;YAC7D,oDAAoD;YACpD,IAAA,yBAAgB,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -25,6 +25,30 @@ export declare function __getUserConcurrencyStateForTests(userId: string): {
|
|
|
25
25
|
queueLength: number;
|
|
26
26
|
} | null;
|
|
27
27
|
export declare function __getSessionsMapForTests(): Map<string, SessionData>;
|
|
28
|
+
/**
|
|
29
|
+
* Test-only: returns the sessionOwners map so tests can link
|
|
30
|
+
* custom session keys to user IDs (needed for findTabById to
|
|
31
|
+
* recognize sessions with non-default keys).
|
|
32
|
+
*/
|
|
33
|
+
export declare function __getSessionOwnersForTests(): Map<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Synchronous snapshot of a session's durable identity — owner and
|
|
36
|
+
* generation — captured before any await to prevent the replacement race.
|
|
37
|
+
*
|
|
38
|
+
* Returns `{ owner, generation }` where:
|
|
39
|
+
* - `owner` is the userId that owns this session key (from sessionOwners),
|
|
40
|
+
* or `undefined` if the session key has no owner mapping.
|
|
41
|
+
* - `generation` is the session's opaque identity token (from SessionData),
|
|
42
|
+
* or `undefined` if no session record exists.
|
|
43
|
+
*
|
|
44
|
+
* This is called by `closeContextBySession` before its first await so that
|
|
45
|
+
* `teardownSessionByKey` can validate the session's identity after the
|
|
46
|
+
* context-close await without reading a potentially-replaced session record.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getSessionSnapshot(sessionMapKey: string): {
|
|
49
|
+
owner: string | undefined;
|
|
50
|
+
generation: string | undefined;
|
|
51
|
+
};
|
|
28
52
|
export declare function withUserLimit<T>(userId: string, maxConcurrent: number, operation: () => Promise<T>, operationTimeoutMs?: number): Promise<T>;
|
|
29
53
|
export declare function cleanupSessionsForUserId(userId: string, reason: string, clearCanonical?: boolean, options?: CleanupSessionsForUserIdOptions): void;
|
|
30
54
|
export declare const SESSION_TIMEOUT_MS: number;
|
|
@@ -81,6 +105,66 @@ export declare function acquireSessionProfileCreateMutex(userId: unknown, sessio
|
|
|
81
105
|
};
|
|
82
106
|
export declare function waitForSessionProfileCreate(userId: unknown, sessionKey: string): Promise<void>;
|
|
83
107
|
export declare function rollbackSessionProfileRuntime(userId: unknown, sessionKey: string, profileSignature: string): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Durable session identity captured synchronously by the caller before
|
|
110
|
+
* any await, to prevent the replacement race where a new session with the
|
|
111
|
+
* same key appears during the async gap.
|
|
112
|
+
*/
|
|
113
|
+
export interface SessionSnapshot {
|
|
114
|
+
/** The session owner (userId) at snapshot time, or undefined if no owner mapping. */
|
|
115
|
+
owner: string | undefined;
|
|
116
|
+
/** The session's opaque generation at snapshot time, or undefined if no session record. */
|
|
117
|
+
generation: string | undefined;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Tear down a single session by its sessionMapKey: unindex all tabs,
|
|
121
|
+
* delete the session entry, and close the backing context.
|
|
122
|
+
*
|
|
123
|
+
* This is the session-owned teardown used by nav recovery. Unlike
|
|
124
|
+
* closeContextBySession (which only removes the pool entry), this also
|
|
125
|
+
* removes the tab/session records from the index so findTabById can no
|
|
126
|
+
* longer return stale Page objects for the recovered session.
|
|
127
|
+
*
|
|
128
|
+
* Sibling sessions for the same user are preserved — only the exact
|
|
129
|
+
* sessionMapKey is torn down.
|
|
130
|
+
*
|
|
131
|
+
* Generation safety (HIGH B + HIGH C):
|
|
132
|
+
* - When `expectedContextGeneration` is provided (pool entry existed and
|
|
133
|
+
* owner matched), the context is closed only if the exact immutable pool
|
|
134
|
+
* generation still matches the committed session generation. This
|
|
135
|
+
* prevents closing a replacement context that appeared during the await.
|
|
136
|
+
* - When `expectedContextGeneration` is undefined (pool entry was missing at
|
|
137
|
+
* snapshot), stale session/tab records are cleaned up, but NO context
|
|
138
|
+
* close is attempted. A new context may have appeared during the await
|
|
139
|
+
* and must not be destroyed.
|
|
140
|
+
*
|
|
141
|
+
* Session record safety (HIGH C): the session's opaque `generation` is
|
|
142
|
+
* captured before any await. After the await, the session is only deleted
|
|
143
|
+
* if that exact generation still matches — preventing deletion of a
|
|
144
|
+
* replacement or rebound session that reused the same key.
|
|
145
|
+
*
|
|
146
|
+
* Durable session identity (HIGH C round 8): the caller passes a
|
|
147
|
+
* `sessionSnapshot` captured *before* the first await in
|
|
148
|
+
* closeContextBySession. This prevents the replacement race where
|
|
149
|
+
* teardownSessionByKey reads a session record that was replaced during
|
|
150
|
+
* an async gap. The snapshot's `generation` is used as the authoritative
|
|
151
|
+
* session identity; the snapshot's `owner` is
|
|
152
|
+
* validated against the requesting user for the pool-missing path.
|
|
153
|
+
*
|
|
154
|
+
* Foreign ownership (HIGH round 8): when the pool entry is missing
|
|
155
|
+
* (`expectedContextGeneration` is undefined), the session owner from the snapshot
|
|
156
|
+
* is compared against `expectedSessionOwner`. If they don't match, the
|
|
157
|
+
* call is a no-op — a foreign user must not delete another user's
|
|
158
|
+
* session records.
|
|
159
|
+
*
|
|
160
|
+
* Recovery lock safety (HIGH D): deleteUserHealth is NOT called here.
|
|
161
|
+
* Lock/health eviction is owned by handleNavFailure's finally block and
|
|
162
|
+
* by ordinary session lifecycle paths (cleanupSessionsForUserId,
|
|
163
|
+
* closeAllSessions, startCleanupInterval).
|
|
164
|
+
*
|
|
165
|
+
* Returns true if a session was found and torn down, false otherwise.
|
|
166
|
+
*/
|
|
167
|
+
export declare function teardownSessionByKey(sessionMapKey: string, expectedContextGeneration?: string, sessionSnapshot?: SessionSnapshot): Promise<boolean>;
|
|
84
168
|
export declare function getSessionsForUser(userId: unknown): Array<[string, SessionData]>;
|
|
85
169
|
export declare function getAllSessions(): Map<string, SessionData>;
|
|
86
170
|
export declare function countTotalTabsForSessions(sessionsForUser?: Array<[string, SessionData]>): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIhG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"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"}
|