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; }