From d072422dd9c80f0a19d0ff30c1137e4492fe5ad5 Mon Sep 17 00:00:00 2001 From: dajiaohuang Date: Sun, 4 Oct 2026 10:14:49 +0800 Subject: [PATCH 1/2] Fix concurrent CLI summary generation --- src/CLI/RodelCommit/CommitService.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/CLI/RodelCommit/CommitService.cs b/src/CLI/RodelCommit/CommitService.cs index 42a329bd..42980d2f 100644 --- a/src/CLI/RodelCommit/CommitService.cs +++ b/src/CLI/RodelCommit/CommitService.cs @@ -226,18 +226,18 @@ private async Task GenerateWithAIAsync(string diff) private async Task> GenerateSummaryWithDocumentsAsync(IChatService chatService, string model, CommitTypeItem commitType, List documents, string? repoDesc) { - var result = new List(); var index = 0; var limit = ChatConfigManager.AppConfiguration.App.ConcurrentLimit; var concurrentLimit = limit > 0 ? limit : 5; - var semaphore = new SemaphoreSlim(limit); + var semaphore = new SemaphoreSlim(concurrentLimit); var useSegments = documents.Count > 1; + var summaries = new string[documents.Count]; await AnsiConsole.Status() .StartAsync("Generating summaries...", ctx => { ctx.Spinner(Spinner.Known.Dots2); ctx.SpinnerStyle(Style.Parse("yellow")); - var tasks = documents.Select(async doc => + var tasks = documents.Select(async (doc, documentIndex) => { await semaphore.WaitAsync(); try @@ -257,8 +257,8 @@ await AnsiConsole.Status() Temperature = 0.5f, }; var summary = await chatService.Client!.GetResponseAsync([chatMsg], options, cancellationToken: _stopCts.Token); - var text = summary.Message.Text!; - result.Add(text); + var text = summary.Text!; + summaries[documentIndex] = text; index++; ctx.Status($"Generating summaries...({index}/{documents.Count})"); } @@ -271,7 +271,7 @@ await AnsiConsole.Status() return Task.WhenAll(tasks); }); - return result; + return summaries.ToList(); } private async Task GenerateSummaryWithSegmentsAsync(IChatService chatService, string model, CommitTypeItem commitType, List segments, string? repoDesc) From e204f10bb47beca9deb35ebefb91684d061e3b5f Mon Sep 17 00:00:00 2001 From: dajiaohuang Date: Sun, 4 Oct 2026 10:17:12 +0800 Subject: [PATCH 2/2] Use the current CLI chat response API --- src/CLI/RodelCommit/CommitService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CLI/RodelCommit/CommitService.cs b/src/CLI/RodelCommit/CommitService.cs index 42980d2f..2ad5afa7 100644 --- a/src/CLI/RodelCommit/CommitService.cs +++ b/src/CLI/RodelCommit/CommitService.cs @@ -285,7 +285,7 @@ private async Task GenerateSummaryWithSegmentsAsync(IChatService chatSer }; var summary = await chatService.Client!.GetResponseAsync([chatMsg], options, cancellationToken: _stopCts.Token); - return summary.Message.Text!; + return summary.Text!; } private static ChatProviderType AskProvider(List availableServices)