From fbaaf1939173b3fbabc1d2c5514177fee3333ecc Mon Sep 17 00:00:00 2001 From: lacvet Date: Tue, 7 Apr 2026 08:58:00 +0900 Subject: [PATCH] =?UTF-8?q?AX=20Agent=20=EB=82=B4=EB=B6=80=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C?= =?UTF-8?q?=EC=9A=B0=20=EC=8B=9C=EA=B0=81=ED=99=94=EC=99=80=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=20=ED=94=84=EB=A6=AC=EB=B7=B0=EB=A5=BC=20=EB=B3=B5?= =?UTF-8?q?=EA=B5=AC=ED=95=9C=EB=8B=A4\n\n-=20=EA=B0=9C=EB=B0=9C=EC=9E=90?= =?UTF-8?q?=20=ED=83=AD=EC=9D=98=20=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C?= =?UTF-8?q?=EC=9A=B0=20=EC=8B=9C=EA=B0=81=ED=99=94=EA=B0=80=20=EC=88=A8?= =?UTF-8?q?=EC=9D=80=20DevMode=20=EC=9D=98=EC=A1=B4=20=EB=95=8C=EB=AC=B8?= =?UTF-8?q?=EC=97=90=20=EC=8B=A4=EC=A0=9C=20=EB=B6=84=EC=84=9D=EA=B8=B0=20?= =?UTF-8?q?=EC=B0=BD=EC=9D=84=20=EB=9D=84=EC=9A=B0=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8D=98=20=EB=AC=B8=EC=A0=9C=EB=A5=BC=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=ED=95=9C=EB=8B=A4\n-=20=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C?= =?UTF-8?q?=EC=9A=B0=20=EC=8B=9C=EA=B0=81=ED=99=94=20=ED=86=A0=EA=B8=80?= =?UTF-8?q?=EC=9D=84=20=EC=BC=9C=EB=A9=B4=20=EC=A6=89=EC=8B=9C=20=EC=B0=BD?= =?UTF-8?q?=EC=9D=84=20=EC=97=B4=EA=B3=A0=20=EB=81=84=EB=A9=B4=20=EB=B0=94?= =?UTF-8?q?=EB=A1=9C=20=EC=88=A8=EA=B8=B0=EB=8F=84=EB=A1=9D=20=EB=8F=99?= =?UTF-8?q?=EC=9E=91=EC=9D=84=20=EC=97=B0=EA=B2=B0=ED=95=9C=EB=8B=A4\n-=20?= =?UTF-8?q?=EC=9D=BC=EB=B0=98=20=EC=84=A4=EC=A0=95=EC=97=90=EB=A7=8C=20?= =?UTF-8?q?=EB=82=A8=EC=95=84=20=EC=9E=88=EB=8D=98=20=EB=AC=B8=EC=84=9C=20?= =?UTF-8?q?=EB=AF=B8=EB=A6=AC=EB=B3=B4=EA=B8=B0=20=EC=9E=90=EB=8F=99=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=20=EC=98=B5=EC=85=98=EC=9D=84=20AX=20Agent?= =?UTF-8?q?=20=EB=82=B4=EB=B6=80=20=EC=84=A4=EC=A0=95=20=EA=B3=B5=ED=86=B5?= =?UTF-8?q?=20=ED=83=AD=EC=97=90=EB=8F=84=20=EB=B3=B5=EC=9B=90=ED=95=9C?= =?UTF-8?q?=EB=8B=A4\n-=20=EB=82=B4=EB=B6=80=20=EC=84=A4=EC=A0=95=EC=9D=98?= =?UTF-8?q?=20=EC=9E=90=EB=8F=99=20=ED=94=84=EB=A6=AC=EB=B7=B0=20=EC=BD=A4?= =?UTF-8?q?=EB=B3=B4=EB=A5=BC=20Llm.AutoPreview=EC=99=80=20=EB=8F=99?= =?UTF-8?q?=EA=B8=B0=ED=99=94=ED=95=98=EA=B3=A0=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EC=A6=89=EC=8B=9C=20=EC=A0=80=EC=9E=A5=EB=90=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=97=B0=EA=B2=B0=ED=95=9C=EB=8B=A4\n-=20README?= =?UTF-8?q?=EC=99=80=20DEVELOPMENT=20=EB=AC=B8=EC=84=9C=EC=97=90=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EB=82=B4=EC=9A=A9=EA=B3=BC=20=EC=8B=9C?= =?UTF-8?q?=EA=B0=81=EC=9D=84=20=EB=B0=98=EC=98=81=ED=95=9C=EB=8B=A4\n\n?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=20=EA=B2=B0=EA=B3=BC\n-=20dotnet=20build=20s?= =?UTF-8?q?rc/AxCopilot/AxCopilot.csproj=20-c=20Release=20-v=20minimal=20-?= =?UTF-8?q?p:OutputPath=3Dbin\\verify\\=20-p:IntermediateOutputPath=3Dobj\?= =?UTF-8?q?\verify\\\n-=20=EA=B2=BD=EA=B3=A0=200=20/=20=EC=98=A4=EB=A5=98?= =?UTF-8?q?=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ docs/DEVELOPMENT.md | 9 ++++++++ src/AxCopilot/Views/ChatWindow.xaml | 25 +++++++++++++++++++++ src/AxCopilot/Views/ChatWindow.xaml.cs | 30 ++++++++++++++++++++++++-- 4 files changed, 65 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cfd76cf..e283a27 100644 --- a/README.md +++ b/README.md @@ -1452,3 +1452,6 @@ MIT License - Cowork/Code 진행 카드의 경과 시간 계산을 보정했습니다. 스트리밍 시작 시각이 준비되기 전에 진행 힌트가 먼저 그려질 때 `수천만 시간`처럼 비정상값이 표시되던 문제를 막고, 6시간을 넘는 비현실적인 경과 시간은 자동 무시하도록 정리했습니다. - AX Agent 입력창 글로우를 런처와 같은 리듬의 무지개 글로우로 다시 맞췄습니다. 글로우 외곽선 두께와 블러를 부드럽게 조정하고, 라이브 진행 카드도 테마 AccentColor 기반의 은은한 톤을 써서 주황색 고정 느낌을 줄였습니다. - 일반 설정에 있던 `런처 무지개 글로우`, `선택 아이템 글로우`, `채팅 입력창 무지개 글로우`를 AX Agent 내부 설정으로 이동해, 이제 내부 설정에서 바로 런처/입력창 글로우를 함께 조정할 수 있습니다. +- 업데이트: 2026-04-07 02:56 (KST) + - AX Agent 내부 설정 개발자 탭의 `워크플로우 시각화`가 숨은 개발자 모드 의존 때문에 실제로 창을 띄우지 않던 문제를 수정했습니다. 이제 토글을 켜면 즉시 워크플로우 분석기 창이 열리고, 끄면 창이 숨겨집니다. + - 일반 설정에만 남아 있던 `문서 미리보기 자동 표시` 옵션을 AX Agent 내부 설정 공통 탭에도 복원해, Cowork/Code에서 프리뷰 자동 열기 정책을 내부 설정에서 바로 바꿀 수 있게 했습니다. diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index dfe3d6a..cc636a8 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -5302,3 +5302,12 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎. - AX Agent 내부 설정 공통 탭에 `글로우 효과` 섹션을 추가해 런처 무지개 글로우, 런처 선택 글로우, 채팅 입력창 글로우를 내부 설정에서 바로 조정할 수 있게 했다. - [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml) - 일반 설정 테마 섹션에 있던 런처/채팅 글로우 토글 3종을 제거해 AX Agent 내부 설정으로 UI를 일원화했다. + +## 2026-04-07 02:56 (KST) + +- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) + - `워크플로우 시각화`가 `DevMode`에 묶여 토글을 켜도 실제 분석기 창이 열리지 않던 의존을 제거했다. + - 설정 저장 후 `SyncWorkflowVisualizerWindow()`를 호출해, 토글을 켜면 분석기 창이 바로 열리고 끄면 즉시 숨겨지도록 연결했다. + - 내부 설정 공통 탭의 자동 프리뷰 콤보 값을 `Llm.AutoPreview`와 동기화하고, 변경 시 바로 저장되도록 `CmbOverlayAutoPreview_SelectionChanged`를 추가했다. +- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) + - AX Agent 내부 설정 공통 탭에 `문서 미리보기` 콤보를 추가해 `자동 표시 / 수동 / 비활성화`를 내부 설정에서 직접 제어할 수 있게 했다. diff --git a/src/AxCopilot/Views/ChatWindow.xaml b/src/AxCopilot/Views/ChatWindow.xaml index 9bd7b67..835f9c5 100644 --- a/src/AxCopilot/Views/ChatWindow.xaml +++ b/src/AxCopilot/Views/ChatWindow.xaml @@ -3507,6 +3507,31 @@ Style="{StaticResource OverlayComboBox}" SelectionChanged="CmbOverlayDefaultMood_SelectionChanged"/> + + + + + + + + + + + + + + + diff --git a/src/AxCopilot/Views/ChatWindow.xaml.cs b/src/AxCopilot/Views/ChatWindow.xaml.cs index 3c7b5cb..239d9a2 100644 --- a/src/AxCopilot/Views/ChatWindow.xaml.cs +++ b/src/AxCopilot/Views/ChatWindow.xaml.cs @@ -6229,7 +6229,7 @@ public partial class ChatWindow : Window private void OpenWorkflowAnalyzerIfEnabled() { var llm = _settings.Settings.Llm; - if (!llm.DevMode || !llm.WorkflowVisualizer) return; + if (!llm.WorkflowVisualizer) return; if (_analyzerWindow == null) { @@ -6266,10 +6266,23 @@ public partial class ChatWindow : Window private void UpdateAnalyzerButtonVisibility() { var llm = _settings.Settings.Llm; - BtnShowAnalyzer.Visibility = (llm.DevMode && llm.WorkflowVisualizer) + BtnShowAnalyzer.Visibility = llm.WorkflowVisualizer ? Visibility.Visible : Visibility.Collapsed; } + private void SyncWorkflowVisualizerWindow() + { + UpdateAnalyzerButtonVisibility(); + if (_settings.Settings.Llm.WorkflowVisualizer) + { + OpenWorkflowAnalyzerIfEnabled(); + } + else if (_analyzerWindow != null && _analyzerWindow.IsVisible) + { + _analyzerWindow.Hide(); + } + } + /// 워크플로우 분석기 창을 수동으로 열거나 포커스합니다 (하단 바 버튼). private void BtnShowAnalyzer_Click(object sender, MouseButtonEventArgs e) { @@ -10314,6 +10327,7 @@ public partial class ChatWindow : Window ApplyAgentThemeResources(); UpdatePermissionUI(); UpdateDataUsageUI(); + SyncWorkflowVisualizerWindow(); SaveConversationSettings(); RefreshInlineSettingsPanel(); UpdateModelLabel(); @@ -11203,6 +11217,8 @@ public partial class ChatWindow : Window OverlayDefaultOutputFormatRow.Visibility = showCowork ? Visibility.Visible : Visibility.Collapsed; if (OverlayDefaultMoodRow != null) OverlayDefaultMoodRow.Visibility = showCowork ? Visibility.Visible : Visibility.Collapsed; + if (OverlayAutoPreviewRow != null) + OverlayAutoPreviewRow.Visibility = showShared ? Visibility.Visible : Visibility.Collapsed; if (OverlayPdfExportPathRow != null) OverlayPdfExportPathRow.Visibility = showChat ? Visibility.Visible : Visibility.Collapsed; if (OverlayToggleImageInput != null) @@ -12583,6 +12599,7 @@ public partial class ChatWindow : Window SelectComboTag(CmbOverlayFastMode, llm.FreeTierMode ? "on" : "off"); SelectComboTag(CmbOverlayDefaultOutputFormat, llm.DefaultOutputFormat ?? "auto"); SelectComboTag(CmbOverlayDefaultMood, _selectedMood ?? llm.DefaultMood ?? "modern"); + SelectComboTag(CmbOverlayAutoPreview, llm.AutoPreview ?? "off"); SelectComboTag(CmbOverlayAgentLogLevel, llm.AgentLogLevel ?? "simple"); UpdateDataUsageUI(); } @@ -13090,6 +13107,15 @@ public partial class ChatWindow : Window PersistOverlaySettingsState(refreshOverlayDeferredInputs: false); } + private void CmbOverlayAutoPreview_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + if (_isOverlaySettingsSyncing || CmbOverlayAutoPreview.SelectedItem is not ComboBoxItem selected || selected.Tag is not string tag) + return; + + _settings.Settings.Llm.AutoPreview = tag; + PersistOverlaySettingsState(refreshOverlayDeferredInputs: false); + } + private void CmbOverlayOperationMode_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (_isOverlaySettingsSyncing || CmbOverlayOperationMode.SelectedItem is not ComboBoxItem selected || selected.Tag is not string tag)