Implements three-tier garbage collection for agent sessions: - SessionGCService.collect() for immediate per-session cleanup on destroySession() - SessionGCService.sweepOrphans() for daily cron sweep of orphaned Valkey keys - SessionGCService.fullCollect() for cold-start aggressive cleanup via OnModuleInit - /gc slash command wired into CommandExecutorService + registered in CommandRegistryService - SESSION_GC_CRON (daily 4am) added to CronService - GCModule provides Valkey (ioredis via @mosaic/queue) and is imported by AgentModule, LogModule, CommandsModule, AppModule - 8 Vitest unit tests covering all three GC tiers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
22 lines
1.0 KiB
TypeScript
22 lines
1.0 KiB
TypeScript
import { Global, Module } from '@nestjs/common';
|
|
import { AgentService } from './agent.service.js';
|
|
import { ProviderService } from './provider.service.js';
|
|
import { RoutingService } from './routing.service.js';
|
|
import { SkillLoaderService } from './skill-loader.service.js';
|
|
import { ProvidersController } from './providers.controller.js';
|
|
import { SessionsController } from './sessions.controller.js';
|
|
import { AgentConfigsController } from './agent-configs.controller.js';
|
|
import { CoordModule } from '../coord/coord.module.js';
|
|
import { McpClientModule } from '../mcp-client/mcp-client.module.js';
|
|
import { SkillsModule } from '../skills/skills.module.js';
|
|
import { GCModule } from '../gc/gc.module.js';
|
|
|
|
@Global()
|
|
@Module({
|
|
imports: [CoordModule, McpClientModule, SkillsModule, GCModule],
|
|
providers: [ProviderService, RoutingService, SkillLoaderService, AgentService],
|
|
controllers: [ProvidersController, SessionsController, AgentConfigsController],
|
|
exports: [AgentService, ProviderService, RoutingService, SkillLoaderService],
|
|
})
|
|
export class AgentModule {}
|