@qwen-code/channel-base 0.24.6 → 0.24.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.
@@ -1,8 +1,9 @@
1
- import type { SessionScope, SessionTarget } from './types.js';
1
+ import type { SessionRotationConfig, SessionScope, SessionTarget } from './types.js';
2
2
  import type { ChannelAgentBridge } from './ChannelAgentBridge.js';
3
3
  interface ResolveOptions {
4
4
  routingThreadId?: string;
5
5
  routeKey?: string;
6
+ holdForTurn?: boolean;
6
7
  }
7
8
  export type SessionRecoveryMode = 'eager' | 'lazy';
8
9
  export type ManagedSessionIsolation = 'shared' | 'worktree';
@@ -24,6 +25,12 @@ export declare class SessionRouter {
24
25
  private toSession;
25
26
  private toTarget;
26
27
  private toCwd;
28
+ private toTurns;
29
+ private toStartedAt;
30
+ private routingLeases;
31
+ private channelRotations;
32
+ private rotationActivity;
33
+ private rotationListeners;
27
34
  private toManagedMeta;
28
35
  private creatingSessions;
29
36
  private sessionLoadWindows;
@@ -38,12 +45,21 @@ export declare class SessionRouter {
38
45
  private channelApprovalModes;
39
46
  private readonly channelsWithoutLoops;
40
47
  private persistPath;
48
+ private restoreDepth;
49
+ private persistPending;
41
50
  private readonly recoveryMode;
42
51
  constructor(bridge: ChannelAgentBridge, defaultCwd: string, scope?: SessionScope, persistPath?: string, options?: SessionRouterOptions);
43
52
  /** Replace the bridge instance (used after crash recovery restart). */
44
53
  setBridge(bridge: ChannelAgentBridge): void;
45
54
  /** Set scope override for a specific channel. */
46
55
  setChannelScope(channelName: string, scope: SessionScope): void;
56
+ setChannelRotation(channelName: string, rotation: SessionRotationConfig | undefined): void;
57
+ setRotationActivityChecker(channelName: string, checker: (sessionId: string) => boolean): void;
58
+ setRotationListener(channelName: string, listener: (sessionId: string, target: SessionTarget) => void): void;
59
+ releaseRoutingLease(sessionId: string): void;
60
+ private shouldRotate;
61
+ private recordRoutedUse;
62
+ private rotateRoute;
47
63
  setChannelApprovalMode(channelName: string, approvalMode: string | undefined): void;
48
64
  setChannelLoopsEnabled(channelName: string, enabled: boolean): void;
49
65
  private routingKey;
@@ -117,12 +133,14 @@ export declare class SessionRouter {
117
133
  restored: number;
118
134
  failed: number;
119
135
  }>;
136
+ private restoreSessionsInner;
120
137
  dispose(): void;
121
138
  /** Clear in-memory state and delete persist file. Used on clean shutdown. */
122
139
  clearAll(): void;
123
140
  private readPersistedEntries;
124
141
  private isPersistedEntry;
125
142
  private persist;
143
+ private restoreRotationState;
126
144
  private createLiveSession;
127
145
  private beginSessionLoad;
128
146
  private createSessionOperation;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRouter.d.ts","sourceRoot":"","sources":["../src/SessionRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionRouter.d.ts","sourceRoot":"","sources":["../src/SessionRouter.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,12 @@ export class SessionRouter {
61
61
  toSession = new Map(); // routing key → session ID
62
62
  toTarget = new Map(); // session ID → target
63
63
  toCwd = new Map(); // session ID → cwd
64
+ toTurns = new Map();
65
+ toStartedAt = new Map();
66
+ routingLeases = new Map();
67
+ channelRotations = new Map();
68
+ rotationActivity = new Map();
69
+ rotationListeners = new Map();
64
70
  toManagedMeta = new Map();
65
71
  creatingSessions = new Map();
66
72
  sessionLoadWindows = new Set();
@@ -75,6 +81,8 @@ export class SessionRouter {
75
81
  channelApprovalModes = new Map();
76
82
  channelsWithoutLoops = new Set();
77
83
  persistPath;
84
+ restoreDepth = 0;
85
+ persistPending = false;
78
86
  recoveryMode;
79
87
  constructor(bridge, defaultCwd, scope = 'user', persistPath, options = {}) {
80
88
  this.bridge = bridge;
@@ -87,12 +95,91 @@ export class SessionRouter {
87
95
  setBridge(bridge) {
88
96
  this.bridge = bridge;
89
97
  this.liveSessionIds.clear();
98
+ this.routingLeases.clear();
90
99
  this.staleBridgeBindings.clear();
91
100
  }
92
101
  /** Set scope override for a specific channel. */
93
102
  setChannelScope(channelName, scope) {
94
103
  this.channelScopes.set(channelName, scope);
95
104
  }
105
+ setChannelRotation(channelName, rotation) {
106
+ const maxTurns = Number.isSafeInteger(rotation?.maxTurns) && (rotation?.maxTurns ?? 0) > 0
107
+ ? rotation?.maxTurns
108
+ : undefined;
109
+ const maxAgeHours = typeof rotation?.maxAgeHours === 'number' &&
110
+ Number.isFinite(rotation.maxAgeHours) &&
111
+ rotation.maxAgeHours > 0
112
+ ? rotation.maxAgeHours
113
+ : undefined;
114
+ if (maxTurns === undefined && maxAgeHours === undefined) {
115
+ this.channelRotations.delete(channelName);
116
+ this.rotationActivity.delete(channelName);
117
+ this.rotationListeners.delete(channelName);
118
+ }
119
+ else {
120
+ this.channelRotations.set(channelName, { maxTurns, maxAgeHours });
121
+ }
122
+ }
123
+ setRotationActivityChecker(channelName, checker) {
124
+ this.rotationActivity.set(channelName, checker);
125
+ }
126
+ setRotationListener(channelName, listener) {
127
+ this.rotationListeners.set(channelName, listener);
128
+ }
129
+ releaseRoutingLease(sessionId) {
130
+ const count = this.routingLeases.get(sessionId);
131
+ if (count === undefined)
132
+ return;
133
+ if (count <= 1)
134
+ this.routingLeases.delete(sessionId);
135
+ else
136
+ this.routingLeases.set(sessionId, count - 1);
137
+ }
138
+ shouldRotate(channelName, sessionId) {
139
+ const rotation = this.channelRotations.get(channelName);
140
+ if (!rotation)
141
+ return false;
142
+ const startedAt = this.toStartedAt.get(sessionId);
143
+ return ((rotation.maxTurns !== undefined &&
144
+ (this.toTurns.get(sessionId) ?? 0) >= rotation.maxTurns) ||
145
+ (rotation.maxAgeHours !== undefined &&
146
+ startedAt !== undefined &&
147
+ Date.now() - startedAt >= rotation.maxAgeHours * 60 * 60 * 1000));
148
+ }
149
+ recordRoutedUse(channelName, sessionId, holdForTurn) {
150
+ const rotation = this.channelRotations.get(channelName);
151
+ if (!rotation)
152
+ return;
153
+ if (holdForTurn) {
154
+ this.routingLeases.set(sessionId, (this.routingLeases.get(sessionId) ?? 0) + 1);
155
+ }
156
+ let changed = false;
157
+ if (rotation.maxAgeHours !== undefined &&
158
+ !this.toStartedAt.has(sessionId)) {
159
+ this.toStartedAt.set(sessionId, Date.now());
160
+ changed = true;
161
+ }
162
+ if (rotation.maxTurns !== undefined) {
163
+ this.toTurns.set(sessionId, (this.toTurns.get(sessionId) ?? 0) + 1);
164
+ changed = true;
165
+ }
166
+ if (changed) {
167
+ if (this.restoreDepth > 0)
168
+ this.persistPending = true;
169
+ else
170
+ this.persist();
171
+ }
172
+ }
173
+ rotateRoute(key, sessionId, channelName, target) {
174
+ try {
175
+ this.rotationListeners.get(channelName)?.(sessionId, target);
176
+ }
177
+ catch (error) {
178
+ process.stderr.write(`[SessionRouter] Rotation cleanup failed for ${sanitizeLogText(sessionId, 128)}: ${sanitizeLogText(error instanceof Error ? error.message : String(error), 512)}\n`);
179
+ }
180
+ this.deleteByKey(key);
181
+ this.persist();
182
+ }
96
183
  setChannelApprovalMode(channelName, approvalMode) {
97
184
  if (approvalMode) {
98
185
  this.channelApprovalModes.set(channelName, approvalMode);
@@ -155,9 +242,22 @@ export class SessionRouter {
155
242
  };
156
243
  let failedWaits = 0;
157
244
  for (;;) {
158
- const existing = this.toSession.get(key);
245
+ let existing = this.toSession.get(key);
246
+ let retiring;
247
+ if (existing &&
248
+ this.restoreDepth === 0 &&
249
+ !this.creatingSessions.has(key) &&
250
+ !this.toManagedMeta.has(existing) &&
251
+ (this.routingLeases.get(existing) ?? 0) === 0 &&
252
+ !this.rotationActivity.get(channelName)?.(existing) &&
253
+ this.shouldRotate(channelName, existing)) {
254
+ retiring = { sessionId: existing, bridge: this.bridge };
255
+ this.rotateRoute(key, existing, channelName, input);
256
+ existing = undefined;
257
+ }
159
258
  if (existing && this.isLive(existing)) {
160
259
  this.promoteTargetToGroup(existing, isGroup);
260
+ this.recordRoutedUse(channelName, existing, options?.holdForTurn);
161
261
  return existing;
162
262
  }
163
263
  const creating = this.creatingSessions.get(key);
@@ -172,6 +272,7 @@ export class SessionRouter {
172
272
  throw error;
173
273
  }
174
274
  this.promoteTargetToGroup(sessionId, isGroup);
275
+ this.recordRoutedUse(channelName, sessionId, options?.holdForTurn);
175
276
  return sessionId;
176
277
  }
177
278
  catch (error) {
@@ -197,9 +298,13 @@ export class SessionRouter {
197
298
  ...(input.messageRoute !== undefined
198
299
  ? { messageRoute: input.messageRoute }
199
300
  : {}),
200
- }, (currentOperation) => existing
201
- ? this.loadOrReplaceSession(key, existing, input, currentOperation)
202
- : this.createAndStoreSession(key, input, currentOperation));
301
+ }, (currentOperation) => retiring
302
+ ? Promise.resolve(retiring.bridge.discardSession?.(retiring.sessionId))
303
+ .catch(() => undefined)
304
+ .then(() => this.createAndStoreSession(key, input, currentOperation))
305
+ : existing
306
+ ? this.loadOrReplaceSession(key, existing, input, currentOperation)
307
+ : this.createAndStoreSession(key, input, currentOperation));
203
308
  this.creatingSessions.set(key, operation);
204
309
  try {
205
310
  const sessionId = await operation.promise;
@@ -211,6 +316,7 @@ export class SessionRouter {
211
316
  throw error;
212
317
  }
213
318
  this.promoteTargetToGroup(sessionId, isGroup);
319
+ this.recordRoutedUse(channelName, sessionId, options?.holdForTurn);
214
320
  return sessionId;
215
321
  }
216
322
  finally {
@@ -279,11 +385,17 @@ export class SessionRouter {
279
385
  }
280
386
  if (loadedSessionId !== savedSessionId) {
281
387
  const target = this.toTarget.get(savedSessionId);
388
+ const turns = this.toTurns.get(savedSessionId);
389
+ const startedAt = this.toStartedAt.get(savedSessionId);
282
390
  this.deleteByKey(key);
283
391
  this.toSession.set(key, loadedSessionId);
284
392
  if (target)
285
393
  this.toTarget.set(loadedSessionId, target);
286
394
  this.toCwd.set(loadedSessionId, savedCwd);
395
+ if (turns !== undefined)
396
+ this.toTurns.set(loadedSessionId, turns);
397
+ if (startedAt !== undefined)
398
+ this.toStartedAt.set(loadedSessionId, startedAt);
287
399
  this.persist();
288
400
  }
289
401
  this.liveSessionIds.add(loadedSessionId);
@@ -638,6 +750,9 @@ export class SessionRouter {
638
750
  changed = this.toCwd.delete(sessionId) || changed;
639
751
  changed = this.toManagedMeta.delete(sessionId) || changed;
640
752
  changed = this.liveSessionIds.delete(sessionId) || changed;
753
+ this.toTurns.delete(sessionId);
754
+ this.toStartedAt.delete(sessionId);
755
+ this.routingLeases.delete(sessionId);
641
756
  this.staleBridgeBindings.delete(sessionId);
642
757
  if (changed)
643
758
  this.persist();
@@ -718,6 +833,9 @@ export class SessionRouter {
718
833
  if (this.toManagedMeta.delete(sessionId)) {
719
834
  removed = true;
720
835
  }
836
+ this.toTurns.delete(sessionId);
837
+ this.toStartedAt.delete(sessionId);
838
+ this.routingLeases.delete(sessionId);
721
839
  this.liveSessionIds.delete(sessionId);
722
840
  if (!removed && this.sessionLoadWindows.size > 0) {
723
841
  for (const loadWindow of this.sessionLoadWindows) {
@@ -749,6 +867,9 @@ export class SessionRouter {
749
867
  this.toCwd.delete(sessionId);
750
868
  this.toManagedMeta.delete(sessionId);
751
869
  this.liveSessionIds.delete(sessionId);
870
+ this.toTurns.delete(sessionId);
871
+ this.toStartedAt.delete(sessionId);
872
+ this.routingLeases.delete(sessionId);
752
873
  return sessionId;
753
874
  }
754
875
  promoteTargetToGroup(sessionId, isGroup) {
@@ -784,6 +905,7 @@ export class SessionRouter {
784
905
  this.toSession.set(key, entry.sessionId);
785
906
  this.toTarget.set(entry.sessionId, entry.target);
786
907
  this.toCwd.set(entry.sessionId, entry.cwd);
908
+ this.restoreRotationState(entry.sessionId, entry);
787
909
  if (entry.isolation === 'worktree' && entry.workspaceCwd !== undefined) {
788
910
  this.toManagedMeta.set(entry.sessionId, {
789
911
  isolation: 'worktree',
@@ -802,6 +924,19 @@ export class SessionRouter {
802
924
  * Failed loads are dropped (new session on next message).
803
925
  */
804
926
  async restoreSessions() {
927
+ this.restoreDepth++;
928
+ try {
929
+ return await this.restoreSessionsInner();
930
+ }
931
+ finally {
932
+ this.restoreDepth--;
933
+ if (this.restoreDepth === 0 && this.persistPending) {
934
+ this.persistPending = false;
935
+ this.persist();
936
+ }
937
+ }
938
+ }
939
+ async restoreSessionsInner() {
805
940
  const persisted = this.readPersistedEntries();
806
941
  if (!persisted)
807
942
  return { restored: 0, failed: 0 };
@@ -869,6 +1004,7 @@ export class SessionRouter {
869
1004
  throw error;
870
1005
  }
871
1006
  this.toSession.set(key, managed.sessionId);
1007
+ this.restoreRotationState(managed.sessionId, entry);
872
1008
  this.toManagedMeta.set(managed.sessionId, {
873
1009
  isolation: 'worktree',
874
1010
  workspaceCwd: entry.workspaceCwd,
@@ -898,6 +1034,7 @@ export class SessionRouter {
898
1034
  this.toTarget.set(sessionId, entry.target);
899
1035
  this.toCwd.set(sessionId, entry.cwd);
900
1036
  this.liveSessionIds.add(sessionId);
1037
+ this.restoreRotationState(sessionId, entry);
901
1038
  reservation.resolve(sessionId);
902
1039
  if (sessionId !== entry.sessionId) {
903
1040
  changed = true;
@@ -931,12 +1068,16 @@ export class SessionRouter {
931
1068
  }
932
1069
  dispose() {
933
1070
  this.lifecycleGeneration++;
1071
+ this.persistPending = false;
934
1072
  for (const operation of this.creatingSessions.values()) {
935
1073
  this.invalidateOperation(operation);
936
1074
  }
937
1075
  this.toSession.clear();
938
1076
  this.toTarget.clear();
939
1077
  this.toCwd.clear();
1078
+ this.toTurns.clear();
1079
+ this.toStartedAt.clear();
1080
+ this.routingLeases.clear();
940
1081
  this.toManagedMeta.clear();
941
1082
  this.creatingSessions.clear();
942
1083
  this.sessionLoadWindows.clear();
@@ -1010,6 +1151,13 @@ export class SessionRouter {
1010
1151
  entry['sessionId'].length > 0 &&
1011
1152
  typeof entry['cwd'] === 'string' &&
1012
1153
  entry['cwd'].length > 0 &&
1154
+ (entry['turns'] === undefined ||
1155
+ (Number.isSafeInteger(entry['turns']) &&
1156
+ Number(entry['turns']) >= 0)) &&
1157
+ (entry['startedAt'] === undefined ||
1158
+ (typeof entry['startedAt'] === 'number' &&
1159
+ Number.isFinite(entry['startedAt']) &&
1160
+ entry['startedAt'] >= 0)) &&
1013
1161
  typeof typedTarget['channelName'] === 'string' &&
1014
1162
  typeof typedTarget['senderId'] === 'string' &&
1015
1163
  typeof typedTarget['chatId'] === 'string' &&
@@ -1039,6 +1187,12 @@ export class SessionRouter {
1039
1187
  sessionId,
1040
1188
  target,
1041
1189
  cwd: this.toCwd.get(sessionId) ?? this.defaultCwd,
1190
+ ...(this.toTurns.has(sessionId)
1191
+ ? { turns: this.toTurns.get(sessionId) }
1192
+ : {}),
1193
+ ...(this.toStartedAt.has(sessionId)
1194
+ ? { startedAt: this.toStartedAt.get(sessionId) }
1195
+ : {}),
1042
1196
  ...(this.toManagedMeta.get(sessionId) ?? {}),
1043
1197
  };
1044
1198
  }
@@ -1076,6 +1230,12 @@ export class SessionRouter {
1076
1230
  }
1077
1231
  }
1078
1232
  }
1233
+ restoreRotationState(sessionId, entry) {
1234
+ if (entry.turns !== undefined)
1235
+ this.toTurns.set(sessionId, entry.turns);
1236
+ if (entry.startedAt !== undefined)
1237
+ this.toStartedAt.set(sessionId, entry.startedAt);
1238
+ }
1079
1239
  async createLiveSession(cwd, loadWindow, routingKey, options, operation) {
1080
1240
  const maxAttempts = 2;
1081
1241
  let lastDeadSessionId;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRouter.js","sourceRoot":"","sources":["../src/SessionRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionRouter.js","sourceRoot":"","sources":["../src/SessionRouter.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -42,6 +42,10 @@ export interface GroupConfig {
42
42
  /** Members allowed to speak when `senders` is `allowlist`. */
43
43
  allowedUsers?: string[];
44
44
  }
45
+ export interface SessionRotationConfig {
46
+ maxTurns?: number;
47
+ maxAgeHours?: number;
48
+ }
45
49
  export interface ChannelConfig {
46
50
  type: ChannelType;
47
51
  token: string;
@@ -53,6 +57,7 @@ export interface ChannelConfig {
53
57
  allowedUsers: string[];
54
58
  /** Channel routing scope. `thread` is retained for existing configurations only. */
55
59
  sessionScope: SessionScope;
60
+ sessionRotation?: SessionRotationConfig;
56
61
  /** Retain an owner-scoped catalog of named sessions in daemon-managed mode. */
57
62
  multiSession?: boolean;
58
63
  cwd: string;