@1mcp/agent 0.39.0 → 0.39.1

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 (56) hide show
  1. package/build/admin/assets/{admin-OAuthServicesWorkspace-Cf86PlIF.js → admin-OAuthServicesWorkspace-DtA8Qn7j.js} +1 -1
  2. package/build/admin/assets/{admin-console-B4UzgWHN.js → admin-console-4zoN0uyH.js} +3 -3
  3. package/build/admin/index.html +1 -1
  4. package/build/constants/mcp.d.ts +1 -1
  5. package/build/constants/mcp.js +1 -1
  6. package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
  7. package/build/core/capabilities/capabilityPagination.js +4 -1
  8. package/build/core/capabilities/capabilityPagination.js.map +1 -1
  9. package/build/core/types/server.d.ts +4 -0
  10. package/build/core/types/server.d.ts.map +1 -1
  11. package/build/sdk/legacy/client/runtime/clientManager.d.ts +2 -1
  12. package/build/sdk/legacy/client/runtime/clientManager.d.ts.map +1 -1
  13. package/build/sdk/legacy/client/runtime/clientManager.js +4 -0
  14. package/build/sdk/legacy/client/runtime/clientManager.js.map +1 -1
  15. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts.map +1 -1
  16. package/build/sdk/legacy/server/protocol/notificationHandlers.js +4 -1
  17. package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -1
  18. package/build/sdk/legacy/server/protocol/resourceSubscriptions.d.ts +3 -1
  19. package/build/sdk/legacy/server/protocol/resourceSubscriptions.d.ts.map +1 -1
  20. package/build/sdk/legacy/server/protocol/resourceSubscriptions.js +126 -17
  21. package/build/sdk/legacy/server/protocol/resourceSubscriptions.js.map +1 -1
  22. package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -1
  23. package/build/sdk/legacy/server/runtime/connectionManager.js +5 -1
  24. package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -1
  25. package/build/sdk/legacy/server/runtime/serverManager.d.ts +8 -0
  26. package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -1
  27. package/build/sdk/legacy/server/runtime/serverManager.js +93 -48
  28. package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -1
  29. package/build/sdk/legacy/server/runtime/templateServerManager.d.ts +8 -0
  30. package/build/sdk/legacy/server/runtime/templateServerManager.d.ts.map +1 -1
  31. package/build/sdk/legacy/server/runtime/templateServerManager.js +101 -21
  32. package/build/sdk/legacy/server/runtime/templateServerManager.js.map +1 -1
  33. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +1 -1
  34. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -1
  35. package/build/sdk/legacy/transport/stdioProxyTransport.d.ts +2 -0
  36. package/build/sdk/legacy/transport/stdioProxyTransport.d.ts.map +1 -1
  37. package/build/sdk/legacy/transport/stdioProxyTransport.js +31 -4
  38. package/build/sdk/legacy/transport/stdioProxyTransport.js.map +1 -1
  39. package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -1
  40. package/build/transport/http/routes/modernHttpRoutes.js +70 -12
  41. package/build/transport/http/routes/modernHttpRoutes.js.map +1 -1
  42. package/build/transport/http/routes/modernInteractionBinding.d.ts.map +1 -1
  43. package/build/transport/http/routes/modernInteractionBinding.js +6 -3
  44. package/build/transport/http/routes/modernInteractionBinding.js.map +1 -1
  45. package/build/transport/http/routes/modernSubscriptions.d.ts +2 -1
  46. package/build/transport/http/routes/modernSubscriptions.d.ts.map +1 -1
  47. package/build/transport/http/routes/modernSubscriptions.js +9 -6
  48. package/build/transport/http/routes/modernSubscriptions.js.map +1 -1
  49. package/build/transport/http/routes/modernTemplateContext.d.ts +15 -0
  50. package/build/transport/http/routes/modernTemplateContext.d.ts.map +1 -0
  51. package/build/transport/http/routes/modernTemplateContext.js +48 -0
  52. package/build/transport/http/routes/modernTemplateContext.js.map +1 -0
  53. package/build/transport/http/routes/modernToolHeaderRegistry.d.ts.map +1 -1
  54. package/build/transport/http/routes/modernToolHeaderRegistry.js +2 -2
  55. package/build/transport/http/routes/modernToolHeaderRegistry.js.map +1 -1
  56. package/package.json +3 -3
