| processRepositories(MiningConfig, MiningState, Path, Path, int, int, LlmClient, PromptBuilder, String, CategoryManager, DslValidator, StatisticsCollector, ReportAggregator, long, int, TypeContextEnricher, CommitKeywordFilter, Set, Path, Path) |   | 54% |   | 50% | 15 | 20 | 45 | 96 | 0 | 1 |
| run(String[]) |   | 77% |   | 66% | 22 | 48 | 42 | 199 | 0 | 1 |
| processBatch(List, RepoEntry, DiffExtractor, MiningState, Path, LlmClient, PromptBuilder, String, CategoryManager, DslValidator, StatisticsCollector, ReportAggregator, int, int, TypeContextEnricher, CommitKeywordFilter, Path, Path) |   | 73% |   | 65% | 22 | 43 | 30 | 124 | 0 | 1 |
| printUsage() |  | 0% | | n/a | 1 | 1 | 21 | 21 | 1 | 1 |
| retryDeferredCommits(MiningState, Path, Path, LlmClient, PromptBuilder, String, CategoryManager, DslValidator, StatisticsCollector, ReportAggregator, MiningConfig, boolean) |   | 36% |   | 30% | 4 | 6 | 11 | 16 | 0 | 1 |
| handleEvaluation(CommitEvaluation, RevCommit, RepoEntry, DslValidator, CategoryManager, StatisticsCollector, ReportAggregator) |   | 73% |   | 33% | 6 | 7 | 8 | 30 | 0 | 1 |
| main(String[]) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| printRunSummary(StatisticsCollector, MiningState, MiningConfig, LlmClient, long) |   | 93% |   | 83% | 1 | 4 | 1 | 24 | 0 | 1 |
| logApiUnavailable(LlmClient) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| requireArg(String[], int, String) |  | 57% |   | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| lambda$processRepositories$0(Set, RevCommit) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| saveCandidates(List, CandidateStore, DslValidator, PrintStream, boolean) |  | 99% |   | 90% | 2 | 11 | 1 | 35 | 0 | 1 |
| lambda$deleteDirectory$0(Path) | | 83% | | n/a | 0 | 1 | 1 | 4 | 0 | 1 |
| printDeferredReport(MiningState, MiningConfig) |  | 100% |   | 87% | 1 | 5 | 0 | 15 | 0 | 1 |
| saveRunCandidates(ReportAggregator, DslValidator, Path) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| readCommitList(Path) |  | 100% |  | 100% | 0 | 4 | 0 | 7 | 0 | 1 |
| repoDirectoryName(String) |  | 100% |   | 75% | 1 | 3 | 0 | 7 | 0 | 1 |
| formatCommitInfo(RevCommit, RepoEntry) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| MiningCli(Function) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| shouldStop(long, int) |  | 100% |  | 100% | 0 | 3 | 0 | 4 | 0 | 1 |
| saveCheckpoint(ReportAggregator, DslValidator, MiningState, Path, Path, Path) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| deleteDirectory(Path) |  | 100% |   | 50% | 1 | 2 | 0 | 5 | 0 | 1 |
| saveCandidates(List, CandidateStore, DslValidator, PrintStream) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$processBatch$0(Map, PromptBuilder.CommitData) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| MiningCli() | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$handleEvaluation$0(String) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$run$0(String) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |