| executePendingItems(String, Long, String, WorkspaceContext) |   | 86% |   | 66% | 5 | 10 | 7 | 43 | 0 | 1 |
| lambda$dispatch$0(String, Long, String, WorkspaceContext) |   | 33% | | n/a | 0 | 1 | 2 | 5 | 0 | 1 |
| enqueueRequirement(Long, Long, String, Integer, String, String, WorkspaceContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| reconcileJobState(String, Long, String, WorkspaceContext, String) |   | 72% |   | 50% | 2 | 3 | 2 | 6 | 0 | 1 |
| getJob(String, Long, String, WorkspaceContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isTerminal(PortfolioTypes.AnalysisStatus) |   | 87% |   | 50% | 4 | 5 | 0 | 1 | 0 | 1 |
| normalizeProvider(String) |   | 83% |   | 50% | 2 | 3 | 0 | 2 | 0 | 1 |
| ProjectRequirementAnalysisService(ProjectPortfolioService, PortfolioAnalysisPersistenceService, PortfolioAnalysisClaimPersistenceService, PortfolioAnalysisWorkQueue, PortfolioAnalysisRecoveryService, AnalyzeRequirementUseCase, ArchitectureGapService, ArchitecturePatternService, ArchitectureRecommendationService, PortfolioFingerprintService, LlmService, AsyncTaskExecutor, int, int, long) |  | 100% | | n/a | 0 | 1 | 0 | 17 | 0 | 1 |
| selectRequirementIds(Long, PortfolioDtos.AnalyzeProjectRequest, String, WorkspaceContext) |  | 100% |   | 90% | 1 | 6 | 0 | 15 | 0 | 1 |
| enqueueRetryFailed(String, Long, String, WorkspaceContext) |  | 100% |  | 100% | 0 | 2 | 0 | 7 | 0 | 1 |
| prepareJob(Long, PortfolioDtos.AnalyzeProjectRequest, String, WorkspaceContext) |  | 100% |  | 100% | 0 | 2 | 0 | 7 | 0 | 1 |
| safeGapAnalysis(AnalysisResult, String) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| safeRecommendation(AnalysisResult, String) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| safePatternAnalysis(AnalysisResult) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| analyzeProject(Long, PortfolioDtos.AnalyzeProjectRequest, String, WorkspaceContext) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| normalizeMaxNodes(Integer) |  | 100% |  | 100% | 0 | 4 | 0 | 4 | 0 | 1 |
| enqueueProject(Long, PortfolioDtos.AnalyzeProjectRequest, String, WorkspaceContext) |  | 100% |   | 50% | 1 | 2 | 0 | 4 | 0 | 1 |
| retryFailed(String, Long, String, WorkspaceContext) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| dispatch(String, Long, String, WorkspaceContext) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| requireAllowedBatch(List) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| safeMessage(Throwable) |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 1 |
| analyzeRequirement(Long, Long, String, Integer, String, String, WorkspaceContext) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| requestForRequirement(Long, String, Integer, String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| diffSnapshots(Long, String, String, String, WorkspaceContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| listSnapshots(Long, Long, String, WorkspaceContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getSnapshot(Long, String, String, WorkspaceContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| listJobs(Long, String, WorkspaceContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$selectRequirementIds$1(PortfolioDtos.RequirementView) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |