devchain-cli 0.23.1 → 0.23.2

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 (21) hide show
  1. package/dist/server/modules/session-reader/controllers/session-reader.controller.d.ts +21 -1
  2. package/dist/server/modules/session-reader/controllers/session-reader.controller.js +49 -3
  3. package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -1
  4. package/dist/server/modules/session-reader/data/pricing.json +2041 -168
  5. package/dist/server/modules/session-reader/services/session-cache.service.d.ts +7 -0
  6. package/dist/server/modules/session-reader/services/session-cache.service.js +83 -12
  7. package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
  8. package/dist/server/modules/session-reader/services/session-reader.service.d.ts +15 -1
  9. package/dist/server/modules/session-reader/services/session-reader.service.js +70 -1
  10. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
  11. package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +4 -3
  12. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +186 -146
  13. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  14. package/dist/server/tsconfig.tsbuildinfo +1 -1
  15. package/dist/server/ui/assets/{ExternalRichEditor-FwCAalXO.js → ExternalRichEditor-BnzvJiFh.js} +1 -1
  16. package/dist/server/ui/assets/{ReviewDetailPage-D8DVpsJm.js → ReviewDetailPage-B6RB_uEX.js} +1 -1
  17. package/dist/server/ui/assets/{ReviewsPage-DcWpRFbm.js → ReviewsPage-6iPnGQ1T.js} +1 -1
  18. package/dist/server/ui/assets/{index-Cwe7LxcW.js → index-DgajOeEy.js} +242 -242
  19. package/dist/server/ui/assets/{useReviewSubscription-CYoSg-88.js → useReviewSubscription-BfcypysB.js} +1 -1
  20. package/dist/server/ui/index.html +1 -1
  21. package/package.json +4 -1
@@ -56,6 +56,8 @@ const transcript_cursor_1 = require("./transcript-cursor");
56
56
  const transcript_truncation_1 = require("./transcript-truncation");
57
57
  const transcript_serialization_1 = require("./transcript-serialization");
58
58
  const DEBOUNCE_MS = 100;
59
+ const COSTLY_REFRESH_MS = 50;
60
+ const FILE_REFRESH_COOLDOWN_MS = 2_000;
59
61
  const STAT_POLL_INTERVAL_MS = 3_000;
60
62
  const MAX_INCREMENTAL_BYTES = 10 * 1024 * 1024;
