Skip to content

Commit fc54b59

Browse files
committed
fix: removed langfuse telemetry memory leaks
1 parent d6b7ef6 commit fc54b59

4 files changed

Lines changed: 7 additions & 1 deletion

File tree

api/src/agent/agent.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { Module } from '@nestjs/common';
2+
import { LangfuseModule } from '../langfuse/langfuse.module.js';
23
import { HermesAgentService } from './agent.service.js';
34

45
@Module({
6+
imports: [LangfuseModule],
57
providers: [HermesAgentService],
68
exports: [HermesAgentService],
79
})

api/src/agent/agent.service.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { AppConfigService } from '../config/config.service.js';
66
import { MetricsService } from '../metrics/metrics.service.js';
77
import { type AgentRunOptions, type AgentRunResult, type AgentRunStatus } from './agent.model.js';
88
import { buildSpawnSpec, spawnProcess, prepareHermesMemoryPaths } from './agent.utility.js';
9+
import { LangfuseService } from '../langfuse/langfuse.service.js';
910

1011
/**
1112
* Drives the Hermes Agent CLI. Each call runs `hermes -z --yolo --accept-hooks …` headless in the
@@ -20,6 +21,7 @@ export class HermesAgentService {
2021
private readonly prisma: PrismaService,
2122
private readonly config: AppConfigService,
2223
private readonly metrics: MetricsService,
24+
private readonly langfuse: LangfuseService,
2325
) {}
2426

2527
/**
@@ -132,6 +134,7 @@ export class HermesAgentService {
132134
},
133135
});
134136

137+
this.langfuse.complete(run.id);
135138
this.metrics.recordAgentRun(opts.phase, status, raw.durationMs);
136139

137140
this.logger.log(

api/src/langfuse/langfuse.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export class LangfuseController {
118118
map((r) =>
119119
encode({ type: 'done', status: r.status, exitCode: r.exitCode, durationMs: r.durationMs }),
120120
),
121-
shareReplay({ bufferSize: 1, refCount: false }),
121+
shareReplay({ bufferSize: 1, refCount: true }),
122122
);
123123

124124
return concat(history$, merge(live$.pipe(takeUntil(done$)), done$));

api/src/langfuse/langfuse.service.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export class LangfuseService {
5252
complete(sessionId: string): void {
5353
this.subjects.get(sessionId)?.complete();
5454
this.subjects.delete(sessionId);
55+
this.buffers.delete(sessionId);
5556
}
5657

5758
observe(sessionId: string): Observable<LangfuseEvent> | null {

0 commit comments

Comments
 (0)