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.
Files changed (60) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +28 -4
  3. package/THIRD-PARTY-NOTICES.md +49 -0
  4. package/dist/src/cli/server/manager.d.ts.map +1 -1
  5. package/dist/src/cli/server/manager.js +1 -4
  6. package/dist/src/cli/server/manager.js.map +1 -1
  7. package/dist/src/routes/core.d.ts.map +1 -1
  8. package/dist/src/routes/core.js +46 -1
  9. package/dist/src/routes/core.js.map +1 -1
  10. package/dist/src/routes/openclaw.d.ts.map +1 -1
  11. package/dist/src/routes/openclaw.js +35 -1
  12. package/dist/src/routes/openclaw.js.map +1 -1
  13. package/dist/src/services/context-pool.d.ts +42 -2
  14. package/dist/src/services/context-pool.d.ts.map +1 -1
  15. package/dist/src/services/context-pool.js +408 -115
  16. package/dist/src/services/context-pool.js.map +1 -1
  17. package/dist/src/services/health.d.ts +57 -6
  18. package/dist/src/services/health.d.ts.map +1 -1
  19. package/dist/src/services/health.js +132 -11
  20. package/dist/src/services/health.js.map +1 -1
  21. package/dist/src/services/nav-recovery.d.ts +23 -0
  22. package/dist/src/services/nav-recovery.d.ts.map +1 -0
  23. package/dist/src/services/nav-recovery.js +63 -0
  24. package/dist/src/services/nav-recovery.js.map +1 -0
  25. package/dist/src/services/session.d.ts +84 -0
  26. package/dist/src/services/session.d.ts.map +1 -1
  27. package/dist/src/services/session.js +338 -35
  28. package/dist/src/services/session.js.map +1 -1
  29. package/dist/src/services/tab.d.ts +5 -1
  30. package/dist/src/services/tab.d.ts.map +1 -1
  31. package/dist/src/services/tab.js +114 -51
  32. package/dist/src/services/tab.js.map +1 -1
  33. package/dist/src/services/tracing.js +2 -2
  34. package/dist/src/services/tracing.js.map +1 -1
  35. package/dist/src/services/vnc.d.ts.map +1 -1
  36. package/dist/src/services/vnc.js +2 -0
  37. package/dist/src/services/vnc.js.map +1 -1
  38. package/dist/src/types.d.ts +2 -0
  39. package/dist/src/types.d.ts.map +1 -1
  40. package/dist/src/utils/config.d.ts +3 -0
  41. package/dist/src/utils/config.d.ts.map +1 -1
  42. package/dist/src/utils/config.js +3 -0
  43. package/dist/src/utils/config.js.map +1 -1
  44. package/dist/src/utils/launcher.js +1 -1
  45. package/dist/src/utils/launcher.js.map +1 -1
  46. package/dist/src/utils/platform-support.d.ts +17 -0
  47. package/dist/src/utils/platform-support.d.ts.map +1 -0
  48. package/dist/src/utils/platform-support.js +57 -0
  49. package/dist/src/utils/platform-support.js.map +1 -0
  50. package/dist/src/utils/profile-path.d.ts +9 -0
  51. package/dist/src/utils/profile-path.d.ts.map +1 -0
  52. package/dist/src/utils/profile-path.js +105 -0
  53. package/dist/src/utils/profile-path.js.map +1 -0
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/openclaw.plugin.json +1 -1
  56. package/package.json +10 -3
  57. package/dist/src/cli/utils/api-fallback.d.ts +0 -4
  58. package/dist/src/cli/utils/api-fallback.d.ts.map +0 -1
  59. package/dist/src/cli/utils/api-fallback.js +0 -20
  60. 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 failure. Returns true when consecutive failures
11
- * exceed the threshold, signaling the caller to take corrective action
12
- * (e.g., log warning, attempt context restart).
13
- * Note: Automatic recovery is not implemented — callers decide what action to take.
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;AAWD,wBAAgB,cAAc,IAAI,QAAQ,CAAC,WAAW,CAAC,CAEtD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAU1C;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,CAKlC"}
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
- function recordNavSuccess() {
23
- healthState.consecutiveNavFailures = 0;
24
- healthState.lastSuccessfulNav = Date.now();
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. Returns true when consecutive failures
28
- * exceed the threshold, signaling the caller to take corrective action
29
- * (e.g., log warning, attempt context restart).
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
- healthState.consecutiveNavFailures++;
34
- const exceeded = healthState.consecutiveNavFailures >= CONFIG.failureThreshold;
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
- consecutiveFailures: healthState.consecutiveNavFailures,
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":";;AAmBA,wCAEC;AAED,4CAGC;AAQD,4CAUC;AAED,gDAEC;AAED,gDAEC;AAED,sCAEC;AAED,kCAKC;AA/DD,mDAA4C;AAC5C,4CAA6C;AAS7C,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;AAE5B,MAAM,WAAW,GAAgB;IAChC,sBAAsB,EAAE,CAAC;IACzB,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE;IAC7B,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,CAAC;CACZ,CAAC;AAEF,SAAgB,cAAc;IAC7B,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,SAAgB,gBAAgB;IAC/B,WAAW,CAAC,sBAAsB,GAAG,CAAC,CAAC;IACvC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB;IAC/B,WAAW,CAAC,sBAAsB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,sBAAsB,IAAI,MAAM,CAAC,gBAAgB,CAAC;IAC/E,IAAI,QAAQ,EAAE,CAAC;QACd,IAAA,aAAG,EAAC,OAAO,EAAE,oDAAoD,EAAE;YAClE,mBAAmB,EAAE,WAAW,CAAC,sBAAsB;YACvD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SACzC,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAgB,kBAAkB;IACjC,WAAW,CAAC,SAAS,EAAE,CAAC;AACzB,CAAC;AAED,SAAgB,kBAAkB;IACjC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc;IAC3C,WAAW,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,CAAC;AAED,SAAgB,WAAW;IAC1B,WAAW,CAAC,sBAAsB,GAAG,CAAC,CAAC;IACvC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3C,WAAW,CAAC,YAAY,GAAG,KAAK,CAAC;IACjC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3B,CAAC"}
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":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"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"}