@@ -1,4 +1,5 @@
1
1
  import { ConfigManager } from '../../../../config/configManager.js';
2
+ import { evictRuntimeCapabilityCatalogSession } from '../../../../core/capabilities/runtimeCapabilityCatalog.js';
2
3
  import { getGlobalContextManager } from '../../../../core/context/globalContextManager.js';
3
4
  import { getFilterCache } from '../../../../core/filtering/index.js';
4
5
  import { LoadingState } from '../../../../core/loading/loadingStateTracker.js';
@@ -35,6 +36,9 @@ export class ServerManager {
35
36
  serverCapabilities;
36
37
  outboundConns;
37
38
  transports;
39
+ logicalTemplateContexts = new Map();
40
+ logicalTemplatePreparations = new Map();
41
+ logicalBridgeSessions = new Set();
38
42
  serverConfigData = null; // Cache the config data
39
43
  instructionAggregator;
40
44
  lazyLoadingOrchestrator;
@@ -54,6 +58,10 @@ export class ServerManager {
54
58
  // Initialize component managers
55
59
  this.connectionManager = new ConnectionManager(config, capabilities, outboundConns);
56
60
  this.templateServerManager = new TemplateServerManager(AgentConfigManager.getInstance().get('templateInstancePool'));
61
+ this.templateServerManager.registerLogicalTemplateSessionCleanup((sessionId) => {
62
+ this.logicalTemplateContexts.delete(sessionId);
63
+ evictRuntimeCapabilityCatalogSession(this.outboundConns, sessionId);
64
+ });
57
65
  this.mcpServerLifecycleManager = new MCPServerLifecycleManager();
58
66
  this.templateConfigurationManager = new TemplateConfigurationManager();
59
67
  this.serverRegistry = new ServerRegistry(outboundConns, this.templateServerManager);
@@ -176,59 +184,91 @@ export class ServerManager {
176
184
  }
177
185
  }
178
186
  }
