AX Commander 비교본 런처 기능 대량 이식
변경 목적: Agent Compare 아래 비교본의 개발 문서와 런처 소스를 기준으로 현재 AX Commander에 빠져 있던 신규 런처 기능을 동일한 흐름으로 옮겨, 비교본 수준의 기능 폭을 현재 제품에 반영했습니다. 핵심 수정사항: 비교본의 신규 런처 핸들러 다수를 src/AxCopilot/Handlers로 이식하고 App.xaml.cs 등록 흐름에 연결했습니다. 빠른 링크, 파일 태그, 알림 센터, 포모도로, 파일 브라우저, 핫키 관리, OCR, 세션/스케줄/매크로, Git/정규식/네트워크/압축/해시/UUID/JWT/QR 등 AX Commander 기능을 추가했습니다. 핵심 수정사항: 신규 기능이 실제 동작하도록 AppSettings 확장, SchedulerService/FileTagService/NotificationCenterService/IconCacheService/UrlTemplateEngine/PomodoroService 추가, 배치 이름변경/세션/스케줄/매크로 편집 창 추가, NotificationService와 Symbols 보강, QR/OCR용 csproj 의존성과 Windows 타겟 프레임워크를 반영했습니다. 문서 반영: README.md와 docs/DEVELOPMENT.md에 비교본 기반 런처 기능 이식 이력과 검증 결과를 업데이트했습니다. 검증 결과: 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:
@@ -19,6 +19,7 @@ public partial class App : System.Windows.Application
|
||||
private SettingsService? _settings;
|
||||
private SettingsWindow? _settingsWindow;
|
||||
private PluginHost? _pluginHost;
|
||||
private SchedulerService? _schedulerService;
|
||||
private ClipboardHistoryService? _clipboardHistory;
|
||||
private DockBarWindow? _dockBar;
|
||||
private FileDialogWatcher? _fileDialogWatcher;
|
||||
@@ -172,6 +173,102 @@ public partial class App : System.Windows.Application
|
||||
commandResolver.RegisterHandler(new EverythingHandler());
|
||||
commandResolver.RegisterHandler(new HelpHandler(settings));
|
||||
commandResolver.RegisterHandler(new ChatHandler(settings));
|
||||
commandResolver.RegisterHandler(new QuickLinkHandler(settings));
|
||||
commandResolver.RegisterHandler(new TagHandler());
|
||||
commandResolver.RegisterHandler(new NotifHandler());
|
||||
commandResolver.RegisterHandler(new PomoHandler());
|
||||
commandResolver.RegisterHandler(new FileBrowserHandler());
|
||||
commandResolver.RegisterHandler(new HotkeyHandler(settings));
|
||||
commandResolver.RegisterHandler(new OcrHandler());
|
||||
commandResolver.RegisterHandler(new SessionHandler(settings));
|
||||
commandResolver.RegisterHandler(new BatchRenameHandler());
|
||||
_schedulerService = new SchedulerService(settings);
|
||||
_schedulerService.Start();
|
||||
commandResolver.RegisterHandler(new ScheduleHandler(settings));
|
||||
commandResolver.RegisterHandler(new MacroHandler(settings));
|
||||
commandResolver.RegisterHandler(new ContextHandler());
|
||||
commandResolver.RegisterHandler(new GitHandler());
|
||||
commandResolver.RegisterHandler(new RegexHandler());
|
||||
commandResolver.RegisterHandler(new TimeZoneHandler());
|
||||
commandResolver.RegisterHandler(new NetDiagHandler());
|
||||
commandResolver.RegisterHandler(new FileHashHandler());
|
||||
commandResolver.RegisterHandler(new ZipHandler());
|
||||
commandResolver.RegisterHandler(new EventLogHandler());
|
||||
commandResolver.RegisterHandler(new SshHandler(settings));
|
||||
commandResolver.RegisterHandler(new PasswordGenHandler());
|
||||
commandResolver.RegisterHandler(new SubnetHandler());
|
||||
commandResolver.RegisterHandler(new CleanHandler());
|
||||
commandResolver.RegisterHandler(new BaseConvertHandler());
|
||||
commandResolver.RegisterHandler(new XmlHandler());
|
||||
commandResolver.RegisterHandler(new UuidHandler());
|
||||
commandResolver.RegisterHandler(new CertHandler());
|
||||
commandResolver.RegisterHandler(new LoremHandler());
|
||||
commandResolver.RegisterHandler(new CsvHandler());
|
||||
commandResolver.RegisterHandler(new JwtHandler());
|
||||
commandResolver.RegisterHandler(new CronHandler());
|
||||
commandResolver.RegisterHandler(new UnicodeHandler());
|
||||
commandResolver.RegisterHandler(new HttpTesterHandler());
|
||||
commandResolver.RegisterHandler(new HostsHandler());
|
||||
commandResolver.RegisterHandler(new MorseHandler());
|
||||
commandResolver.RegisterHandler(new StartupHandler());
|
||||
commandResolver.RegisterHandler(new DnsQueryHandler());
|
||||
commandResolver.RegisterHandler(new PathHandler());
|
||||
commandResolver.RegisterHandler(new DriveHandler());
|
||||
commandResolver.RegisterHandler(new AgeHandler());
|
||||
commandResolver.RegisterHandler(new WolHandler());
|
||||
commandResolver.RegisterHandler(new RegHandler());
|
||||
commandResolver.RegisterHandler(new TipHandler());
|
||||
commandResolver.RegisterHandler(new FontHandler());
|
||||
commandResolver.RegisterHandler(new WslHandler());
|
||||
commandResolver.RegisterHandler(new CurrencyHandler());
|
||||
commandResolver.RegisterHandler(new BmiHandler());
|
||||
commandResolver.RegisterHandler(new MdHandler());
|
||||
commandResolver.RegisterHandler(new PingHandler());
|
||||
commandResolver.RegisterHandler(new DockerHandler());
|
||||
commandResolver.RegisterHandler(new TodoHandler());
|
||||
commandResolver.RegisterHandler(new TableHandler());
|
||||
commandResolver.RegisterHandler(new UnitHandler());
|
||||
commandResolver.RegisterHandler(new NumHandler());
|
||||
commandResolver.RegisterHandler(new YamlHandler());
|
||||
commandResolver.RegisterHandler(new GitignoreHandler());
|
||||
commandResolver.RegisterHandler(new SqlHandler());
|
||||
commandResolver.RegisterHandler(new TextCaseHandler());
|
||||
commandResolver.RegisterHandler(new AspectHandler());
|
||||
commandResolver.RegisterHandler(new AbbrHandler());
|
||||
commandResolver.RegisterHandler(new CalcHandler());
|
||||
commandResolver.RegisterHandler(new TimerHandler());
|
||||
commandResolver.RegisterHandler(new IpInfoHandler());
|
||||
commandResolver.RegisterHandler(new NpmHandler());
|
||||
commandResolver.RegisterHandler(new HexHandler());
|
||||
commandResolver.RegisterHandler(new RandHandler());
|
||||
commandResolver.RegisterHandler(new StrHandler());
|
||||
commandResolver.RegisterHandler(new PermHandler());
|
||||
commandResolver.RegisterHandler(new TomlHandler());
|
||||
commandResolver.RegisterHandler(new LogHandler());
|
||||
commandResolver.RegisterHandler(new PsHandler());
|
||||
commandResolver.RegisterHandler(new KeyHandler());
|
||||
commandResolver.RegisterHandler(new ProcHandler());
|
||||
commandResolver.RegisterHandler(new XlHandler());
|
||||
commandResolver.RegisterHandler(new PipHandler());
|
||||
commandResolver.RegisterHandler(new FormHandler());
|
||||
commandResolver.RegisterHandler(new CalHandler());
|
||||
commandResolver.RegisterHandler(new LeaveHandler());
|
||||
commandResolver.RegisterHandler(new WorkTimeHandler());
|
||||
commandResolver.RegisterHandler(new FixHandler());
|
||||
commandResolver.RegisterHandler(new SpellHandler());
|
||||
commandResolver.RegisterHandler(new ContactHandler());
|
||||
commandResolver.RegisterHandler(new RemindHandler());
|
||||
commandResolver.RegisterHandler(new PhraseHandler());
|
||||
commandResolver.RegisterHandler(new TodayHandler());
|
||||
commandResolver.RegisterHandler(new VolHandler());
|
||||
commandResolver.RegisterHandler(new QrHandler());
|
||||
commandResolver.RegisterHandler(new MeetHandler());
|
||||
commandResolver.RegisterHandler(new BrightHandler());
|
||||
commandResolver.RegisterHandler(new PasteHandler(_clipboardHistory));
|
||||
commandResolver.RegisterHandler(new PkgHandler());
|
||||
commandResolver.RegisterHandler(new ApHandler());
|
||||
commandResolver.RegisterHandler(new DictHandler());
|
||||
commandResolver.RegisterHandler(new FlowHandler());
|
||||
|
||||
// ─── 플러그인 로드 ────────────────────────────────────────────────────
|
||||
var pluginHost = new PluginHost(settings, commandResolver);
|
||||
@@ -848,6 +945,7 @@ public partial class App : System.Windows.Application
|
||||
_inputListener?.Dispose();
|
||||
_clipboardHistory?.Dispose();
|
||||
_indexService?.Dispose();
|
||||
_schedulerService?.Dispose();
|
||||
_sessionTracking?.Dispose();
|
||||
_worktimeReminder?.Dispose();
|
||||
_trayIcon?.Dispose();
|
||||
|
||||
Reference in New Issue
Block a user