From ccb39f0fe0310ad49cb2b15495f63de078f37a30 Mon Sep 17 00:00:00 2001 From: lacvet Date: Mon, 6 Apr 2026 17:15:58 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=A0=ED=83=9D=20=ED=85=8D=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20AI=20=EB=AA=85=EB=A0=B9=20=EA=B8=B0=EB=B3=B8?= =?UTF-8?q?=EA=B0=92=EA=B3=BC=20=ED=86=A0=EA=B8=80=20=EB=8F=99=EC=9E=91?= =?UTF-8?q?=EC=9D=84=20=EB=B3=B4=EC=88=98=EC=A0=81=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 선택 텍스트 명령 사용의 기본값을 비활성으로 바꾸고, 활성 AI 명령 목록도 기본은 빈 상태로 조정했다. 새 설치나 초기화 이후에는 사용자가 명시적으로 켜기 전까지 선택 텍스트 AI 팝업이 자동으로 개입하지 않도록 정리했다. 설정창의 텍스트 AI 명령 패널에서 최소 1개 유지 로직을 제거해 다시 쓰기를 포함한 모든 명령을 실제로 끌 수 있게 수정했다. 안내 문구도 현재 동작 기준으로 갱신해서, 모든 AI 명령을 꺼두면 선택 텍스트 팝업에는 AX Commander 열기만 남는다는 점을 명확히 반영했다. README와 DEVELOPMENT 문서를 2026-04-06 17:24 (KST) 기준으로 갱신했고, 표준 검증 빌드 결과 경고 0개와 오류 0개를 확인했다. --- README.md | 4 ++++ docs/DEVELOPMENT.md | 2 ++ src/AxCopilot/Models/AppSettings.cs | 6 +++--- src/AxCopilot/ViewModels/SettingsViewModel.cs | 2 +- src/AxCopilot/Views/SettingsWindow.xaml | 2 +- src/AxCopilot/Views/SettingsWindow.xaml.cs | 2 -- 6 files changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 43ef4bf..09935dd 100644 --- a/README.md +++ b/README.md @@ -1297,3 +1297,7 @@ MIT License - AX Copilot가 유휴 상태에서도 CPU를 3~5% 정도 쓰는 원인을 점검한 뒤, 상시 백그라운드 경로 두 군데를 줄였다. [App.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/App.xaml.cs) 에서 `SchedulerService`는 앱 시작 즉시 무조건 타이머를 돌리지 않고 `Refresh()`로 활성 일정이 있을 때만 시작하도록 바꿨다. - 같은 파일에서 `FileDialogWatcher`도 더 이상 앱 시작 시 무조건 시스템 전역 WinEvent 훅을 걸지 않고, `파일 대화상자 통합` 설정이 켜져 있을 때만 시작되도록 조정했다. 설정 저장 시 `SettingsChanged`를 받아 watcher/timer 상태를 즉시 다시 계산하도록 연결했다. - [SchedulerService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/SchedulerService.cs) 도 함께 정리해, 활성 일정이 하나도 없으면 타이머를 시작하지 않고, 실행 중에도 일정이 모두 비활성화되면 스스로 타이머를 정지하도록 바꿨다. 이 변경으로 런처와 AX Agent 창이 모두 닫힌 유휴 상태에서 불필요한 CPU 깨우기를 줄였다. +- 업데이트: 2026-04-06 17:24 (KST) + - 선택 텍스트 AI 명령의 기본값을 보수적으로 다시 조정했다. [AppSettings.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/AppSettings.cs), [SettingsViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/SettingsViewModel.cs) 에서 `선택 텍스트 명령 사용` 기본값을 `false`로 바꾸고, 활성 AI 명령 목록도 기본은 빈 리스트가 되도록 변경했다. + - [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs) 의 `BuildTextActionCommandsPanel()`에서 `최소 1개 유지`를 강제하던 로직을 제거해 `다시 쓰기`를 포함한 모든 텍스트 AI 명령을 실제로 비활성화할 수 있게 수정했다. + - [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml) 의 안내 문구도 현재 동작 기준으로 갱신해, 모든 명령을 꺼두면 선택 텍스트 팝업에는 `AX Commander 열기`만 남는다는 점을 명확히 안내하도록 정리했다. diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 7f82b9c..9d9dbac 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -4986,3 +4986,5 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎. - Document update: 2026-04-06 17:09 (KST) - Updated `LauncherViewModel.LauncherExtras.cs` and `LauncherWindow.xaml` so lower quick-action chips are not loaded when disabled and render with centered block alignment plus centered chip content when enabled, reducing the off-center look when multiple chips appear. - Document update: 2026-04-06 17:18 (KST) - Reduced idle CPU wakeups in `App.xaml.cs` by stopping two always-on background paths from starting unconditionally. `SchedulerService` now enters through `Refresh()` so the 30-second timer only exists when at least one enabled schedule is present, and the app now reevaluates that state when settings are saved. - Document update: 2026-04-06 17:18 (KST) - `FileDialogWatcher` is no longer started at app boot when file-dialog integration is disabled. `App.xaml.cs` now toggles the global WinEvent hook through `UpdateFileDialogWatcherState()`, and `SchedulerService.cs` now self-stops when no enabled schedules remain. This directly targets the 3–5% idle CPU symptom reported while neither the launcher nor AX Agent was open. +- Document update: 2026-04-06 17:24 (KST) - Changed the default launcher text-action profile to opt-in. `AppSettings.cs` and `SettingsViewModel.cs` now default `EnableTextAction` to `false`, and `TextActionCommands` now defaults to an empty list instead of all commands enabled. +- Document update: 2026-04-06 17:24 (KST) - Removed the forced “at least one command must remain enabled” behavior from `SettingsWindow.xaml.cs`. The text-action command panel now allows every AI command, including `rewrite`, to be turned off, and the hint text in `SettingsWindow.xaml` now explains that the popup falls back to showing only `AX Commander 열기` when all AI commands are disabled. diff --git a/src/AxCopilot/Models/AppSettings.cs b/src/AxCopilot/Models/AppSettings.cs index cda84dc..e4bce9b 100644 --- a/src/AxCopilot/Models/AppSettings.cs +++ b/src/AxCopilot/Models/AppSettings.cs @@ -231,13 +231,13 @@ public class LauncherSettings // ─── 선택 텍스트 AI 명령 설정 ─────────────────────────────────────────── - /// 선택 텍스트 AI 명령 활성화. 기본 true. + /// 선택 텍스트 AI 명령 활성화. 기본 false. [JsonPropertyName("enableTextAction")] - public bool EnableTextAction { get; set; } = true; + public bool EnableTextAction { get; set; } = false; /// 활성화된 텍스트 AI 명령 목록. 가능한 값: translate, summarize, grammar, explain, rewrite [JsonPropertyName("textActionCommands")] - public List TextActionCommands { get; set; } = new() { "translate", "summarize", "grammar", "explain", "rewrite" }; + public List TextActionCommands { get; set; } = new(); /// 번역 기본 언어. 기본 "한국어↔영어 자동". [JsonPropertyName("textActionTranslateLanguage")] diff --git a/src/AxCopilot/ViewModels/SettingsViewModel.cs b/src/AxCopilot/ViewModels/SettingsViewModel.cs index 1282c56..68094e1 100644 --- a/src/AxCopilot/ViewModels/SettingsViewModel.cs +++ b/src/AxCopilot/ViewModels/SettingsViewModel.cs @@ -842,7 +842,7 @@ public class SettingsViewModel : INotifyPropertyChanged // ─── v1.4.0 신기능 설정 ────────────────────────────────────────────────── - private bool _enableTextAction = true; + private bool _enableTextAction = false; public bool EnableTextAction { get => _enableTextAction; diff --git a/src/AxCopilot/Views/SettingsWindow.xaml b/src/AxCopilot/Views/SettingsWindow.xaml index aa87a64..00578f6 100644 --- a/src/AxCopilot/Views/SettingsWindow.xaml +++ b/src/AxCopilot/Views/SettingsWindow.xaml @@ -2868,7 +2868,7 @@ - + diff --git a/src/AxCopilot/Views/SettingsWindow.xaml.cs b/src/AxCopilot/Views/SettingsWindow.xaml.cs index 48f0182..00a8b01 100644 --- a/src/AxCopilot/Views/SettingsWindow.xaml.cs +++ b/src/AxCopilot/Views/SettingsWindow.xaml.cs @@ -1016,8 +1016,6 @@ public partial class SettingsWindow : Window }; cb.Unchecked += (_, _) => { - // 최소 1개 유지 - if (enabled.Count <= 1) { cb.IsChecked = true; return; } enabled.RemoveAll(x => x == capturedKey); svc.Save(); };