179
- async connectTransport(transport, sessionId, opts, context) {
180
- // Load configuration data
181
- // Always process templates when context is available to ensure context-specific rendering
187
+ retainLogicalTemplateSession(sessionId) {
188
+ return this.templateServerManager.retainLogicalTemplateSession(sessionId);
189
+ }
190
+ registerLogicalTemplateSessionCleanup(listener) {
191
+ return this.templateServerManager.registerLogicalTemplateSessionCleanup(listener);
192
+ }
193
+ /** Prepare contextual memberships and instructions before modern discovery. */
194
+ async prepareLogicalTemplateSession(sessionId, context, opts = {}) {
195
+ const previous = this.logicalTemplatePreparations.get(sessionId);
196
+ const preparation = (async () => {
197
+ if (previous)
198
+ await previous;
199
+ const release = this.retainLogicalTemplateSession(sessionId);
200
+ try {
201
+ this.logicalTemplateContexts.set(sessionId, { context, opts });
202
+ await this.prepareTemplateSession(sessionId, context, opts, 'ephemeral');
203
+ }
204
+ finally {
205
+ release();
206
+ }
207
+ })();
208
+ this.logicalTemplatePreparations.set(sessionId, preparation);
209
+ try {
210
+ await preparation;
211
+ }
212
+ finally {
213
+ if (this.logicalTemplatePreparations.get(sessionId) === preparation) {
214
+ this.logicalTemplatePreparations.delete(sessionId);
215
+ }
216
+ }
217
+ }
218
+ async prepareTemplateSession(sessionId, context, opts, lifecycle) {
182
219
  const configManager = ConfigManager.getInstance();
183
220
  if (!this.serverConfigData) {
184
- // First load - static servers only (templates processed separately per context)
185
221
  const { staticServers } = await configManager.loadConfigWithTemplates(undefined);
186
- this.serverConfigData = {
187
- mcpServers: staticServers,
188
- mcpTemplates: {}, // Will be populated per context
189
- };
190
- }
191
- // Always process templates with current context when context is available
192
- if (context) {
193
- const { templateServers } = await configManager.loadConfigWithTemplates(context);
194
- this.serverConfigData.mcpTemplates = templateServers;
195
- // Note: ConfigManager.loadConfigWithTemplates already handles conflict detection
196
- // by filtering out static servers that conflict with template servers
197
- }
198
- // Populate server registry with external servers
199
- if (this.serverConfigData.mcpServers) {
200
- for (const [name, config] of Object.entries(this.serverConfigData.mcpServers)) {
201
- if (!this.serverRegistry.has(name)) {
202
- this.serverRegistry.registerExternal(name, config);
203
- }
204
- }
222
+ this.serverConfigData = { mcpServers: staticServers, mcpTemplates: {} };
205
223
  }
206
- // If we have context, create template-based servers
207
- if (context && this.serverConfigData.mcpTemplates) {
208
- await this.templateServerManager.createTemplateBasedServers(sessionId, context, opts, this.serverConfigData, this.outboundConns, this.transports);
209
- // Populate server registry with template servers
210
- for (const [name, config] of Object.entries(this.serverConfigData.mcpTemplates)) {
211
- if (!this.serverRegistry.has(name)) {
212
- this.serverRegistry.registerTemplate(name, config);
213
- }
214
- }
215
- // CRITICAL: Refresh tool registry after template servers are added
216
- // This ensures template server tools are included in lazy loading mode
217
- if (this.lazyLoadingOrchestrator) {
218
- await this.lazyLoadingOrchestrator.refreshCapabilities();
219
- }
224
+ for (const [name, config] of Object.entries(this.serverConfigData.mcpServers ?? {})) {
225
+ if (!this.serverRegistry.has(name))
226
+ this.serverRegistry.registerExternal(name, config);
220
227
  }
221
- // IMPORTANT: Get filtered instructions AFTER template servers are created
222
- // This ensures template server instructions are included in the initialize response
228
+ if (!context)
229
+ return;
230
+ const { templateServers } = await configManager.loadConfigWithTemplates(context);
231
+ this.serverConfigData.mcpTemplates = templateServers;
232
+ // A retained logical membership owns its outbound adapter and continuation state.
233
+ // Configuration reload retires affected memberships before rebuilding them.
234
+ const pendingTemplates = lifecycle === 'ephemeral'
235
+ ? Object.fromEntries(Object.entries(templateServers).filter(([name]) => this.templateServerManager.getRenderedHashForSession(sessionId, name) === undefined))
236
+ : templateServers;
237
+ await this.templateServerManager.createTemplateBasedServers(sessionId, context, opts, { mcpTemplates: pendingTemplates }, this.outboundConns, this.transports, lifecycle);
238
+ for (const [name, config] of Object.entries(templateServers)) {
239
+ if (!this.serverRegistry.has(name))
240
+ this.serverRegistry.registerTemplate(name, config);
241
+ }
242
+ if (this.lazyLoadingOrchestrator)
243
+ await this.lazyLoadingOrchestrator.refreshCapabilities();
223
244
  this.instructionAggregator?.setRuntimeInstructionConfiguration(configManager.getRuntimeInstructionConfiguration());
224
- const filteredInstructions = this.instructionAggregator?.getFilteredInstructions(opts, this.outboundConns) || '';
225
- // Connect the transport
226
- await this.connectionManager.connectTransport(transport, sessionId, opts, context, filteredInstructions);
245
+ }
246
+ async connectTransport(transport, sessionId, opts, context) {
247
+ const templateContext = context ?? (opts.logicalTemplateSessionId ? opts.context : undefined);
248
+ if (opts.logicalTemplateSessionId && templateContext) {
249
+ await this.prepareLogicalTemplateSession(opts.logicalTemplateSessionId, templateContext, opts);
250
+ this.logicalBridgeSessions.add(sessionId);
251
+ }
252
+ else {
253
+ await this.prepareTemplateSession(sessionId, templateContext, opts, 'persistent');
254
+ }
255
+ this.instructionAggregator?.setRuntimeInstructionConfiguration(ConfigManager.getInstance().getRuntimeInstructionConfiguration());
256
+ const instructions = this.instructionAggregator?.getFilteredInstructions(opts, this.outboundConns) || '';
257
+ try {
258
+ await this.connectionManager.connectTransport(transport, sessionId, opts, templateContext, instructions);
259
+ }
260
+ catch (error) {
261
+ this.logicalBridgeSessions.delete(sessionId);
262
+ if (!opts.logicalTemplateSessionId) {
263
+ await this.templateServerManager.cleanupTemplateServers(sessionId, this.outboundConns, this.transports);
264
+ }
265
+ throw error;
266
+ }
227
267
  }
228
268
  async disconnectTransport(sessionId, forceClose = false) {
229
- // Clean up template-based servers for this client
230
- await this.templateServerManager.cleanupTemplateServers(sessionId, this.outboundConns, this.transports);
231
- // Disconnect the transport
269
+ if (!this.logicalBridgeSessions.delete(sessionId)) {
270
+ await this.templateServerManager.cleanupTemplateServers(sessionId, this.outboundConns, this.transports);
271
+ }
232
272
  await this.connectionManager.disconnectTransport(sessionId, forceClose);
233
273
  }
234
274
  getTransport(sessionId) {
@@ -274,15 +314,17 @@ export class ServerManager {
274
314
  try {
275
315
  for (const [sessionId, { names: affectedNames, lifecycle }] of templatesBySession) {
276
316
  const inboundConnection = this.connectionManager.getInboundConnections().get(sessionId);
277
- const context = inboundConnection?.context;
278
- if (!inboundConnection || !context)
317
+ const logicalSession = this.logicalTemplateContexts.get(sessionId);
318
+ const context = logicalSession?.context ?? inboundConnection?.context;
319
+ const opts = logicalSession?.opts ?? inboundConnection;
320
+ if (!opts || !context)
279
321
  continue;
280
322
  const { templateServers, errors } = await ConfigManager.getInstance().loadConfigWithTemplates(context);
281
323
  if (errors.length > 0) {
282
324
  logger.warn('serverManager.some.templates.could.not.be.rendered.during.runtime.scope.environment.reloa.8735ff3f', { templateCount: affectedNames.size, errorCount: errors.length });
283
325
  }
284
326
  const affectedTemplates = Object.fromEntries(Object.entries(templateServers).filter(([templateName]) => affectedNames.has(templateName)));
285
- await this.templateServerManager.createTemplateBasedServers(sessionId, context, inboundConnection, { mcpTemplates: affectedTemplates }, this.outboundConns, this.transports, lifecycle);
327
+ await this.templateServerManager.createTemplateBasedServers(sessionId, context, opts, { mcpTemplates: affectedTemplates }, this.outboundConns, this.transports, lifecycle);
286
328
  }
287
329
  }
288
330
  finally {
@@ -474,6 +516,9 @@ export class ServerManager {
474
516
  }
475
517
  await this.connectionManager.cleanup();
476
518
  await this.templateServerManager.shutdown();
519
+ this.logicalTemplateContexts.clear();
520
+ this.logicalBridgeSessions.clear();
521
+ this.logicalTemplatePreparations.clear();
477
522
  this.templateConfigurationManager.cleanup();
478
523
  this.filterCache.clear();
479
524
  }
@@ -1 +1 @@
1
- {"version":3,"file":"serverManager.js","sourceRoot":"","sources":["../../../../../src/sdk/legacy/server/runtime/serverManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverManager.js","sourceRoot":"","sources":["../../../../../src/sdk/legacy/server/runtime/serverManager.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,8 @@ export declare class TemplateServerManager {
40
40
  private instructionAggregator?;
41
41
  private ephemeralClients;
42
42
  private persistentSessions;
43
+ private logicalSessions;
44
+ private logicalSessionCleanup;
43
45
  private outboundConns?;
44
46
  private transports?;
45
47
  private templateConfigHashes;
@@ -66,10 +68,15 @@ export declare class TemplateServerManager {
66
68
  mcpTemplates?: Record<string, MCPServerParams>;
67
69
  }, // MCPServerConfiguration with templates
68
70
  outboundConns: OutboundConnections, transports: Record<string, Transport>, lifecycle?: TemplateClientLifecycle): Promise<void>;
71
+ private matchesPooledTemplateInstance;
69
72
  /**
70
73
  * Clean up template-based servers when a client disconnects
71
74
  */
72
75
  cleanupTemplateServers(sessionId: string, outboundConns: OutboundConnections, transports: Record<string, Transport>): Promise<void>;
76
+ registerLogicalTemplateSessionCleanup(listener: (sessionId: string) => void): () => void;
77
+ touchLogicalTemplateSession(sessionId: string): void;
78
+ retainLogicalTemplateSession(sessionId: string): () => void;
79
+ private expireLogicalSession;
73
80
  trackPersistentClient(sessionId: string): void;
74
81
  trackEphemeralClient(sessionId: string, templateName: string, instance: PooledClientInstance, outboundKey?: string): void;
75
82
  touchEphemeralClient(sessionId: string, templateName?: string): void;
@@ -95,6 +102,7 @@ export declare class TemplateServerManager {
95
102
  observeTemplateDefinitionRetirement(templateName: string, instanceIdentities: readonly string[]): Promise<TemplateDefinitionRuntimeImpact>;
96
103
  private countRemainingTemplateInstances;
97
104
  restartTemplateInstance(instance: PooledClientInstance): Promise<BackendSupervisionSnapshot>;
105
+ private isCurrentSupervisionPublication;
98
106
  private publishTemplateSupervision;
99
107
  private refreshTemplateInstructions;
100
108
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"templateServerManager.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/legacy/server/runtime/templateServerManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templateServerManager.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/legacy/server/runtime/templateServerManager.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { isDeepStrictEqual } from 'node:util';
1
2
  import { isOperatorDisabledTemplateDefinition } from '../../../../config/configuredServerTargets.js';
2
3
  import { getRuntimeScopeEnvironment, sanitizeRuntimeScopeError } from '../../../../config/runtimeScopeEnv.js';
3
4
  import { createRuntimeTargetFingerprint } from '../../../../config/runtimeTargetFingerprint.js';
@@ -12,7 +13,7 @@ import { createRenderedIdentity, createSessionIdentity, resolveTemplateIdentityM
12
13
  import { cleanupExpiredEphemeralClients, cleanupTemplateServersForSession, } from '../../../../core/server/templateServerCleanup.js';
13
14
  import { ClientStatus } from '../../../../core/types/client.js';
14
15
  import logger, { debugIf } from '../../../../logger/logger.js';
15
- import { createLegacyOutboundConnection, getLegacyClient, } from '../../client/runtime/legacyOutboundConnection.js';
16
+ import { createLegacyOutboundConnection, getLegacyClient, getLegacyTransport, snapshotSupervision, } from '../../client/runtime/legacyOutboundConnection.js';
16
17
  /**
17
18
  * Manages template-based server instances and client pools
18
19
  */
@@ -23,6 +24,8 @@ export class TemplateServerManager {
23
24
  instructionAggregator;
24
25
  ephemeralClients = new Map();
25
26
  persistentSessions = new Set();
27
+ logicalSessions = new Map();
28
+ logicalSessionCleanup = new Set();
26
29
  outboundConns;
27
30
  transports;
28
31
  templateConfigHashes = new Map();
@@ -104,14 +107,17 @@ export class TemplateServerManager {
104
107
  : createRenderedIdentity(templateName, renderedHash));
105
108
  instance.outboundKeys.add(outboundKey);
106
109
  const instructions = instance.client.getInstructions();
107
- outboundConns.set(outboundKey, createLegacyOutboundConnection({
108
- name: templateName, // Keep clean name for tool namespacing (serena_1mcp_*)
109
- transport: instance.transport,
110
- client: instance.client,
111
- status: ClientStatus.Connected, // Template servers should be connected
112
- capabilities: instance.client.getServerCapabilities?.(),
113
- instructions,
114
- }));
110
+ // Joining a pooled instance must preserve its adapter and continuation ownership.
111
+ if (!this.matchesPooledTemplateInstance(outboundConns.get(outboundKey), instance)) {
112
+ outboundConns.set(outboundKey, createLegacyOutboundConnection({
113
+ name: templateName, // Keep clean name for tool namespacing (serena_1mcp_*)
114
+ transport: instance.transport,
115
+ client: instance.client,
116
+ status: ClientStatus.Connected, // Template servers should be connected
117
+ capabilities: instance.client.getServerCapabilities?.(),
118
+ instructions,
119
+ }));
120
+ }
115
121
  registerCapabilityPaginationNotifications(outboundConns, outboundConns.get(outboundKey));
116
122
  if (instance.supervision) {
117
123
  this.publishTemplateSupervision(instance, instance.supervision);
@@ -199,12 +205,20 @@ export class TemplateServerManager {
199
205
  }
200
206
  }
201
207
  }
208
+ matchesPooledTemplateInstance(connection, instance) {
209
+ if (!connection)
210
+ return false;
211
+ if (getLegacyClient(connection) !== instance.client)
212
+ return false;
213
+ return getLegacyTransport(connection) === instance.transport;
214
+ }
202
215
  /**
203
216
  * Clean up template-based servers when a client disconnects
204
217
  */
205
218
  async cleanupTemplateServers(sessionId, outboundConns, transports) {
206
219
  this.outboundConns = outboundConns;
207
220
  this.transports = transports;
221
+ this.expireLogicalSession(sessionId);
208
222
  await cleanupTemplateServersForSession(sessionId, outboundConns, transports, {
209
223
  clientInstancePool: this.clientInstancePool,
210
224
  clientTemplateTracker: this.clientTemplateTracker,
@@ -213,6 +227,38 @@ export class TemplateServerManager {
213
227
  persistentSessions: this.persistentSessions,
214
228
  });
215
229
  }
230
+ registerLogicalTemplateSessionCleanup(listener) {
231
+ this.logicalSessionCleanup.add(listener);
232
+ return () => {
233
+ this.logicalSessionCleanup.delete(listener);
234
+ };
235
+ }
236
+ touchLogicalTemplateSession(sessionId) {
237
+ const session = this.logicalSessions.get(sessionId) ?? { lastUsedAt: Date.now(), retainCount: 0 };
238
+ session.lastUsedAt = Date.now();
239
+ this.logicalSessions.set(sessionId, session);
240
+ this.touchEphemeralClient(sessionId);
241
+ }
242
+ retainLogicalTemplateSession(sessionId) {
243
+ this.touchLogicalTemplateSession(sessionId);
244
+ const session = this.logicalSessions.get(sessionId);
245
+ session.retainCount++;
246
+ let released = false;
247
+ return () => {
248
+ if (released)
249
+ return;
250
+ released = true;
251
+ session.retainCount--;
252
+ session.lastUsedAt = Date.now();
253
+ this.touchEphemeralClient(sessionId);
254
+ };
255
+ }
256
+ expireLogicalSession(sessionId) {
257
+ if (!this.logicalSessions.delete(sessionId))
258
+ return;
259
+ for (const listener of this.logicalSessionCleanup)
260
+ listener(sessionId);
261
+ }
216
262
  trackPersistentClient(sessionId) {
217
263
  this.persistentSessions.add(sessionId);
218
264
  this.ephemeralClients.delete(sessionId);
@@ -326,6 +372,13 @@ export class TemplateServerManager {
326
372
  restartTemplateInstance(instance) {
327
373
  return this.clientInstancePool.restartInstance(instance);
328
374
  }
375
+ isCurrentSupervisionPublication(connection, instance, status, snapshot) {
376
+ if (!this.matchesPooledTemplateInstance(connection, instance))
377
+ return false;
378
+ if (connection.status !== status)
379
+ return false;
380
+ return isDeepStrictEqual(connection.supervision, snapshotSupervision(snapshot));
381
+ }
329
382
  publishTemplateSupervision(instance, snapshot) {
330
383
  instance.supervision = snapshot;
331
384
  for (const outboundKey of instance.outboundKeys) {
@@ -339,17 +392,19 @@ export class TemplateServerManager {
339
392
  : snapshot.state === 'stopped'
340
393
  ? ClientStatus.Disconnected
341
394
  : ClientStatus.Restarting;
342
- const replacement = createLegacyOutboundConnection({
343
- name: connection.name,
344
- client: instance.client,
345
- transport: instance.transport,
346
- status,
347
- capabilities: connected ? instance.client.getServerCapabilities?.() : undefined,
348
- instructions: connected ? instance.client.getInstructions?.() : undefined,
349
- supervision: snapshot,
350
- });
351
- this.outboundConns?.set(outboundKey, replacement);
352
- registerCapabilityPaginationNotifications(this.outboundConns, replacement);
395
+ if (!this.isCurrentSupervisionPublication(connection, instance, status, snapshot)) {
396
+ const replacement = createLegacyOutboundConnection({
397
+ name: connection.name,
398
+ client: instance.client,
399
+ transport: instance.transport,
400
+ status,
401
+ capabilities: connected ? instance.client.getServerCapabilities?.() : undefined,
402
+ instructions: connected ? instance.client.getInstructions?.() : undefined,
403
+ supervision: snapshot,
404
+ });
405
+ this.outboundConns?.set(outboundKey, replacement);
406
+ registerCapabilityPaginationNotifications(this.outboundConns, replacement);
407
+ }
353
408
  }
354
409
  ClientManager.current?.publishBackendSupervisionState(outboundKey, snapshot);
355
410
  }
@@ -371,13 +426,35 @@ export class TemplateServerManager {
371
426
  * Force cleanup of idle template instances
372
427
  */
373
428
  async cleanupIdleInstances(outboundConns = this.outboundConns ?? new Map(), transports = this.transports ?? {}) {
429
+ const sessionsWithMembership = new Set(this.ephemeralClients.keys());
430
+ // Active requests and subscriptions retain their contextual membership.
431
+ for (const [sessionId, session] of this.logicalSessions) {
432
+ if (session.retainCount > 0)
433
+ this.touchEphemeralClient(sessionId);
434
+ }
374
435
  await cleanupExpiredEphemeralClients(outboundConns, transports, {
375
436
  clientInstancePool: this.clientInstancePool,
376
437
  clientTemplateTracker: this.clientTemplateTracker,
377
438
  sessionToRenderedHash: this.sessionToRenderedHash,
378
439
  ephemeralClients: this.ephemeralClients,
379
- persistentSessions: this.persistentSessions,
440
+ persistentSessions: new Set([
441
+ ...this.persistentSessions,
442
+ ...Array.from(this.logicalSessions)
443
+ .filter(([, session]) => session.retainCount > 0)
444
+ .map(([sessionId]) => sessionId),
445
+ ]),
380
446
  });
447
+ for (const [sessionId, session] of this.logicalSessions) {
448
+ if (session.retainCount > 0)
449
+ continue;
450
+ if (this.ephemeralClients.has(sessionId))
451
+ continue;
452
+ if (!sessionsWithMembership.has(sessionId)) {
453
+ if (Date.now() - session.lastUsedAt <= this.poolPolicy.idleTimeoutMs)
454
+ continue;
455
+ }
456
+ this.expireLogicalSession(sessionId);
457
+ }
381
458
  // Get all instances from the pool
382
459
  const allInstances = this.clientInstancePool.getAllInstances();
383
460
  const instancesToCleanup = [];
@@ -589,6 +666,9 @@ export class TemplateServerManager {
589
666
  clearInterval(this.cleanupTimer);
590
667
  this.cleanupTimer = undefined;
591
668
  }
669
+ for (const sessionId of this.logicalSessions.keys())
670
+ this.expireLogicalSession(sessionId);
671
+ this.logicalSessionCleanup.clear();
592
672
  this.ephemeralClients.clear();
593
673
  this.persistentSessions.clear();
594
674
  this.sessionToRenderedHash.clear();