fix: circular dependency AiRuntimeModule <-> AiJobModule
Some checks failed
Deploy API Server / build-and-unit (push) Successful in 37s
Deploy API Server / current-integration (push) Successful in 33s
Deploy API Server / backward-compat (push) Successful in 0s
Deploy API Server / deploy (push) Failing after 42s

M-AI-07-05 added AiJobModule import to AiRuntimeModule, but
AiJobModule already imports AiRuntimeModule (for SnapshotBuilderService).
Use forwardRef(() => AiJobModule) to break the cycle.

Root cause of deploy crash-loop: NestJS UndefinedModuleException
at AiJobModule imports index [1] (AiRuntimeModule was undefined).

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
wangdl 2026-06-22 21:07:20 +08:00
parent 62f324a429
commit 8776f1e7ca

View File

@ -1,4 +1,4 @@
import { Module } from '@nestjs/common';
import { Module, forwardRef } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { PrismaModule } from '../../infrastructure/database/prisma.module';
import { AiJobModule } from '../ai-job/ai-job.module';
@ -16,7 +16,7 @@ import { JobReaperService } from './job-reaper.service';
import { QuizExecutionRouter } from './quiz-execution-router';
@Module({
imports: [ConfigModule, PrismaModule, AiJobModule],
imports: [ConfigModule, PrismaModule, forwardRef(() => AiJobModule)],
controllers: [UserAiController, RuntimeInternalController],
providers: [UserAiService, CredentialEncryptionService, RuntimeInternalService, UserAiQuotaService, PlatformBudgetService, SnapshotBuilderService, PriorityRulesService, SnapshotCleanupService, JobReaperService, QuizExecutionRouter],
exports: [UserAiService, CredentialEncryptionService, RuntimeInternalService, UserAiQuotaService, PlatformBudgetService, SnapshotBuilderService, PriorityRulesService, SnapshotCleanupService, JobReaperService],