런처 색인 과부하와 AX Agent 리사이즈 재렌더 부담 완화
Some checks failed
Release Gate / gate (push) Has been cancelled

- 런처 색인에서 .git, node_modules, bin, obj, dist, packages, venv, __pycache__, target 경로를 스캔/감시 제외해 유휴 CPU와 재색인 부담을 줄임

- 런처 재귀 파일 스캔을 제외 폴더 인지형 순회로 바꾸고 무지개 글로우 타이머 주기를 낮춰 visible 상태 UI 갱신 비용을 완화함

- AX Agent는 SizeChanged 때마다 전체 RenderMessages를 즉시 호출하지 않고 디바운스 후 한 번만 반영하도록 바꿔 창 조작 시 무거운 느낌을 줄임

- README와 DEVELOPMENT 문서를 2026-04-06 18:46 (KST) 기준으로 갱신하고 Release 빌드에서 경고 0 / 오류 0을 확인함
This commit is contained in:
2026-04-06 19:07:09 +09:00
parent e4e3e49419
commit 4df5d5d874
5 changed files with 124 additions and 6 deletions

View File

@@ -93,6 +93,7 @@ public partial class ChatWindow : Window
private readonly DispatcherTimer _conversationPersistTimer;
private readonly DispatcherTimer _agentUiEventTimer;
private readonly DispatcherTimer _tokenUsagePopupCloseTimer;
private readonly DispatcherTimer _responsiveLayoutTimer;
private CancellationTokenSource? _gitStatusRefreshCts;
private int _displayedLength; // 현재 화면에 표시된 글자 수
private ResourceDictionary? _agentThemeDictionary;
@@ -273,6 +274,14 @@ public partial class ChatWindow : Window
_tokenUsagePopupCloseTimer.Stop();
CloseTokenUsagePopupIfIdle();
};
_responsiveLayoutTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(90) };
_responsiveLayoutTimer.Tick += (_, _) =>
{
_responsiveLayoutTimer.Stop();
UpdateTopicPresetScrollMode();
if (UpdateResponsiveChatLayout())
RenderMessages(preserveViewport: true);
};
KeyDown += ChatWindow_KeyDown;
MouseMove += (_, _) =>
@@ -401,9 +410,8 @@ public partial class ChatWindow : Window
return;
}
UpdateTopicPresetScrollMode();
if (UpdateResponsiveChatLayout())
RenderMessages(preserveViewport: true);
_responsiveLayoutTimer.Stop();
_responsiveLayoutTimer.Start();
};
Closed += (_, _) =>
{
@@ -415,6 +423,7 @@ public partial class ChatWindow : Window
_typingTimer.Stop();
_conversationSearchTimer.Stop();
_inputUiRefreshTimer.Stop();
_responsiveLayoutTimer.Stop();
_llm.Dispose();
};
}