Commit Graph

13 Commits

Author SHA1 Message Date
39e07dd947 [Phase48] 대형 파일 분할 리팩터링 4차 — 4개 신규 파셜 파일 생성
## 분할 대상 및 결과

### ChatWindow.Controls.cs (595줄 → 372줄)
- ChatWindow.TabSwitching.cs (232줄, 신규): _activeTab 필드, _tabConversationId 필드
  TabChat/Cowork/Code_Checked, UpdateTabUI, BtnPlanMode_Click, UpdatePlanModeUI,
  SwitchToTabConversation, SaveCurrentTabConversationId, StopStreamingIfActive

### ChatWindow.SlashCommands.cs (579줄 → 406줄)
- ChatWindow.DropActions.cs (160줄, 신규): DropActions 딕셔너리, CodeExtensions, DataExtensions,
  _dropActionPopup 필드, ShowDropActionMenu() 메서드

### WorkflowAnalyzerWindow.Charts.cs (667줄 → 397줄)
- WorkflowAnalyzerWindow.Timeline.cs (281줄, 신규): CreateTimelineNode, GetEventVisual, CreateBadge,
  ShowDetail, UpdateSummaryCards, FormatMs, Truncate, 윈도우 이벤트 핸들러, WndProc

### SkillGalleryWindow.xaml.cs (631줄 → ~430줄)
- SkillGalleryWindow.SkillDetail.cs (197줄, 신규): ShowSkillDetail() 메서드 전체
  (스킬 상세 보기 팝업 — 메타정보·프롬프트 미리보기·Action 버튼)

## 빌드 결과: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 21:12:38 +09:00
27bd8de83a [Phase47] 대형 파일 분할 리팩터링 3차 — 8개 신규 파셜 파일 생성
## 분할 대상 및 결과

### ChatWindow.ResponseHandling.cs (741줄 → 269줄)
- ChatWindow.StreamingUI.cs (303줄, 신규): CreateStreamingContainer, FinalizeStreamingContainer, ParseSuggestionChips, FormatTokenCount, EstimateTokenCount, StopGeneration
- ChatWindow.ConversationExport.cs (188줄, 신규): ForkConversation, OpenCommandPalette, ExecuteCommand, ExportConversation, ExportToHtml

### ChatWindow.PreviewAndFiles.cs (709줄 → ~340줄)
- ChatWindow.PreviewPopup.cs (~230줄, 신규): ShowPreviewTabContextMenu, OpenPreviewPopupWindow, _previewTabPopup 필드

### HelpDetailWindow.xaml.cs (673줄 → 254줄)
- HelpDetailWindow.Shortcuts.cs (168줄, 신규): BuildShortcutItems() 정적 메서드 (단축키 항목 160개+ 생성)
- HelpDetailWindow.Navigation.cs (266줄, 신규): 테마 프로퍼티, BuildTopMenu/SwitchTopMenu, BuildCategoryBar, NavigateToPage, 이벤트 핸들러
- partial class 전환: `public partial class HelpDetailWindow : Window`

### SkillService.cs (661줄 → 386줄)
- SkillService.Import.cs (203줄, 신규): ExportSkill, ImportSkills, MapToolNames — 가져오기/내보내기 섹션
- SkillDefinition.cs (81줄, 신규): SkillDefinition 클래스 독립 파일로 분리 (별도 최상위 클래스)
- partial class 전환: `public static partial class SkillService`

## NEXT_ROADMAP.md Phase 46 완료 항목 추가

## 빌드 결과: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 21:02:53 +09:00
aa907d7b79 [Phase46] 대형 파일 분할 리팩터링 2차 — 19개 신규 파셜 파일 생성
## 분할 대상 및 결과

### AgentLoopService.cs (1,334줄 → 846줄)
- AgentLoopService.HtmlReport.cs (151줄): AutoSaveAsHtml, ConvertTextToHtml, EscapeHtml
- AgentLoopService.Verification.cs (349줄): 도구 분류 판별 + RunPostToolVerificationAsync + EmitEvent + CheckDecisionRequired + FormatToolCallSummary

