camofox-browser 2.4.5 → 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 +34 -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 +11 -4
  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
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MAX_TABS_PER_SESSION = exports.MAX_SESSIONS = exports.SESSION_TIMEOUT_MS = void 0;
7
7
  exports.__getUserConcurrencyStateForTests = __getUserConcurrencyStateForTests;
8
8
  exports.__getSessionsMapForTests = __getSessionsMapForTests;
9
+ exports.__getSessionOwnersForTests = __getSessionOwnersForTests;
10
+ exports.getSessionSnapshot = getSessionSnapshot;
9
11
  exports.withUserLimit = withUserLimit;
10
12
  exports.cleanupSessionsForUserId = cleanupSessionsForUserId;
11
13
  exports.normalizeUserId = normalizeUserId;
@@ -27,6 +29,7 @@ exports.clearSessionProfile = clearSessionProfile;
27
29
  exports.acquireSessionProfileCreateMutex = acquireSessionProfileCreateMutex;
28
30
  exports.waitForSessionProfileCreate = waitForSessionProfileCreate;
29
31
  exports.rollbackSessionProfileRuntime = rollbackSessionProfileRuntime;
32
+ exports.teardownSessionByKey = teardownSessionByKey;
30
33
  exports.getSessionsForUser = getSessionsForUser;
31
34
  exports.getAllSessions = getAllSessions;
32
35
  exports.countTotalTabsForSessions = countTotalTabsForSessions;
@@ -66,6 +69,7 @@ const sessionOwners = new Map();
66
69
  // Avoids storing partially-initialized sessions (e.g., context: null cast) and dedupes concurrent creates.
67
70
  const launchingSessions = new Map();
68
71
  const launchingSessionOwners = new Map();
72
+ const sessionRebindReservations = new Map();
69
73
  const lifecycleIdleClosures = new Map();
70
74
  // tabId -> sessions map key
71
75
  // Persistent profiles are keyed only by userId, while tab endpoints only get tabId.
