- retry, follow-up, branch follow-up, steering 요청이 모두 EnqueueDraftRequest helper를 타도록 정리 - 현재 대화 갱신과 세션 반영 지점을 queue 생성 helper 한 군데로 모아 이후 정책 변경 시 일관성을 높임 - README와 DEVELOPMENT 이력에 claw-code parity 기준 진행 상황을 반영 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
This commit is contained in:
@@ -19550,20 +19550,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
HideSlashChip(restoreText: false);
|
||||
ClearPromptCardPlaceholder();
|
||||
|
||||
DraftQueueItem? queuedItem = null;
|
||||
lock (_convLock)
|
||||
{
|
||||
var session = _appState.ChatSession;
|
||||
if (session != null)
|
||||
_currentConversation = (queuedItem = session.EnqueueDraft(
|
||||
_activeTab,
|
||||
text,
|
||||
priority,
|
||||
_storage,
|
||||
InferDraftKind(text, explicitKind))) != null
|
||||
? session.CurrentConversation
|
||||
: _currentConversation;
|
||||
}
|
||||
var queuedItem = EnqueueDraftRequest(text, priority, explicitKind);
|
||||
|
||||
InputBox.Clear();
|
||||
InputBox.Focus();
|
||||
@@ -19590,6 +19577,26 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
ShowToast(toast);
|
||||
}
|
||||
|
||||
private DraftQueueItem? EnqueueDraftRequest(string text, string priority, string? explicitKind = null)
|
||||
{
|
||||
DraftQueueItem? queuedItem = null;
|
||||
lock (_convLock)
|
||||
{
|
||||
var session = _appState.ChatSession;
|
||||
if (session != null)
|
||||
_currentConversation = (queuedItem = session.EnqueueDraft(
|
||||
_activeTab,
|
||||
text,
|
||||
priority,
|
||||
_storage,
|
||||
InferDraftKind(text, explicitKind))) != null
|
||||
? session.CurrentConversation
|
||||
: _currentConversation;
|
||||
}
|
||||
|
||||
return queuedItem;
|
||||
}
|
||||
|
||||
// ─── 헬퍼 ─────────────────────────────────────────────────────────────
|
||||
private Popup? _taskSummaryPopup;
|
||||
private UIElement? _taskSummaryTarget;
|
||||
@@ -21062,15 +21069,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
private void EnqueueFollowUpFromRun(AppStateService.AgentRunState run)
|
||||
{
|
||||
var prompt = BuildFollowUpPromptFromRun(run);
|
||||
|
||||
lock (_convLock)
|
||||
{
|
||||
var session = _appState.ChatSession;
|
||||
if (session != null)
|
||||
_currentConversation = session.EnqueueDraft(_activeTab, prompt, "next", _storage, "followup") != null
|
||||
? session.CurrentConversation
|
||||
: _currentConversation;
|
||||
}
|
||||
EnqueueDraftRequest(prompt, "next", "followup");
|
||||
|
||||
RefreshDraftQueueUi();
|
||||
ShowToast("후속 작업이 대기열에 추가되었습니다.");
|
||||
@@ -21116,14 +21115,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
run.RunId);
|
||||
|
||||
var prompt = BuildFollowUpPromptFromRun(run);
|
||||
lock (_convLock)
|
||||
{
|
||||
var session = _appState.ChatSession;
|
||||
if (session != null)
|
||||
_currentConversation = session.EnqueueDraft(_activeTab, prompt, "next", _storage, "followup") != null
|
||||
? session.CurrentConversation
|
||||
: _currentConversation;
|
||||
}
|
||||
EnqueueDraftRequest(prompt, "next", "followup");
|
||||
|
||||
RefreshDraftQueueUi();
|
||||
ShowToast("새 분기 대화가 생성되고 후속 작업이 대기열에 추가되었습니다.");
|
||||
@@ -21145,14 +21137,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
|
||||
if (_isStreaming)
|
||||
{
|
||||
lock (_convLock)
|
||||
{
|
||||
var session = ChatSession;
|
||||
if (session != null)
|
||||
_currentConversation = session.EnqueueDraft(_activeTab, lastUserMessage, "now", _storage, "direct") != null
|
||||
? session.CurrentConversation
|
||||
: _currentConversation;
|
||||
}
|
||||
EnqueueDraftRequest(lastUserMessage, "now", "direct");
|
||||
|
||||
RefreshDraftQueueUi();
|
||||
ShowToast("현재 작업 뒤에 같은 요청을 다시 실행하도록 대기열에 추가했습니다.");
|
||||
|
||||
Reference in New Issue
Block a user