### ChatWindow 분할 (8개 신규 파셜 파일)
- ChatWindow.PlanViewer.cs (474줄): 계획 뷰어 — AddPlanningCard, AddDecisionButtons, CollapseDecisionButtons, ShowPlanButton 등 8개 메서드
- ChatWindow.EventBanner.cs (411줄): AddAgentEventBanner, BuildFileQuickActions
- ChatWindow.TaskDecomposition.cs (1,170줄 → 307줄): RenderSuggestActionChips, BuildFeedbackContext, UpdateProgressBar, BuildDiffView 잔류
- ChatWindow.BottomBar.cs (345줄): BuildBottomBar, BuildCodeBottomBar, ShowLogLevelMenu, ShowLanguageMenu 등
- ChatWindow.MoodMenu.cs (456줄): ShowFormatMenu, ShowMoodMenu, ShowCustomMoodDialog 등
- ChatWindow.CustomPresets.cs (978줄 → 203줄): ShowCustomPresetDialog, SelectTopic 잔류
- ChatWindow.ConversationMenu.cs (255줄): ShowConversationMenu (카테고리/삭제/즐겨찾기 팝업)
- ChatWindow.ConversationTitleEdit.cs (108줄): EnterTitleEditMode

### SettingsViewModel 분할
- SettingsViewModel.LlmProperties.cs (417줄): LLM·에이전트 관련 바인딩 프로퍼티
- SettingsViewModel.Properties.cs (837줄 → 427줄): 기능 토글·테마·스니펫 등 앱 수준 프로퍼티

### TemplateService 분할
- TemplateService.Css.cs (559줄): 11종 CSS 테마 문자열 상수
- TemplateService.cs (734줄 → 179줄): 메서드 로직만 잔류

### PlanViewerWindow 분할
- PlanViewerWindow.StepRenderer.cs (616줄): RenderSteps + SwapSteps + EditStep + 버튼 빌더 9개
- PlanViewerWindow.cs (931줄 → 324줄): Win32/생성자/공개 API 잔류

### App.xaml.cs 분할 (776줄 → 452줄)
- App.Settings.cs (252줄): SetupTrayIcon, OpenSettings, ToggleDockBar, RefreshDockBar, OpenAiChat
- App.Helpers.cs (92줄): LoadAppIcon, IsAutoStartEnabled, SetAutoStart, OnExit

### LlmService.ToolUse.cs 분할 (719줄 → 115줄)
- LlmService.ClaudeTools.cs (180줄): SendClaudeWithToolsAsync, BuildClaudeToolBody
- LlmService.GeminiTools.cs (175줄): SendGeminiWithToolsAsync, BuildGeminiToolBody
- LlmService.OpenAiTools.cs (215줄): SendOpenAiWithToolsAsync, BuildOpenAiToolBody

### SettingsWindow.UI.cs 분할 (802줄 → 310줄)
- SettingsWindow.Storage.cs (167줄): RefreshStorageInfo, BtnStorageCleanup_Click 등
- SettingsWindow.HotkeyUI.cs (127줄): RefreshHotkeyBadges, EnsureHotkeyInCombo, GetKeyName 등
- SettingsWindow.DevMode.cs (90줄): DevModeCheckBox_Checked, UpdateDevModeContentVisibility

## 빌드 결과: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 20:51:26 +09:00
f5a1ba999c [Phase 45] AppSettings.cs 클래스 파일 분리 (57% 감소)
31개 클래스 혼재 AppSettings.cs (1,320줄)를 3개 파일로 분리:
- AppSettings.cs → 564줄 (AppSettings·LauncherSettings·CustomThemeColors 등 17개 클래스)
- AppSettings.LlmSettings.cs → 481줄 (LlmSettings 408줄·CodeSettings)
- AppSettings.AgentConfig.cs → 284줄 (권한·훅·이벤트·모델·프리셋 등 12개 클래스)

