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.
- package/dist/server/modules/session-reader/controllers/session-reader.controller.d.ts +21 -1
- package/dist/server/modules/session-reader/controllers/session-reader.controller.js +49 -3
- package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +2041 -168
- package/dist/server/modules/session-reader/services/session-cache.service.d.ts +7 -0
- package/dist/server/modules/session-reader/services/session-cache.service.js +83 -12
- package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/session-reader.service.d.ts +15 -1
- package/dist/server/modules/session-reader/services/session-reader.service.js +70 -1
- package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +4 -3
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js +186 -146
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ExternalRichEditor-FwCAalXO.js → ExternalRichEditor-BnzvJiFh.js} +1 -1
- package/dist/server/ui/assets/{ReviewDetailPage-D8DVpsJm.js → ReviewDetailPage-B6RB_uEX.js} +1 -1
- package/dist/server/ui/assets/{ReviewsPage-DcWpRFbm.js → ReviewsPage-6iPnGQ1T.js} +1 -1
- package/dist/server/ui/assets/{index-Cwe7LxcW.js → index-DgajOeEy.js} +242 -242
- package/dist/server/ui/assets/{useReviewSubscription-CYoSg-88.js → useReviewSubscription-BfcypysB.js} +1 -1
- package/dist/server/ui/index.html +1 -1
- 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
|
-
|
|
165
|
+
state.pendingCreation = true;
|
|
128
166
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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(
|
|
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' &&
|
|
161
|
-
const { session, sourceVersion } = await this.cacheService.getOrParseWithMeta(sessionId, sourceRef, adapter);
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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:
|
|
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
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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.
|
|
288
|
-
|
|
289
|
-
});
|
|
290
|
-
}, DEBOUNCE_MS);
|
|
296
|
+
void this.runRefresh(state, false);
|
|
297
|
+
}, delay);
|
|
291
298
|
}
|
|
292
|
-
async
|
|
293
|
-
|
|
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
|
-
|
|
308
|
-
|
|
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
|
-
|
|
311
|
-
|
|
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.
|
|
352
|
+
this.requestRefresh(state);
|
|
328
353
|
}
|
|
329
354
|
}
|
|
330
|
-
async checkStatPoll(
|
|
331
|
-
const
|
|
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.
|
|
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.
|
|
395
|
+
this.requestRefresh(state);
|
|
369
396
|
}
|
|
370
397
|
}
|
|
371
|
-
async handleFileChanged(
|
|
372
|
-
const
|
|
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
|
-
|
|
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(
|
|
476
|
-
const
|
|
477
|
-
if (!state
|
|
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(
|
|
544
|
-
const
|
|
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.
|
|
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
|
-
|
|
552
|
-
|
|
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
|
|
595
|
+
const previous = state.fsWatcher;
|
|
562
596
|
state.fsWatcher = null;
|
|
597
|
+
previous.close();
|
|
563
598
|
}
|
|
564
599
|
try {
|
|
565
|
-
state.fsWatcher = this.createFsWatcher(state
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|