61
63
  function requiresCanonicalRefetch(sourceChangeKind) {
@@ -82,12 +84,14 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
82
84
  events;
83
85
  logger = new common_1.Logger(TranscriptWatcherService_1.name);
84
86
  watchers = new Map();
87
+ endingWatchers = new Map();
85
88
  constructor(cacheService, adapterFactory, events) {
86
89
  this.cacheService = cacheService;
87
90
  this.adapterFactory = adapterFactory;
88
91
  this.events = events;
89
92
  }
90
93
  onModuleDestroy() {
94
+ this.endingWatchers.clear();
91
95
  const sessionIds = [...this.watchers.keys()];
92
96
  for (const sessionId of sessionIds) {
93
97
  this.cleanupResources(sessionId);
@@ -114,106 +118,102 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
114
118
  }
115
119
  const adapter = this.adapterFactory.getAdapter(providerName);
116
120
  const sourceKind = adapter?.sourceKind ?? 'file';
121
+ if (sourceKind === 'db' && !providerSessionId) {
122
+ this.logger.warn({ sessionId, filePath, providerName }, 'DB-backed watcher requires providerSessionId — skipping watcher');
123
+ return;
124
+ }
125
+ const sourceRef = sourceKind === 'db' ? { filePath, providerName, providerSessionId, kind: 'db' } : undefined;
126
+ const state = {
127
+ sessionId,
128
+ filePath,
129
+ providerName,
130
+ sourceKind,
131
+ sourceRef,
132
+ watchPath: sourceKind === 'db' ? `${filePath}-wal` : filePath,
133
+ fsWatcher: null,
134
+ pollTimer: null,
135
+ debounceTimer: null,
136
+ active: true,
137
+ pending: false,
138
+ nextEligibleAt: 0,
139
+ lastDev: 0,
140
+ lastIno: 0,
141
+ lastSize: 0,
142
+ replacementPending: false,
143
+ pendingCreation: false,
144
+ lastMessageCount: 0,
145
+ lastChunkCount: 0,
146
+ lastSourceVersion: 0,
147
+ lastMetrics: { totalTokens: 0, inputTokens: 0, outputTokens: 0, costUsd: 0, messageCount: 0 },
148
+ lastSummaryMetrics: null,
149
+ };
150
+ this.endingWatchers.delete(sessionId);
151
+ this.watchers.set(sessionId, state);
117
152
  let stat = null;
118
153
  try {
119
154
  stat = await fsPromises.stat(filePath);
120
155
  }
121
156
  catch (error) {
157
+ if (!this.isCurrent(state))
158
+ return;
122
159
  const fsCode = error.code;
123
160
  if (sourceKind !== 'file' || fsCode !== 'ENOENT') {
124
161
  this.logger.warn({ sessionId, filePath, fsCode }, 'Cannot stat transcript file — skipping watcher');
162
+ this.cleanupResources(sessionId);
125
163
  return;
126
164
  }
127
- this.logger.debug({ sessionId, filePath }, 'Transcript file not created yet — waiting with stat poll');
165
+ state.pendingCreation = true;
128
166
  }
129
- let sourceRef;
130
- if (sourceKind === 'db') {
131
- if (!providerSessionId) {
132
- this.logger.warn({ sessionId, filePath, providerName }, 'DB-backed watcher requires providerSessionId — skipping watcher');
133
- return;
134
- }
135
- sourceRef = { filePath, providerName, providerSessionId, kind: 'db' };
136
- }
137
- const watchPath = sourceKind === 'db' ? `${filePath}-wal` : filePath;
138
- let fsWatcher = null;
167
+ if (!this.isCurrent(state))
168
+ return;
169
+ state.lastDev = stat?.dev ?? 0;
170
+ state.lastIno = stat?.ino ?? 0;
171
+ state.lastSize = stat?.size ?? 0;
172
+ state.lastSourceVersion = stat?.size ?? 0;
139
173
  if (stat) {
140
174
  try {
141
- fsWatcher = this.createFsWatcher(sessionId, watchPath);
175
+ state.fsWatcher = this.createFsWatcher(state);
142
176
  }
143
177
  catch {
144
- this.logger.warn({ sessionId, watchPath }, 'fs.watch failed to start — using poll only (expected for not-yet-created -wal)');
178
+ this.logger.warn({ sessionId, watchPath: state.watchPath }, 'fs.watch failed to start — using poll only (expected for not-yet-created -wal)');
145
179
  }
146
180
  }
147
- let lastMessageCount = 0;
148
- let lastChunkCount = 0;
149
- let lastSourceVersion = stat?.size ?? 0;
150
- let lastFreshnessToken;
151
- let lastMetrics = {
152
- totalTokens: 0,
153
- inputTokens: 0,
154
- outputTokens: 0,
155
- costUsd: 0,
156
- messageCount: 0,
157
- };
158
- let lastSummaryMetrics = null;
159
181
  try {
160
- if (adapter && sourceKind === 'db' && sourceRef) {
161
- const { session, sourceVersion } = await this.cacheService.getOrParseWithMeta(sessionId, sourceRef, adapter);
162
- lastMessageCount = session.metrics.messageCount;
163
- lastChunkCount = (0, chunk_builder_1.buildChunks)(session.messages).length;
164
- lastSourceVersion = sourceVersion;
165
- lastMetrics = this.toMetricsSnapshot(session.metrics);
166
- lastSummaryMetrics = session.metrics;
167
- if (adapter.getFreshnessToken) {
168
- lastFreshnessToken = await adapter.getFreshnessToken(sourceRef);
182
+ if (adapter && (sourceKind === 'db' || (stat && stat.size > 0))) {
183
+ const { session, sourceVersion } = await this.cacheService.getOrParseWithMeta(sessionId, sourceRef ?? filePath, adapter);
184
+ if (!this.isCurrent(state))
185
+ return;
186
+ state.lastMessageCount = session.metrics.messageCount;
187
+ state.lastChunkCount = (0, chunk_builder_1.buildChunks)(session.messages).length;
188
+ state.lastSourceVersion = sourceVersion;
189
+ state.lastMetrics = this.toMetricsSnapshot(session.metrics);
190
+ state.lastSummaryMetrics = session.metrics;
191
+ if (sourceRef && adapter.getFreshnessToken) {
192
+ const token = await adapter.getFreshnessToken(sourceRef);
193
+ if (!this.isCurrent(state))
194
+ return;
195
+ state.lastFreshnessToken = token;
169
196
  }
170
197
  }
171
- else if (adapter && stat && stat.size > 0) {
172
- const { session, sourceVersion } = await this.cacheService.getOrParseWithMeta(sessionId, filePath, adapter);
173
- lastMessageCount = session.metrics.messageCount;
174
- lastChunkCount = (0, chunk_builder_1.buildChunks)(session.messages).length;
175
- lastSourceVersion = sourceVersion;
176
- lastMetrics = this.toMetricsSnapshot(session.metrics);
177
- lastSummaryMetrics = session.metrics;
178
- }
179
198
  }
180
199
  catch (error) {
200
+ if (!this.isCurrent(state))
201
+ return;
181
202
  this.logger.warn({ error, sessionId }, 'Failed to seed watcher state — starting from zero');
182
203
  }
183
- const pollTimer = setInterval(() => {
184
- this.pollSource(sessionId).catch((error) => {
185
- this.logger.error({ error, sessionId }, 'Source poll error');
186
- });
187
- }, STAT_POLL_INTERVAL_MS);
188
- this.watchers.set(sessionId, {
189
- sessionId,
190
- filePath,
191
- watchPath,
192
- providerName,
193
- sourceKind,
194
- sourceRef,
195
- fsWatcher,
196
- pollTimer,
197
- debounceTimer: null,
198
- lastDev: stat?.dev ?? 0,
199
- lastIno: stat?.ino ?? 0,
200
- lastSize: stat?.size ?? 0,
201
- replacementPending: false,
202
- pendingCreation: stat === null,
203
- lastMessageCount,
204
- lastChunkCount,
205
- lastMetrics,
206
- lastSummaryMetrics,
207
- lastFreshnessToken,
208
- lastSourceVersion,
209
- });
204
+ if (!this.isCurrent(state))
205
+ return;
206
+ state.pollTimer = setInterval(() => this.requestRefresh(state, true), STAT_POLL_INTERVAL_MS);
207
+ state.active = false;
208
+ if (state.pending)
209
+ this.requestRefresh(state);
210
210
  this.logger.log({
211
211
  sessionId,
212
212
  filePath,
213
- watchPath,
213
+ watchPath: state.watchPath,
214
214
  sourceKind,
215
- pendingCreation: stat === null,
216
- hasFsWatch: !!fsWatcher,
215
+ pendingCreation: state.pendingCreation,
216
+ hasFsWatch: !!state.fsWatcher,
217
217
  }, 'Started transcript watcher');
218
218
  }
219
219
  toMetricsSnapshot(metrics) {
@@ -231,24 +231,21 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
231
231
  return;
232
232
  const { filePath, providerName, lastMetrics } = state;
233
233
  this.cleanupResources(sessionId);
234
+ this.endingWatchers.set(sessionId, state);
234
235
  let finalMetrics = lastMetrics;
235
236
  try {
236
237
  const adapter = this.adapterFactory.getAdapter(providerName);
237
238
  if (adapter) {
238
239
  const source = state.sourceKind === 'db' && state.sourceRef ? state.sourceRef : filePath;
239
240
  const session = await this.cacheService.getOrParse(sessionId, source, adapter);
240
- finalMetrics = {
241
- totalTokens: session.metrics.totalTokens,
242
- inputTokens: session.metrics.inputTokens,
243
- outputTokens: session.metrics.outputTokens,
244
- costUsd: session.metrics.costUsd,
245
- messageCount: session.metrics.messageCount,
246
- };
241
+ finalMetrics = this.toMetricsSnapshot(session.metrics);
247
242
  }
248
243
  }
249
244
  catch (error) {
250
245
  this.logger.warn({ error, sessionId }, 'Final parse failed — using last known metrics');
251
246
  }
247
+ if (this.endingWatchers.get(sessionId) !== state)
248
+ return;
252
249
  try {
253
250
  await this.events.publish('session.transcript.ended', {
254
251
  sessionId,
@@ -260,6 +257,10 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
260
257
  catch (error) {
261
258
  this.logger.error({ error, sessionId }, 'Failed to emit transcript ended event');
262
259
  }
260
+ finally {
261
+ if (this.endingWatchers.get(sessionId) === state)
262
+ this.endingWatchers.delete(sessionId);
263
+ }
263
264
  }
264
265
  get activeWatcherCount() {
265
266
  return this.watchers.size;
@@ -275,40 +276,62 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
275
276
  if (watcher)
276
277
  watcher.lastSummaryMetrics = null;
277
278
  }
278
- scheduleDebounce(sessionId) {
279
- const state = this.watchers.get(sessionId);
280
- if (!state)
279
+ isCurrent(state) {
280
+ return this.watchers.get(state.sessionId) === state;
281
+ }
282
+ requestRefresh(state, poll = false) {
283
+ if (!this.isCurrent(state))
284
+ return;
285
+ state.pending = true;
286
+ if (state.active || state.debounceTimer)
287
+ return;
288
+ const remaining = state.nextEligibleAt - performance.now();
289
+ if (poll && remaining <= 0) {
290
+ void this.runRefresh(state, true);
281
291
  return;
282
- if (state.debounceTimer) {
283
- clearTimeout(state.debounceTimer);
284
292
  }
293
+ const delay = remaining > 0 ? remaining : DEBOUNCE_MS;
285
294
  state.debounceTimer = setTimeout(() => {
286
295
  state.debounceTimer = null;
287
- this.handleSourceChanged(sessionId).catch((error) => {
288
- this.logger.error({ error, sessionId }, 'Error in debounced change handler');
289
- });
290
- }, DEBOUNCE_MS);
296
+ void this.runRefresh(state, false);
297
+ }, delay);
291
298
  }
292
- async pollSource(sessionId) {
293
- const state = this.watchers.get(sessionId);
294
- if (!state)
295
- return;
296
- if (state.sourceKind === 'db') {
297
- await this.checkDbPoll(state);
298
- }
299
- else {
300
- await this.checkStatPoll(sessionId);
301
- }
302
- }
303
- async handleSourceChanged(sessionId) {
304
- const state = this.watchers.get(sessionId);
305
- if (!state)
299
+ async runRefresh(state, poll) {
300
+ if (!this.isCurrent(state))
306
301
  return;
307
- if (state.sourceKind === 'db') {
308
- await this.handleDbChanged(sessionId);
302
+ state.active = true;
303
+ state.pending = false;
304
+ const startedAt = performance.now();
305
+ try {
306
+ if (poll) {
307
+ if (state.sourceKind === 'db')
308
+ await this.checkDbPoll(state);
309
+ else
310
+ await this.checkStatPoll(state);
311
+ }
312
+ else if (state.sourceKind === 'db') {
313
+ await this.handleDbChanged(state);
314
+ }
315
+ else {
316
+ await this.handleFileChanged(state);
317
+ }
309
318
  }
310
- else {
311
- await this.handleFileChanged(sessionId);
319
+ catch (error) {
320
+ this.logger.error({ error, sessionId: state.sessionId }, 'Source refresh failed');
321
+ }
322
+ finally {
323
+ if (this.isCurrent(state)) {
324
+ state.active = false;
325
+ if (!poll && state.sourceKind === 'file') {
326
+ const completedAt = performance.now();
327
+ state.nextEligibleAt =
328
+ completedAt - startedAt >= COSTLY_REFRESH_MS
329
+ ? completedAt + FILE_REFRESH_COOLDOWN_MS
330
+ : 0;
331
+ }
332
+ if (state.pending)
333
+ this.requestRefresh(state);
334
+ }
312
335
  }
313
336
  }
314
337
  async checkDbPoll(state) {
@@ -323,19 +346,21 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
323
346
  this.logger.debug({ error, sessionId: state.sessionId }, 'DB freshness poll failed — retry');
324
347
  return;
325
348
  }
349
+ if (!this.isCurrent(state))
350
+ return;
326
351
  if (JSON.stringify(token) !== JSON.stringify(state.lastFreshnessToken)) {
327
- this.scheduleDebounce(state.sessionId);
352
+ this.requestRefresh(state);
328
353
  }
329
354
  }
330
- async checkStatPoll(sessionId) {
331
- const state = this.watchers.get(sessionId);
332
- if (!state)
333
- return;
355
+ async checkStatPoll(state) {
356
+ const { sessionId } = state;
334
357
  let stat;
335
358
  try {
336
359
  stat = await fsPromises.stat(state.filePath);
337
360
  }
338
361
  catch (error) {
362
+ if (!this.isCurrent(state))
363
+ return;
339
364
  if (error.code === 'ENOENT') {
340
365
  if (state.pendingCreation)
341
366
  return;
@@ -345,6 +370,8 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
345
370
  }
346
371
  throw error;
347
372
  }
373
+ if (!this.isCurrent(state))
374
+ return;
348
375
  if (state.pendingCreation) {
349
376
  state.pendingCreation = false;
350
377
  state.lastDev = stat.dev;
@@ -352,7 +379,7 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
352
379
  state.lastSize = 0;
353
380
  state.replacementPending = true;
354
381
  this.reopenFsWatcher(state);
355
- this.scheduleDebounce(sessionId);
382
+ this.requestRefresh(state);
356
383
  this.logger.log({ sessionId, filePath: state.filePath }, 'Transcript file materialized — activating watcher');
357
384
  return;
358
385
  }
@@ -365,36 +392,39 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
365
392
  state.replacementPending = true;
366
393
  }
367
394
  if (identityChanged || state.replacementPending || stat.size !== state.lastSize) {
368
- this.scheduleDebounce(sessionId);
395
+ this.requestRefresh(state);
369
396
  }
370
397
  }
371
- async handleFileChanged(sessionId) {
372
- const state = this.watchers.get(sessionId);
373
- if (!state)
374
- return;
398
+ async handleFileChanged(state) {
399
+ const { sessionId } = state;
375
400
  try {
376
401
  let stat;
377
402
  try {
378
403
  stat = await fsPromises.stat(state.filePath);
379
404
  }
380
405
  catch (error) {
406
+ if (!this.isCurrent(state))
407
+ return;
381
408
  if (error.code === 'ENOENT') {
409
+ if (state.pendingCreation)
410
+ return;
382
411
  this.logger.warn({ sessionId }, 'Transcript file deleted during change handling');
383
412
  await this.stopWatching(sessionId, 'file.deleted');
384
413
  return;
385
414
  }
386
415
  throw error;
387
416
  }
417
+ if (!this.isCurrent(state))
418
+ return;
388
419
  const identityChanged = stat.dev !== state.lastDev || stat.ino !== state.lastIno;
389
- const isReplacement = state.replacementPending || identityChanged;
390
- if (identityChanged) {
420
+ const isReplacement = state.pendingCreation || state.replacementPending || identityChanged;
421
+ if (identityChanged || state.pendingCreation) {
391
422
  this.logger.debug({ sessionId }, 'Inode rotation detected');
392
423
  this.reopenFsWatcher(state);
393
424
  state.lastDev = stat.dev;
394
425
  state.lastIno = stat.ino;
426
+ state.pendingCreation = false;
395
427
  }
396
- if (stat.size === state.lastSize && !isReplacement)
397
- return;
398
428
  const delta = stat.size - state.lastSize;
399
429
  if (delta > MAX_INCREMENTAL_BYTES) {
400
430
  this.logger.warn({ sessionId, delta, maxBytes: MAX_INCREMENTAL_BYTES }, 'Incremental delta exceeds 10MB bound — proceeding with parse');
@@ -404,8 +434,10 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
404
434
  this.logger.error({ sessionId, providerName: state.providerName }, 'No adapter found');
405
435
  return;
406
436
  }
407
- const { session, sourceChangeKind, sourceVersion } = await this.cacheService.getOrParseWithMeta(sessionId, state.filePath, adapter);
408
- const boundaryFold = this.cacheService.getEntry(sessionId)?.boundaryFold ?? false;
437
+ const { session, sourceChangeKind, sourceVersion, boundaryFold } = await this.cacheService.getOrParseWithMeta(sessionId, state.filePath, adapter);
438
+ if (!this.isCurrent(state))
439
+ return;
440
+ const changedCacheHit = sourceChangeKind === 'cache-hit' && sourceVersion !== state.lastSourceVersion;
409
441
  const newMessageCount = session.metrics.messageCount - state.lastMessageCount;
410
442
  const isFullRefresh = isReplacement || session.metrics.messageCount < state.lastMessageCount;
411
443
  if (isFullRefresh) {
@@ -433,15 +465,9 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
433
465
  state.replacementPending = false;
434
466
  state.lastMessageCount = session.metrics.messageCount;
435
467
  state.lastChunkCount = chunks.length;
436
- state.lastMetrics = {
437
- totalTokens: session.metrics.totalTokens,
438
- inputTokens: session.metrics.inputTokens,
439
- outputTokens: session.metrics.outputTokens,
440
- costUsd: session.metrics.costUsd,
441
- messageCount: session.metrics.messageCount,
442
- };
468
+ state.lastMetrics = this.toMetricsSnapshot(session.metrics);
443
469
  state.lastSummaryMetrics = session.metrics;
444
- if (isReplacement || requiresCanonicalRefetch(sourceChangeKind)) {
470
+ if (isReplacement || changedCacheHit || requiresCanonicalRefetch(sourceChangeKind)) {
445
471
  await this.events.publish('session.transcript.updated', {
446
472
  kind: 'full-refetch-required',
447
473
  sessionId,
@@ -472,9 +498,9 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
472
498
  this.logger.error({ error, sessionId }, 'File change handler failed — watcher continues');
473
499
  }
474
500
  }
475
- async handleDbChanged(sessionId) {
476
- const state = this.watchers.get(sessionId);
477
- if (!state || !state.sourceRef)
501
+ async handleDbChanged(state) {
502
+ const { sessionId } = state;
503
+ if (!state.sourceRef)
478
504
  return;
479
505
  try {
480
506
  const adapter = this.adapterFactory.getAdapter(state.providerName);
@@ -491,11 +517,15 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
491
517
  this.logger.debug({ error, sessionId }, 'DB freshness check failed during change — retry');
492
518
  return;
493
519
  }
520
+ if (!this.isCurrent(state))
521
+ return;
494
522
  if (JSON.stringify(token) === JSON.stringify(state.lastFreshnessToken)) {
495
523
  return;
496
524
  }
497
525
  }
498
526
  const { session, sourceVersion } = await this.cacheService.getOrParseWithMeta(sessionId, state.sourceRef, adapter);
527
+ if (!this.isCurrent(state))
528
+ return;
499
529
  const isFullRefresh = session.metrics.messageCount < state.lastMessageCount;
500
530
  if (isFullRefresh) {
501
531
  this.logger.debug({
@@ -540,29 +570,34 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
540
570
  this.logger.error({ error, sessionId }, 'DB change handler failed — watcher continues');
541
571
  }
542
572
  }
543
- createFsWatcher(sessionId, watchPath) {
544
- const watcher = fs.watch(watchPath, (eventType) => {
573
+ createFsWatcher(state) {
574
+ const { sessionId } = state;
575
+ const watcher = fs.watch(state.watchPath, (eventType) => {
576
+ if (!this.isCurrent(state) || state.fsWatcher !== watcher)
577
+ return;
545
578
  if (eventType === 'change' || eventType === 'rename') {
546
- this.scheduleDebounce(sessionId);
579
+ this.requestRefresh(state);
547
580
  }
548
581
  });
549
582
  watcher.on('error', (err) => {
583
+ if (!this.isCurrent(state) || state.fsWatcher !== watcher)
584
+ return;
550
585
  this.logger.warn({ error: err, sessionId }, 'fs.watch error — relying on stat-poll fallback');
551
- const state = this.watchers.get(sessionId);
552
- if (state?.fsWatcher) {
553
- state.fsWatcher.close();
554
- state.fsWatcher = null;
555
- }
586
+ state.fsWatcher = null;
587
+ watcher.close();
556
588
  });
557
589
  return watcher;
558
590
  }
559
591
  reopenFsWatcher(state) {
592
+ if (!this.isCurrent(state))
593
+ return;
560
594
  if (state.fsWatcher) {
561
- state.fsWatcher.close();
595
+ const previous = state.fsWatcher;
562
596
  state.fsWatcher = null;
597
+ previous.close();
563
598
  }
564
599
  try {
565
- state.fsWatcher = this.createFsWatcher(state.sessionId, state.watchPath);
600
+ state.fsWatcher = this.createFsWatcher(state);
566
601
  }
567
602
  catch {
568
603
  this.logger.warn({ sessionId: state.sessionId }, 'Failed to reopen fs.watch after inode rotation');
@@ -572,12 +607,17 @@ let TranscriptWatcherService = TranscriptWatcherService_1 = class TranscriptWatc
572
607
  const state = this.watchers.get(sessionId);
573
608
  if (!state)
574
609
  return;
610
+ this.watchers.delete(sessionId);
575
611
  if (state.debounceTimer)
576
612
  clearTimeout(state.debounceTimer);
577
- clearInterval(state.pollTimer);
613
+ state.debounceTimer = null;
614
+ state.pending = false;
615
+ if (state.pollTimer)
616
+ clearInterval(state.pollTimer);
617
+ state.pollTimer = null;
578
618
  if (state.fsWatcher)
579
619
  state.fsWatcher.close();
580
- this.watchers.delete(sessionId);
620
+ state.fsWatcher = null;
581
621
  this.logger.debug({ sessionId }, 'Cleaned up transcript watcher');
582
622
  }
583
623
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transcript-watcher.service.js","sourceRoot":"","sources":["../../../../src/modules/session-reader/services/transcript-watcher.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transcript-watcher.service.js","sourceRoot":"","sources":["../../../../src/modules/session-reader/services/transcript-watcher.service.ts"],"names":[],"mappings":"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"}