모두 독립 top-level 클래스 (partial 불필요)
빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 20:10:03 +09:00
35e6e4c060 [Phase 44] LauncherViewModel·SettingsWindow.Tools·MarkdownRenderer 파셜 분할
LauncherViewModel (805줄 → 402줄, 50% 감소):
- LauncherViewModel.FileAction.cs (154줄): 파일 액션 서브메뉴, EnterActionMode, ExitActionMode
- LauncherViewModel.Commands.cs (273줄): CopySelectedPath, Favorite, Terminal, 클립보드 병합, INotifyPropertyChanged
- 오류 수정: FileAction.cs에 using AxCopilot.Themes 누락 → 추가

SettingsWindow.Tools (875줄 → 605줄):
- SettingsWindow.ToolCards.cs (283줄): AX Agent 서브탭 전환 + 도구 관리 카드 UI

MarkdownRenderer (825줄 → 621줄):
- MarkdownRenderer.Highlighting.cs (215줄): 구문 하이라이팅 전체 분리

빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 20:03:25 +09:00
2cf1fcd411 [Phase 43] 4개 대형 파일 파셜 클래스 분할
SettingsWindow.AgentConfig (1,202줄):
- AgentConfig.cs → 608줄 (등록모델·스킬·프롬프트·AI토글·사내외모드)
- AgentHooks.cs → 605줄 (에이전트훅·MCP서버·감사로그·폴백설정)

ChatWindow.Presets (1,280줄):
- Presets.cs → 315줄 (대화 주제 버튼)
- CustomPresets.cs → 978줄 (커스텀 프리셋 관리·하단바·포맷메뉴)

ChatWindow.PreviewAndFiles (1,105줄):
- PreviewAndFiles.cs → 709줄 (미리보기 패널)
- FileBrowser.cs → 408줄 (에이전트 진행률 바·파일 탐색기)

WorkflowAnalyzerWindow (929줄):
- WorkflowAnalyzerWindow.xaml.cs → 274줄 (리사이즈·탭·데이터수집)
- WorkflowAnalyzerWindow.Charts.cs → 667줄 (차트·타임라인·패널·유틸)

빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 19:55:03 +09:00
795ce835e2 [Phase 42-보완] CLAUDE.md 커밋 메시지 작성 규칙 추가
커밋 메시지 관련 지침 추가:
- 언어: 반드시 한글로 작성
- 제목: [PhaseXX] 한글 요약 형식
- 본문: 변경 파일·줄 수·주요 내용 항목별 상세 기술
- 모호한 영문 단독 커밋 금지

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 19:45:52 +09:00
bf37800311 [Phase 42] ChatWindow.ResponseHandling·LlmService 파셜 분할
ChatWindow.ResponseHandling (1,494줄 → 741줄, 50% 감소):
- ChatWindow.MessageActions.cs (277줄): 버튼이벤트, 메시지검색, 에러복구
- ChatWindow.StatusAndUI.cs (498줄): 우클릭, 팁, AX.md, 글로우, 토스트, 하단바

LlmService (1,010줄 → 263줄, 74% 감소):
- LlmService.Streaming.cs (516줄): 스트리밍 응답, 백엔드별 구현
- LlmService.Helpers.cs (252줄): 헬퍼, 토큰 파싱, Dispose
- 빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 19:45:26 +09:00
c9a6e6442f [Phase 41] SettingsViewModel·AgentLoopService 파셜 클래스 분할
SettingsViewModel (1,855줄 → 320줄, 82.7% 감소):
- SettingsViewModel.Properties.cs (837줄): 바인딩 프로퍼티 전체
- SettingsViewModel.Methods.cs (469줄): Save/Browse/Add 등 메서드
- SettingsViewModelModels.cs (265줄): 6개 모델 클래스 분리

AgentLoopService (1,823줄 → 1,334줄, 26.8% 감소):
- AgentLoopService.Execution.cs (498줄): 병렬 도구 실행, ToolExecutionState
- 빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 19:37:24 +09:00
6448451d78 [Phase 40] ChatWindow 2차 파셜 클래스 분할 (94.5% 감소)
4,767줄 ChatWindow.xaml.cs를 7개 파셜 파일로 추가 분할
메인 파일: 4,767줄 → 262줄 (94.5% 감소)
전체 ChatWindow 파셜 파일: 15개

