AX Agent 대기열 후속 실행을 입력창 UI에서 분리해 Cowork·Code 엔진 축을 강화
Some checks failed
Release Gate / gate (push) Has been cancelled

- SendMessageAsync가 직접 텍스트 인자를 받을 수 있게 바꾸고 대기열 후속 실행이 InputBox 상태를 바꾸지 않도록 조정

- StartNextQueuedDraftIfAny에서 입력창 텍스트/포커스/높이 조작을 제거하고 SendMessageAsync(next.Text) 직접 실행 경로로 전환

- README와 DEVELOPMENT 문서에 2026-04-05 13:37 (KST) 기준 이력과 검증 결과를 반영

- 검증: 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:
2026-04-05 12:54:19 +09:00
parent 52475b6628
commit c5dfab8081
3 changed files with 18 additions and 12 deletions

View File

@@ -7988,15 +7988,17 @@ public partial class ChatWindow : Window
return true;
}
private async Task SendMessageAsync()
private async Task SendMessageAsync(string? directText = null)
{
var rawText = InputBox.Text.Trim();
var useComposerInput = directText == null;
var rawText = (directText ?? InputBox.Text).Trim();
// 슬래시 칩이 활성화된 경우 명령어 앞에 붙임
var text = _slashPalette.ActiveCommand != null
var text = useComposerInput && _slashPalette.ActiveCommand != null
? (_slashPalette.ActiveCommand + " " + rawText).Trim()
: rawText;
HideSlashChip(restoreText: false);
if (useComposerInput)
HideSlashChip(restoreText: false);
if (string.IsNullOrEmpty(text) || _isStreaming) return;
@@ -8334,8 +8336,11 @@ public partial class ChatWindow : Window
TryPersistConversation(force: true);
UpdateChatTitle();
InputBox.Text = "";
UpdateInputBoxHeight();
if (useComposerInput)
{
InputBox.Text = "";
UpdateInputBoxHeight();
}
EmptyState.Visibility = Visibility.Collapsed;
RenderMessages(preserveViewport: true);
@@ -20048,7 +20053,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
private void StartNextQueuedDraftIfAny(string? preferredDraftId = null)
{
if (_isStreaming || InputBox == null)
if (_isStreaming)
return;
DraftQueueItem? next = null;
@@ -20063,12 +20068,8 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
_currentConversation = session?.CurrentConversation ?? _currentConversation;
}
InputBox.Text = next.Text;
InputBox.CaretIndex = InputBox.Text.Length;
InputBox.Focus();
UpdateInputBoxHeight();
RefreshDraftQueueUi();
_ = SendMessageAsync();
_ = SendMessageAsync(next.Text);
}
private static int GetDraftStateRank(DraftQueueItem item)