AX Agent 상태 스트립 갱신도 배치형으로 조정
Some checks failed
Release Gate / gate (push) Has been cancelled

- task summary 전용 타이머를 추가해 RuntimeActivityBadge와 ConversationStatusStrip 갱신을 120ms 단위로 묶음

- 실행 이벤트 본문 재렌더 배치와 함께 Cowork/Code 실행 중 UI 깜빡임을 줄이는 방향으로 정리함

- 검증: 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:37:29 +09:00
parent a40cacea4d
commit d24596a8ea
3 changed files with 21 additions and 2 deletions

View File

@@ -84,6 +84,7 @@ public partial class ChatWindow : Window
private readonly DispatcherTimer _conversationSearchTimer;
private readonly DispatcherTimer _inputUiRefreshTimer;
private readonly DispatcherTimer _executionHistoryRenderTimer;
private readonly DispatcherTimer _taskSummaryRefreshTimer;
private CancellationTokenSource? _gitStatusRefreshCts;
private int _displayedLength; // 현재 화면에 표시된 글자 수
private ResourceDictionary? _agentThemeDictionary;
@@ -244,6 +245,12 @@ public partial class ChatWindow : Window
AutoScrollIfNeeded();
_pendingExecutionHistoryAutoScroll = false;
};
_taskSummaryRefreshTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(120) };
_taskSummaryRefreshTimer.Tick += (_, _) =>
{
_taskSummaryRefreshTimer.Stop();
UpdateTaskSummaryIndicators();
};
KeyDown += ChatWindow_KeyDown;
UpdateConversationFailureFilterUi();
@@ -8549,6 +8556,7 @@ public partial class ChatWindow : Window
_typingTimer.Stop();
_executionHistoryRenderTimer.Stop();
_pendingExecutionHistoryAutoScroll = false;
_taskSummaryRefreshTimer.Stop();
HideStickyProgress();
StopRainbowGlow();
_activeStreamText = null;
@@ -8612,6 +8620,12 @@ public partial class ChatWindow : Window
_executionHistoryRenderTimer.Start();
}
private void ScheduleTaskSummaryRefresh()
{
_taskSummaryRefreshTimer.Stop();
_taskSummaryRefreshTimer.Start();
}
// ─── 코워크 에이전트 지원 ────────────────────────────────────────────
private string BuildCoworkSystemPrompt()
@@ -9070,7 +9084,7 @@ public partial class ChatWindow : Window
}
}
UpdateTaskSummaryIndicators();
ScheduleTaskSummaryRefresh();
}
private void OnSubAgentStatusChanged(SubAgentStatusEvent evt)
@@ -9078,7 +9092,7 @@ public partial class ChatWindow : Window
Dispatcher.Invoke(() =>
{
_appState.ApplySubAgentStatus(evt);
UpdateTaskSummaryIndicators();
ScheduleTaskSummaryRefresh();
});
}