@@ -91,6 +95,79 @@ function __getUserConcurrencyStateForTests(userId) {
91
95
  function __getSessionsMapForTests() {
92
96
  return sessions;
93
97
  }
98
+ /**
99
+ * Test-only: returns the sessionOwners map so tests can link
100
+ * custom session keys to user IDs (needed for findTabById to
101
+ * recognize sessions with non-default keys).
102
+ */
103
+ function __getSessionOwnersForTests() {
104
+ return sessionOwners;
105
+ }
106
+ function createSessionRebindReservation(sessionMapKey, session) {
107
+ let resolve;
108
+ const promise = new Promise((r) => {
109
+ resolve = r;
110
+ });
111
+ const reservation = {
112
+ token: node_crypto_1.default.randomUUID(),
113
+ session,
114
+ fromGeneration: session.generation,
115
+ promise,
116
+ resolve,
117
+ };
118
+ sessionRebindReservations.set(sessionMapKey, reservation);
119
+ return reservation;
120
+ }
121
+ function cancelSessionRebindReservation(sessionMapKey, error) {
122
+ const reservation = sessionRebindReservations.get(sessionMapKey);
123
+ if (!reservation)
124
+ return;
125
+ sessionRebindReservations.delete(sessionMapKey);
126
+ reservation.resolve({ ok: false, error });
127
+ }
128
+ function cancelSessionRebindReservationsForCleanupKey(cleanupKey, allowInternalSessionKey, error) {
129
+ for (const sessionKey of Array.from(sessionRebindReservations.keys())) {
130
+ if (isSessionMapKeyForCleanupKey(sessionKey, cleanupKey, allowInternalSessionKey)) {
131
+ cancelSessionRebindReservation(sessionKey, error);
132
+ }
133
+ }
134
+ }
135
+ function contextNeedsRebind(session, entry) {
136
+ if (!entry || entry.closing !== undefined || entry.generation !== session.generation || entry.context !== session.context) {
137
+ return true;
138
+ }
139
+ if (typeof entry.context.pages === 'function') {
140
+ try {
141
+ void entry.context.pages();
142
+ }
143
+ catch {
144
+ return true;
145
+ }
146
+ }
147
+ return false;
148
+ }
149
+ /**
150
+ * Synchronous snapshot of a session's durable identity — owner and
151
+ * generation — captured before any await to prevent the replacement race.
152
+ *
153
+ * Returns `{ owner, generation }` where:
154
+ * - `owner` is the userId that owns this session key (from sessionOwners),
155
+ * or `undefined` if the session key has no owner mapping.
156
+ * - `generation` is the session's opaque identity token (from SessionData),
157
+ * or `undefined` if no session record exists.
158
+ *
159
+ * This is called by `closeContextBySession` before its first await so that
160
+ * `teardownSessionByKey` can validate the session's identity after the
161
+ * context-close await without reading a potentially-replaced session record.
162
+ */
163
+ function getSessionSnapshot(sessionMapKey) {
164
+ const normalized = String(sessionMapKey);
165
+ const session = sessions.get(normalized);
166
+ return {
167
+ owner: sessionOwners.get(normalized),
168
+ generation: session?.generation,
169
+ };
170
+ }
94
171
  function beginLifecycleIdleClosure(userId) {
95
172
  const key = normalizeUserId(userId);
96
173
  let state = lifecycleIdleClosures.get(key);
@@ -191,10 +268,15 @@ function cleanupSessionsForUserId(userId, reason, clearCanonical = true, options
191
268
  for (const [sessionKey, session] of Array.from(sessions.entries())) {
192
269
  if (!isSessionMapKeyForCleanupKey(sessionKey, key, allowInternalSessionKey))
193
270
  continue;
271
+ cancelSessionRebindReservation(sessionKey, new Error('Session cleaned up'));
194
272
  ownerKeys.add(sessionOwners.get(sessionKey) ?? sessionKey);
195
273
  unindexSessionTabs(session);
196
274
  sessions.delete(sessionKey);
197
275
  sessionOwners.delete(sessionKey);
276
+ // Evict per-session health entry so the map doesn't grow
277
+ // unbounded across normal session lifecycle. The health key
278
+ // is the sessionMapKey (or userId for legacy sessions).
279
+ (0, health_1.deleteUserHealth)(key, sessionKey);
198
280
  (0, logging_1.log)('info', 'session cleaned up', { userId: key, sessionKey, reason });
199
281
  }
200
282
  if (ownerKeys.size === 0)
@@ -528,6 +610,7 @@ async function rollbackSessionProfileRuntime(userId, sessionKey, profileSignatur
528
610
  const sessionMapKey = getSessionMapKey(userId, sessionKey, profileSignature);
529
611
  const session = sessions.get(sessionMapKey);
530
612
  if (session) {
613
+ cancelSessionRebindReservation(sessionMapKey, new Error('Session profile rolled back'));
531
614
  unindexSessionTabs(session);
532
615
  sessions.delete(sessionMapKey);
533
616
  }
@@ -536,6 +619,146 @@ async function rollbackSessionProfileRuntime(userId, sessionKey, profileSignatur
536
619
  launchingSessionOwners.delete(sessionMapKey);
537
620
  await context_pool_1.contextPool.closeContext(sessionMapKey).catch(() => { });
538
621
  }
622
+ /**
623
+ * Tear down a single session by its sessionMapKey: unindex all tabs,
624
+ * delete the session entry, and close the backing context.
625
+ *
626
+ * This is the session-owned teardown used by nav recovery. Unlike
627
+ * closeContextBySession (which only removes the pool entry), this also
628
+ * removes the tab/session records from the index so findTabById can no
629
+ * longer return stale Page objects for the recovered session.
630
+ *
631
+ * Sibling sessions for the same user are preserved — only the exact
632
+ * sessionMapKey is torn down.
633
+ *
634
+ * Generation safety (HIGH B + HIGH C):
635
+ * - When `expectedContextGeneration` is provided (pool entry existed and
636
+ * owner matched), the context is closed only if the exact immutable pool
637
+ * generation still matches the committed session generation. This
638
+ * prevents closing a replacement context that appeared during the await.
639
+ * - When `expectedContextGeneration` is undefined (pool entry was missing at
640
+ * snapshot), stale session/tab records are cleaned up, but NO context
641
+ * close is attempted. A new context may have appeared during the await
642
+ * and must not be destroyed.
643
+ *
644
+ * Session record safety (HIGH C): the session's opaque `generation` is
645
+ * captured before any await. After the await, the session is only deleted
646
+ * if that exact generation still matches — preventing deletion of a
647
+ * replacement or rebound session that reused the same key.
648
+ *
649
+ * Durable session identity (HIGH C round 8): the caller passes a
650
+ * `sessionSnapshot` captured *before* the first await in
651
+ * closeContextBySession. This prevents the replacement race where
652
+ * teardownSessionByKey reads a session record that was replaced during
653
+ * an async gap. The snapshot's `generation` is used as the authoritative
654
+ * session identity; the snapshot's `owner` is
655
+ * validated against the requesting user for the pool-missing path.
656
+ *
657
+ * Foreign ownership (HIGH round 8): when the pool entry is missing
658
+ * (`expectedContextGeneration` is undefined), the session owner from the snapshot
659
+ * is compared against `expectedSessionOwner`. If they don't match, the
660
+ * call is a no-op — a foreign user must not delete another user's
661
+ * session records.
662
+ *
663
+ * Recovery lock safety (HIGH D): deleteUserHealth is NOT called here.
664
+ * Lock/health eviction is owned by handleNavFailure's finally block and
665
+ * by ordinary session lifecycle paths (cleanupSessionsForUserId,
666
+ * closeAllSessions, startCleanupInterval).
667
+ *
668
+ * Returns true if a session was found and torn down, false otherwise.
669
+ */
670
+ async function teardownSessionByKey(sessionMapKey, expectedContextGeneration, sessionSnapshot) {
671
+ const normalized = String(sessionMapKey);
672
+ const session = sessions.get(normalized);
673
+ if (!session)
674
+ return false;
675
+ if (sessionSnapshot && sessionSnapshot.generation === undefined)
676
+ return false;
677
+ // Foreign ownership check (HIGH round 8): when the pool entry was
678
+ // missing at snapshot time, the session owner from the durable
679
+ // snapshot must match the requesting user. A foreign user must not
680
+ // delete another user's indexed session records.
681
+ if (sessionSnapshot && expectedContextGeneration === undefined) {
682
+ const snapshotOwner = sessionSnapshot.owner;
683
+ if (snapshotOwner !== undefined) {
684
+ // sessionOwners.get returns the current owner; compare against
685
+ // the snapshot owner to detect replacement. If the snapshot
686
+ // had no owner mapping, we cannot validate — proceed with
687
+ // caution (index cleanup only, no context close).
688
+ const currentOwner = sessionOwners.get(normalized);
689
+ if (currentOwner !== undefined && currentOwner !== snapshotOwner) {
690
+ (0, logging_1.log)('warn', 'teardownSessionByKey: session owner replaced during await, aborting', {
691
+ sessionMapKey: normalized,
692
+ snapshotOwner,
693
+ currentOwner,
694
+ });
695
+ return false;
696
+ }
697
+ }
698
+ }
699
+ // Use the durable session generation from the snapshot if provided.
700
+ // Callers without a snapshot retain the direct teardown behavior by
701
+ // using the generation of the session they resolved above.
702
+ const sessionGeneration = sessionSnapshot ? sessionSnapshot.generation : session.generation;
703
+ const capturedPairMatches = expectedContextGeneration === undefined || sessionGeneration === expectedContextGeneration;
704
+ // Use generation-aware close to prevent the replacement race (HIGH B).
705
+ // When an exact context generation is provided and matches the captured
706
+ // committed session generation, close only that exact context entry.
707
+ // A mixed old-session/pending-new-context pair is never closed here.
708
+ // When expectedContextGeneration is undefined (pool entry was missing at
709
+ // snapshot), do NOT close any context — a new context may have
710
+ // appeared during the await and must not be destroyed.
711
+ if (expectedContextGeneration !== undefined && capturedPairMatches) {
712
+ await context_pool_1.contextPool.closeContextIfMatches(normalized, expectedContextGeneration).catch(() => { });
713
+ }
714
+ // else: no pool entry at snapshot time → index cleanup only, no close.
715
+ // If a getSession rebind started from the captured session generation,
716
+ // wait for its reservation to commit or fail before deciding whether the
717
+ // old session record is still authoritative. This keeps committed
718
+ // SessionData identity unchanged while a replacement is only pending.
719
+ const pendingRebind = sessionRebindReservations.get(normalized);
720
+ if (pendingRebind && pendingRebind.session === session && pendingRebind.fromGeneration === sessionGeneration) {
721
+ await pendingRebind.promise;
722
+ }
723
+ // Re-check session identity after the await (HIGH C).
724
+ // If a replacement session replaced the old one during the await,
725
+ // leave it intact and only clean up the old session's tab index.
726
+ const currentSession = sessions.get(normalized);
727
+ if (!currentSession || currentSession.generation !== sessionGeneration) {
728
+ // The session was replaced during the await. Unindex the old
729
+ // session's tabs only when it is a distinct object. A rebound
730
+ // SessionData mutates in place, so unindexing it would also unindex
731
+ // the now-current healthy session.
732
+ if (currentSession !== session)
733
+ unindexSessionTabs(session);
734
+ (0, logging_1.log)('warn', 'teardownSessionByKey: session replaced during await, leaving new session intact', {
735
+ sessionMapKey: normalized,
736
+ oldGeneration: sessionGeneration,
737
+ newGeneration: currentSession?.generation,
738
+ });
739
+ return true;
740
+ }
741
+ // A captured mixed session/context pair fails closed while the newer
742
+ // context entry still exists. If its launch failed, ensureContext removes
743
+ // the entry and the stale old session can safely be cleaned below.
744
+ if (!capturedPairMatches && context_pool_1.contextPool.getEntry(normalized)) {
745
+ (0, logging_1.log)('warn', 'teardownSessionByKey: captured session/context generations differ, leaving session intact', {
746
+ sessionMapKey: normalized,
747
+ sessionGeneration,
748
+ contextGeneration: expectedContextGeneration,
749
+ });
750
+ return false;
751
+ }
752
+ // Same session — safe to delete session records.
753
+ unindexSessionTabs(currentSession);
754
+ sessions.delete(normalized);
755
+ sessionOwners.delete(normalized);
756
+ launchingSessions.delete(normalized);
757
+ launchingSessionOwners.delete(normalized);
758
+ sessionRebindReservations.delete(normalized);
759
+ (0, logging_1.log)('info', 'session torn down by key (nav recovery)', { sessionMapKey: normalized, expectedContextGeneration });
760
+ return true;
761
+ }
539
762
  function getSessionsForUser(userId) {
540
763
  if (userId === undefined || userId === null)
541
764
  return [];
@@ -652,6 +875,8 @@ async function createStagedSession(userId, contextOverrides, sessionKey) {
652
875
  context: entry.context,
653
876
  tabGroups: new Map(),
654
877
  lastAccess: Date.now(),
878
+ createdAt: Date.now(),
879
+ generation: entry.generation,
655
880
  };
656
881
  return { session, contextEntry: entry, generation };
657
882
  }
@@ -707,7 +932,13 @@ async function getSession(userId, contextOverrides, sessionKey) {
707
932
  }
708
933
  const launchPromise = (async () => {
709
934
  const entry = await context_pool_1.contextPool.ensureContext(runtimeProfile.profileKey, key, contextOptions, runtimeProfile.resolvedProxy);
710
- const created = { context: entry.context, tabGroups: new Map(), lastAccess: Date.now() };
935
+ const created = {
936
+ context: entry.context,
937
+ tabGroups: new Map(),
938
+ lastAccess: Date.now(),
939
+ createdAt: Date.now(),
940
+ generation: entry.generation,
941
+ };
711
942
  sessions.set(runtimeProfile.sessionMapKey, created);
712
943
  sessionOwners.set(runtimeProfile.sessionMapKey, key);
713
944
  (0, logging_1.log)('info', 'session created', { userId: key, sessionMapKey: runtimeProfile.sessionMapKey });
@@ -725,10 +956,57 @@ async function getSession(userId, contextOverrides, sessionKey) {
725
956
  }
726
957
  else {
727
958
  // Re-resolve context on each access; ContextPool de-dupes launches and detects unexpected closes.
728
- const entry = await context_pool_1.contextPool.ensureContext(runtimeProfile.profileKey, key, contextOptions, runtimeProfile.resolvedProxy);
729
- session.context = entry.context;
730
- session.lastAccess = Date.now();
731
- sessionOwners.set(runtimeProfile.sessionMapKey, key);
959
+ const currentEntry = context_pool_1.contextPool.getEntry(runtimeProfile.profileKey);
960
+ if (contextNeedsRebind(session, currentEntry)) {
961
+ const existingRebind = sessionRebindReservations.get(runtimeProfile.sessionMapKey);
962
+ if (existingRebind) {
963
+ const result = await existingRebind.promise;
964
+ if (!result.ok)
965
+ throw result.error;
966
+ result.session.lastAccess = Date.now();
967
+ return result.session;
968
+ }
969
+ const reservation = createSessionRebindReservation(runtimeProfile.sessionMapKey, session);
970
+ let result;
971
+ try {
972
+ const entry = await context_pool_1.contextPool.ensureContext(runtimeProfile.profileKey, key, contextOptions, runtimeProfile.resolvedProxy);
973
+ if (sessionRebindReservations.get(runtimeProfile.sessionMapKey) !== reservation ||
974
+ sessions.get(runtimeProfile.sessionMapKey) !== session ||
975
+ session.generation !== reservation.fromGeneration) {
976
+ await context_pool_1.contextPool.closeContextIfMatches(runtimeProfile.profileKey, entry.generation).catch(() => { });
977
+ throw new Error('Session rebind superseded');
978
+ }
979
+ // Commit the context and its immutable generation together. Until
980
+ // this point SessionData still describes the previous context.
981
+ session.context = entry.context;
982
+ session.generation = entry.generation;
983
+ session.lastAccess = Date.now();
984
+ sessionOwners.set(runtimeProfile.sessionMapKey, key);
985
+ result = { ok: true, session };
986
+ return session;
987
+ }
988
+ catch (error) {
989
+ result = { ok: false, error };
990
+ throw error;
991
+ }
992
+ finally {
993
+ if (sessionRebindReservations.get(runtimeProfile.sessionMapKey) === reservation) {
994
+ sessionRebindReservations.delete(runtimeProfile.sessionMapKey);
995
+ }
996
+ reservation.resolve(result);
997
+ }
998
+ }
999
+ else {
1000
+ const entry = await context_pool_1.contextPool.ensureContext(runtimeProfile.profileKey, key, contextOptions, runtimeProfile.resolvedProxy);
1001
+ // No await occurs between an unexpected replacement result and this
1002
+ // commit, so bind the exact returned context generation atomically.
1003
+ if (session.context !== entry.context || session.generation !== entry.generation) {
1004
+ session.context = entry.context;
1005
+ session.generation = entry.generation;
1006
+ }
1007
+ session.lastAccess = Date.now();
1008
+ sessionOwners.set(runtimeProfile.sessionMapKey, key);
1009
+ }
732
1010
  }
733
1011
  // For newly created sessions, lastAccess/context are already set.
734
1012
  session.lastAccess = Date.now();
@@ -742,6 +1020,9 @@ function unindexTab(tabId) {
742
1020
  (0, tab_1.clearTabLock)(tabId);
743
1021
  }
744
1022
  function clearAllState() {
1023
+ for (const [sessionKey] of sessionRebindReservations) {
1024
+ cancelSessionRebindReservation(sessionKey, new Error('Session state cleared'));
1025
+ }
745
1026
  sessions.clear();
746
1027
  sessionOwners.clear();
747
1028
  launchingSessions.clear();
@@ -764,38 +1045,56 @@ function clearAllState() {
764
1045
  }
765
1046
  async function closeSessionsForUser(userId, options = {}) {
766
1047
  const key = normalizeUserId(userId);
767
- await context_pool_1.contextPool.closeStagedContextByUserId(key).catch(() => { });
768
- await context_pool_1.contextPool.closeContextByUserId(key).catch(() => { });
769
- cleanupSessionsForUserId(key, 'explicit_close', options.clearProfiles ?? true, { allowInternalSessionKey: false });
1048
+ const releaseClosure = await context_pool_1.contextPool.beginUserClosure(key);
1049
+ try {
1050
+ cancelSessionRebindReservationsForCleanupKey(key, false, new Error('Session explicitly closed'));
1051
+ await context_pool_1.contextPool.closeStagedContextByUserId(key).catch(() => { });
1052
+ await context_pool_1.contextPool.closeContextByUserId(key).catch(() => { });
1053
+ cleanupSessionsForUserId(key, 'explicit_close', options.clearProfiles ?? true, { allowInternalSessionKey: false });
1054
+ }
1055
+ finally {
1056
+ releaseClosure();
1057
+ }
770
1058
  }
771
1059
  async function closeAllSessions() {
772
- await context_pool_1.contextPool.closeAll().catch(() => { });
773
- for (const [sessionKey, session] of sessions) {
774
- const ownerUserId = sessionOwners.get(sessionKey) ?? sessionKey;
775
- void (0, vnc_1.stopVnc)(ownerUserId).catch(() => { });
776
- unindexSessionTabs(session);
777
- sessions.delete(sessionKey);
778
- sessionOwners.delete(sessionKey);
779
- (0, tracing_1.cleanupTracing)(ownerUserId);
780
- try {
781
- (0, download_1.cleanupUserDownloads)(ownerUserId);
1060
+ const releaseClosure = await context_pool_1.contextPool.beginGlobalClosure();
1061
+ try {
1062
+ for (const sessionKey of Array.from(sessionRebindReservations.keys())) {
1063
+ cancelSessionRebindReservation(sessionKey, new Error('All sessions closed'));
782
1064
  }
783
- catch {
784
- // ignore
1065
+ await context_pool_1.contextPool.closeAll().catch(() => { });
1066
+ for (const [sessionKey, session] of sessions) {
1067
+ const ownerUserId = sessionOwners.get(sessionKey) ?? sessionKey;
1068
+ void (0, vnc_1.stopVnc)(ownerUserId).catch(() => { });
1069
+ unindexSessionTabs(session);
1070
+ sessions.delete(sessionKey);
1071
+ sessionOwners.delete(sessionKey);
1072
+ // Evict per-session health entry on bulk close.
1073
+ (0, health_1.deleteUserHealth)(ownerUserId, sessionKey);
1074
+ (0, tracing_1.cleanupTracing)(ownerUserId);
1075
+ try {
1076
+ (0, download_1.cleanupUserDownloads)(ownerUserId);
1077
+ }
1078
+ catch {
1079
+ // ignore
1080
+ }
785
1081
  }
1082
+ launchingSessions.clear();
1083
+ launchingSessionOwners.clear();
1084
+ sessionOwners.clear();
1085
+ canonicalProfiles.clear();
1086
+ sessionProfiles.clear();
1087
+ defaultSessionProfileClaims.clear();
1088
+ for (const [, mutex] of sessionProfileCreateMutexes)
1089
+ mutex.resolve(false);
1090
+ sessionProfileCreateMutexes.clear();
1091
+ for (const [, mutex] of firstCreateMutexes)
1092
+ mutex.resolve(false);
1093
+ firstCreateMutexes.clear();
1094
+ }
1095
+ finally {
1096
+ releaseClosure();
786
1097
  }
787
- launchingSessions.clear();
788
- launchingSessionOwners.clear();
789
- sessionOwners.clear();
790
- canonicalProfiles.clear();
791
- sessionProfiles.clear();
792
- defaultSessionProfileClaims.clear();
793
- for (const [, mutex] of sessionProfileCreateMutexes)
794
- mutex.resolve(false);
795
- sessionProfileCreateMutexes.clear();
796
- for (const [, mutex] of firstCreateMutexes)
797
- mutex.resolve(false);
798
- firstCreateMutexes.clear();
799
1098
  }
800
1099
  let cleanupInterval = null;
801
1100
  function startCleanupInterval() {
@@ -805,6 +1104,8 @@ function startCleanupInterval() {
805
1104
  const now = Date.now();
806
1105
  for (const [sessionKey, session] of sessions) {
807
1106
  if (now - session.lastAccess > exports.SESSION_TIMEOUT_MS) {
1107
+ if (sessionRebindReservations.has(sessionKey))
1108
+ continue;
808
1109
  const ownerUserId = sessionOwners.get(sessionKey) ?? sessionKey;
809
1110
  // Persistent profile is preserved on disk; closing the context frees resources.
810
1111
  context_pool_1.contextPool.closeContext(sessionKey).catch(() => { });
@@ -812,6 +1113,8 @@ function startCleanupInterval() {
812
1113
  clearDefaultSessionProfileClaimsForUser(ownerUserId);
813
1114
  sessions.delete(sessionKey);
814
1115
  sessionOwners.delete(sessionKey);
1116
+ // Evict per-session health entry on timeout expiry.
1117
+ (0, health_1.deleteUserHealth)(ownerUserId, sessionKey);
815
1118
  (0, tracing_1.cleanupTracing)(ownerUserId);
816
1119
  (0, logging_1.log)('info', 'session expired', { userId: ownerUserId, sessionKey });
817
1120
  }
@@ -849,16 +1152,16 @@ async function runLifecycleIdleCleanup(sessionSnapshot, contextSnapshot, cleanup
849
1152
  for (const [profileKey, entry] of contextSnapshot.entries()) {
850
1153
  // Skip staged, launching, or newly-created contexts
851
1154
  if (sessionKeysToCleanup.has(profileKey) && !entry.staged && !entry.launching && entry.createdAt < cleanupStartedMs) {
852
- contextsToClose.push({ profileKey, createdAt: entry.createdAt, lastAccess: entry.lastAccess });
1155
+ contextsToClose.push({ profileKey, generation: entry.generation, lastAccess: entry.lastAccess });
853
1156
  }
854
1157
  }
855
1158
  // Close the specific contexts from the snapshot
856
1159
  const actuallyClosedSessionKeys = new Set();
857
- for (const { profileKey, createdAt, lastAccess } of contextsToClose) {
1160
+ for (const { profileKey, generation, lastAccess } of contextsToClose) {
858
1161
  const entry = contextSnapshot.get(profileKey);
859
1162
  const releaseIdleClosure = entry ? beginLifecycleIdleClosure(entry.userId) : null;
860
1163
  try {
861
- await context_pool_1.contextPool.closeContextIfMatches(profileKey, createdAt, lastAccess);
1164
+ await context_pool_1.contextPool.closeContextIfMatches(profileKey, generation, lastAccess);
862
1165
  // Verify the context was actually closed (not skipped due to reuse)
863
1166
  const stillExists = context_pool_1.contextPool.getEntry(profileKey);
864
1167
  if (!stillExists) {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"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"}