Merge branch 'claudedo/75514ee68371402b814638290af47cca'
This commit is contained in:
@@ -55,8 +55,9 @@ public sealed class HubBroadcaster : IPrimeBroadcaster, IRefineBroadcaster
|
||||
public Task PlanningSubtaskMerged(string planningTaskId, string subtaskId) =>
|
||||
_hub.Clients.All.SendAsync("PlanningSubtaskMerged", planningTaskId, subtaskId);
|
||||
|
||||
public Task PlanningMergeConflict(string planningTaskId, string subtaskId, IReadOnlyList<string> files) =>
|
||||
_hub.Clients.All.SendAsync("PlanningMergeConflict", planningTaskId, subtaskId, files);
|
||||
public Task PlanningMergeConflict(
|
||||
string planningTaskId, string subtaskId, IReadOnlyList<string> files, bool externallyDriven) =>
|
||||
_hub.Clients.All.SendAsync("PlanningMergeConflict", planningTaskId, subtaskId, files, externallyDriven);
|
||||
|
||||
public Task PlanningMergeAborted(string planningTaskId) =>
|
||||
_hub.Clients.All.SendAsync("PlanningMergeAborted", planningTaskId);
|
||||
|
||||
@@ -80,6 +80,7 @@ public record WorktreeOverviewDto(
|
||||
bool PathExistsOnDisk);
|
||||
|
||||
public record ForceRemoveResultDto(bool Removed, string? Reason);
|
||||
public record PlanningMergeConflictStateDto(string PlanningTaskId, string SubtaskId);
|
||||
public record PendingQuestionDto(string TaskId, string QuestionId, string Question);
|
||||
public record MergeResultDto(string Status, IReadOnlyList<string> ConflictFiles, string? ErrorMessage);
|
||||
public record MergePreviewDto(string Status, IReadOnlyList<string> ConflictFiles, int ChangedFileCount);
|
||||
@@ -939,6 +940,17 @@ public sealed class WorkerHub : Microsoft.AspNetCore.SignalR.Hub
|
||||
catch (InvalidOperationException ex) { throw new HubException(ex.Message); }
|
||||
}
|
||||
|
||||
/// <summary>Unit merges currently paused on a conflict that an MCP session (not the UI)
|
||||
/// started. The UI calls this on (re)connect to recover the "don't auto-open the resolver"
|
||||
/// banner after a restart, since the one-shot PlanningMergeConflict broadcast isn't replayed.</summary>
|
||||
public async Task<List<PlanningMergeConflictStateDto>> GetActiveExternalPlanningMergeConflicts()
|
||||
{
|
||||
var conflicts = await _planningMergeOrchestrator.GetActiveExternalConflictsAsync(CancellationToken.None);
|
||||
return conflicts
|
||||
.Select(c => new PlanningMergeConflictStateDto(c.PlanningTaskId, c.SubtaskId))
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public async Task<List<PrimeScheduleDto>> ListPrimeSchedules()
|
||||
{
|
||||
using var ctx = _dbFactory.CreateDbContext();
|
||||
|
||||
Reference in New Issue
Block a user