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)