- ChatWindow.Controls.cs (595줄): 사용자정보, 스크롤, 제목편집, 탭전환
- ChatWindow.WorkFolder.cs (359줄): 작업폴더, 폴더 설정
- ChatWindow.PermissionMenu.cs (498줄): 권한, 파일첨부, 사이드바
- ChatWindow.ConversationList.cs (747줄): 대화목록, 제목편집, 검색
- ChatWindow.Sending.cs (720줄): 전송, 편집모드, 타이머
- ChatWindow.HelpCommands.cs (157줄): /help 도움말
- ChatWindow.ResponseHandling.cs (1,494줄): 응답재생성, 스트리밍, 토스트
- 빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 19:21:52 +09:00
0c997f0149 [Phase 39] FontFamily 캐싱 + LauncherWindow 파셜 클래스 분할
- ThemeResourceHelper에 CascadiaCode/ConsolasCode/ConsolasCourierNew 정적 필드 추가
- 25개 파일, 89개 new FontFamily(...) 호출을 정적 캐시 참조로 교체
- LauncherWindow.xaml.cs (1,563줄) → 5개 파셜 파일로 분할 (63% 감소)
  - LauncherWindow.Theme.cs (116줄): ApplyTheme, 커스텀 딕셔너리 빌드
  - LauncherWindow.Animations.cs (153줄): 무지개 글로우, 애니메이션 헬퍼
  - LauncherWindow.Keyboard.cs (593줄): 단축키 20종, ShowToast, IME 검색
  - LauncherWindow.Shell.cs (177줄): Shell32, SendToRecycleBin, 클릭 핸들러
- 빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 18:54:35 +09:00
08524466d2 [Phase 37-38] ChatWindow·SettingsWindow 파셜 클래스 분할 + 코드 품질 개선
Phase 37 — ChatWindow God Class 파셜 분할 (10,184 → 4,767줄, -53%)
  - ChatWindow.MessageRendering.cs (522줄): 메시지 렌더링, 체크 아이콘
  - ChatWindow.SlashCommands.cs (579줄): 슬래시 명령, 드래그앤드롭
  - ChatWindow.AgentSupport.cs (475줄): 에이전트 루프, 시스템 프롬프트
  - ChatWindow.TaskDecomposition.cs (1,170줄): Plan UI, Diff, 이벤트 배너
  - ChatWindow.Presets.cs (1,280줄): 프리셋, 하단바, 설정 토글
  - ChatWindow.ModelSelector.cs (395줄): 모델 선택, 대화 관리
  - ChatWindow.PreviewAndFiles.cs (1,105줄): 미리보기, 파일 탐색기

Phase 38 — SettingsWindow 파셜 분할 (3,216 → 373줄, -88%)
  - SettingsWindow.UI.cs (802줄): 탭 전환, 독바, 스토리지, 핫키
  - SettingsWindow.Tools.cs (875줄): 도구 카드 UI, AX Agent 탭
  - SettingsWindow.AgentConfig.cs (1,202줄): 모델, 스킬, 훅, MCP

Phase 35-36 — 코드 품질 심층 정리
  - bare catch 전량 → catch (Exception) (109개 파일)
  - ColorConverter → ThemeResourceHelper.HexBrush() (81건)
  - Application.Current as App → CurrentApp 프로퍼티 (15개 파일)
  - AgentContext.Settings DI 주입 (11개 에이전트 도구)
  - PopupMenuHelper 실제 적용 (4개 팝업)

CLAUDE.md: 작업 후 깃 푸시 + 오류 시 롤백 지침 추가
docs: TECHNOLOGY_OVERVIEW.md 신규 작성 (762줄 기술 문서)

빌드: 경고 0, 오류 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 18:37:54 +09:00
deffb33cf9 Initial commit to new repository 2026-04-03 18:23:52 +09:00