From 6e3f90d289722b7db53e78931d4b46f97658305c Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 4 Jun 2026 23:41:59 +0200 Subject: [PATCH] fix(ui): discard stale mergeability probe after task or target switch Co-Authored-By: Claude Opus 4.7 --- .../ViewModels/Islands/DetailsIslandViewModel.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/DetailsIslandViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/DetailsIslandViewModel.cs index 15f8c35..37517f6 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/DetailsIslandViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/DetailsIslandViewModel.cs @@ -1147,7 +1147,11 @@ public sealed partial class DetailsIslandViewModel : ViewModelBase MergePreviewText = label; MergeIsClean = false; MergeIsConflict = false; return; } - var dto = await _worker.PreviewMergeAsync(Task.Id, SelectedMergeTarget ?? ""); + var capturedTaskId = Task.Id; + var capturedTarget = SelectedMergeTarget; + var dto = await _worker.PreviewMergeAsync(capturedTaskId, capturedTarget ?? ""); + // Discard a probe that resolved after the user switched task or target. + if (Task?.Id != capturedTaskId || SelectedMergeTarget != capturedTarget) return; var (text, clean, conflict) = MergePreviewPresenter.Describe(dto); MergePreviewText = text; MergeIsClean = clean; MergeIsConflict = conflict; }