Compare commits

..

166 Commits

Author SHA1 Message Date
f9d18fba08 AX Agent 폴더 데이터 활용 사용자 옵션 제거 및 자동 정책 고정
Some checks are pending
Release Gate / gate (push) Waiting to run
- 코워크/코드의 폴더 내 문서 활용을 사용자 설정에서 제거하고 탭별 자동 정책으로 고정
- ChatWindow 하단 데이터 활용 버튼과 AX Agent 내부 설정 row, 메인 설정/구형 설정창의 관련 UI 제거
- Chat/Cowork/Code 탭별 자동 데이터 활용 정책을 none/passive/active로 고정하고 저장 경로에서 사용자 선택값 반영 제거
- README와 DEVELOPMENT 문서에 변경 이력 및 적용 기준 반영
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ (경고 0 / 오류 0)
2026-04-05 23:06:38 +09:00
f0af86cc1e AX Agent transcript 렌더 구조를 분리하고 권한/도구 결과 표시 체계를 정리한다
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow.xaml.cs에 몰려 있던 의견 요청, 계획 승인, 작업 요약 렌더를 partial 파일로 분리해 transcript 책임을 낮췄다.

- PermissionRequestPresentationCatalog와 ToolResultPresentationCatalog를 추가해 권한 요청 및 도구 결과 badge를 타입별로 해석하도록 정리했다.

- AppStateService에 OperationalStatusPresentationState를 추가하고 상태선 계산을 presentation 계층으로 한 번 더 분리했다.

- README.md, docs/DEVELOPMENT.md, docs/claw-code-parity-plan.md에 2026-04-06 00:58 (KST) 기준 변경 내용을 반영했다.

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 22:55:56 +09:00
13f0e23ed5 AX Agent 테마 프리셋 2종 추가
Some checks failed
Release Gate / gate (push) Has been cancelled
AX Agent 전용 테마를 재점검해 Nord와 Ember 프리셋을 새로 추가했습니다.

내부 설정의 테마 스타일 카드에서 새 프리셋을 바로 선택할 수 있게 연결했고 system, light, dark 모드 조합으로 동일하게 적용되도록 정리했으며 문서 이력과 빌드 검증도 함께 반영했습니다.
2026-04-05 22:41:15 +09:00
7cb27b70f8 내부 설정 훅 섹션 잘림 레이아웃 보정
Some checks failed
Release Gate / gate (push) Has been cancelled
AX Agent 내부 설정의 도구 훅 실행 타임아웃과 등록된 훅 영역에서 컨트롤이 잘리던 레이아웃을 조정했습니다.

슬라이더와 값 배지 컬럼 폭, 훅 추가 버튼 최소 폭과 여백을 넓혀 작은 폭에서도 텍스트와 컨트롤이 안정적으로 보이도록 정리했고 문서 이력과 빌드 검증도 함께 반영했습니다.
2026-04-05 22:37:11 +09:00
61f82bdd10 내부 설정 개발자 토글 저장 경로 복구
Some checks failed
Release Gate / gate (push) Has been cancelled
AX Agent 내부 설정 개발자 탭의 워크플로우 시각화, 전체 호출·토큰 합계 표시, 감사 로그 토글에 변경 이벤트를 연결했습니다.

오버레이 재동기화 시 기본값으로 되돌아가던 문제를 막고 즉시 저장되도록 보정했으며 문서 이력과 빌드 검증도 함께 반영했습니다.
2026-04-05 22:33:39 +09:00
fa349c2057 프리셋 선택 시 새 대화 중복 생성 방지
Some checks failed
Release Gate / gate (push) Has been cancelled
AX Agent 채팅과 코워크에서 메시지와 입력이 없는 fresh conversation에 프리셋만 선택해도 새 대화가 반복 생성되던 흐름을 수정했습니다.

기존 빈 대화가 있으면 해당 대화를 재사용하고 프리셋 메타데이터만 갱신하도록 정리했으며 문서 이력과 빌드 검증도 함께 반영했습니다.
2026-04-05 22:30:53 +09:00
be7328184a 코드 탭 폴더 데이터 활용 기본 허용 및 파일명 강조 적용
Some checks failed
Release Gate / gate (push) Has been cancelled
코드 탭에서는 폴더 내 데이터 활용을 항상 적극 활용으로 고정하고 하단 버튼과 내부 설정 옵션을 숨겨 사용 흐름을 단순화했습니다.

코워크와 코드 탭의 사용자 메시지도 파일 경로 강조 렌더러를 사용하도록 바꿔 폴더 하위 파일명 입력 시 파란색으로 표시되게 맞췄습니다.

README와 DEVELOPMENT 문서에 변경 이력을 반영했고 Release 빌드에서 경고 0 오류 0을 확인했습니다.
2026-04-05 22:28:29 +09:00
905ea41ed3 코드 탭 Git 브랜치 선택 UI 단순화
- 하단 Git 브랜치 버튼을 상태판형에서 브랜치 선택 버튼 형태로 정리\n- 브랜치 버튼 기본 노출에서 변경 파일/추가/삭제 수치를 숨기고 브랜치명 중심으로 단순화\n- README 및 DEVELOPMENT 문서 이력 갱신\n\n검증:\n- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\\n- 경고 0 / 오류 0
2026-04-05 22:21:58 +09:00
d0fa54f10e AX Agent 내부 설정 MCP 서버 관리와 대화 스타일 섹션 복구
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 내부 설정 공통 탭에 대화 스타일 섹션 제목을 복구해 문서 형태/디자인 스타일 저장 항목을 명확히 노출

- 스킬 탭 MCP 서버 영역에 서버 추가 버튼을 복원하고 목록 카드에서 활성화 전환과 삭제를 바로 처리하도록 보강

- 오버레이 저장 경로를 그대로 사용해 내부 설정에서 변경 즉시 저장되도록 유지

- README와 DEVELOPMENT 문서에 2026-04-06 00:45 (KST) 기준 이력 반영 및 Release 빌드 경고 0 오류 0 확인
2026-04-05 22:09:29 +09:00
1948af3cc4 AX Agent 프리뷰 UI를 claw-code 스타일로 정리하고 프리뷰 surface를 공통화
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 권한 승인 프리뷰에 공통 preview surface helper를 도입해 제목/요약/본문 box 구성을 일관되게 정리함
- 우측 파일 프리뷰 패널에 파일명, 경로, 형식·크기 메타 헤더를 추가하고 텍스트 프리뷰를 bordered preview box 안에 렌더하도록 개선함
- README와 DEVELOPMENT 문서에 2026-04-06 01:08 (KST) 기준 변경 이력 반영 완료
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0 확인
2026-04-05 22:03:16 +09:00
53965083e3 AX Agent 메시지 액션과 응답 메타 표시 개선\n\n- assistant 메시지에 응답시간과 토큰 수를 저장하는 메타 필드 추가\n- 응답 커밋 시 토큰 사용량과 경과 시간을 메시지 모델에 함께 기록하도록 엔진과 전송 경로 보강\n- 사용자/assistant 메시지 액션 바를 기본 저강도 노출과 hover 강조 방식으로 바꿔 복사 편집 재생성 좋아요 싫어요가 보이도록 정리\n- README와 DEVELOPMENT 문서에 메시지 액션 및 응답 메타 개선 이력 반영\n- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-05 21:54:15 +09:00
ac4aada0af AX Agent 새 대화 세션 복원 오류 수정\n\n- 새 대화 생성 직후 저장되지 않은 fresh conversation을 우선 유지하도록 ChatSessionStateService LoadOrCreateConversation 경로를 보정\n- 기억된 대화 ID가 없는 상태에서 최신 저장 대화를 다시 불러와 기존 transcript가 복원되던 문제 차단\n- README와 DEVELOPMENT 문서에 새 대화 세션 복원 버그 수정 이력 추가\n- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-05 21:48:22 +09:00
53afdb3472 vLLM 모델 해석 및 max_tokens 상한 보정
Some checks failed
Release Gate / gate (push) Has been cancelled
vLLM 연결 시 등록 모델 alias와 실제 모델 ID가 섞여 payload로 전달되던 경로를 보정해 RegisteredModel에서 실제 모델명을 우선 찾아 요청에 사용하도록 수정했다.

OpenAI-compatible 일반 대화와 도구 호출 모두 vLLM 서버 허용 범위를 넘지 않도록 max_tokens를 자동 보정하도록 통일했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
2026-04-05 21:40:43 +09:00
5765888229 AX Agent 상단 탭 여백 비율 재조정 및 문서 반영
Some checks failed
Release Gate / gate (push) Has been cancelled
상단 중앙 채팅/Cowork/코드 탭 그룹의 버튼 패딩, 최소 폭/높이와 바깥 pill 래퍼 높이/패딩을 한 단계 더 줄여 바깥 테두리 안쪽 여백이 살아 있도록 조정했다.

README와 DEVELOPMENT 문서에 2026-04-06 00:31 (KST) 기준 변경 이력을 추가했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
2026-04-05 21:35:35 +09:00
2958306caf AX Agent 기본 시작 높이 상향 조정
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 채팅창 기본 Height를 820에서 880으로 상향
- 처음 열었을 때 상하 여백과 프리셋 영역이 더 여유 있게 보이도록 조정
- README 및 DEVELOPMENT 문서에 2026-04-06 00:27 (KST) 기준 이력 반영
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ 경고 0 오류 0 확인
2026-04-05 21:28:40 +09:00
216b050398 claw-code 대비 AX Agent 품질 향상 계획 구체화
Some checks failed
Release Gate / gate (push) Has been cancelled
- claw-code 소스 구조와 AX Agent 구조를 다시 대조해 추가 품질 향상 계획 수립
- transcript renderer 분리, permission presentation catalog, tool result taxonomy, plan approval inline 마감, runtime summary 계층화, regression prompt ritual 고정 계획 문서화
- 런타임 핵심 설정과 개발자 전용 이동 후보 설정을 구분해 정리
- README 및 DEVELOPMENT 문서에 2026-04-06 00:22 (KST) 기준 이력 반영
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ 경고 0 오류 0 확인
2026-04-05 21:26:25 +09:00
5352ca2ab2 AX Agent 상단 탭 여백 및 비율 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 상단 중앙 탭 버튼의 패딩과 최소 크기를 소폭 줄여 과하게 꽉 찬 느낌 완화
- 탭 그룹 외곽 래퍼 높이와 패딩을 함께 줄여 레퍼런스에 가까운 여유 간격 확보
- README 및 DEVELOPMENT 문서에 2026-04-06 00:14 (KST) 기준 변경 이력 반영
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ 경고 0 오류 0 확인
2026-04-05 21:23:52 +09:00
929c1e9f05 AX Agent 등록 모델 리스트 UI 정리 및 액션 안정화
Some checks failed
Release Gate / gate (push) Has been cancelled
- 내부 설정 공통 탭에서 등록 모델 상단 중복 선택 칩 UI 제거
- 등록 모델 관리 영역을 리스트 중심 구조로 정리
- 선택 편집 삭제 액션을 팝업 친화적인 클릭 row 방식으로 변경
- 오버레이 동기화 경로에서 제거된 모델 칩 렌더 호출 삭제
- README 및 DEVELOPMENT 문서에 2026-04-06 00:08 (KST) 기준 이력 반영
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ 경고 0 오류 0 확인
2026-04-05 21:17:13 +09:00
bfa1e342c0 AX Agent 토큰 라벨 닫힘 보강 및 전송 버튼 정렬 개선
Some checks failed
Release Gate / gate (push) Has been cancelled
- 토큰 hover popup 닫힘 경로를 창 전체 마우스 이동, 클릭, 비활성화 기준까지 확장해 라벨이 남는 현상 완화
- 컨텍스트 라벨은 카드 밖으로 벗어났을 때 더 빠르게 닫히도록 idle 검사 경로 보강
- 전송 버튼 크기를 키우고 내부 send glyph 크기와 오프셋을 조정해 작고 치우쳐 보이던 인상 보정
- README 및 DEVELOPMENT 문서에 2026-04-06 00:01 (KST) 기준 변경 이력 반영

검증
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0 확인
2026-04-05 21:11:39 +09:00
8331c0eedc AX Agent 컨텍스트 토큰 심볼 잘림 및 hover 라벨 닫힘 개선
- 하단 컨텍스트 토큰 카드 외곽 크기와 내부 원형 그리드 여백을 조정해 파이 심볼 왼쪽 잘림 인상 보정
- usage arc 및 threshold marker 계산 중심점을 실제 심볼 크기에 맞게 재설정
- hover popup을 비상호작용 툴팁 형태로 바꿔 카드 밖으로 벗어나면 더 자연스럽게 닫히도록 정리
- README 및 DEVELOPMENT 문서에 2026-04-05 23:55 (KST) 기준 변경 이력 반영

검증
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0 확인
2026-04-05 21:04:08 +09:00
cf59a010ac AX Agent 상단 탭 잘림 보정 및 빈 상태 비율 조정
Some checks failed
Release Gate / gate (push) Has been cancelled
- 상단 중앙 탭의 글자 잘림을 줄이기 위해 탭 버튼 폰트, 패딩, 최소 크기와 탭 래퍼 크기를 소폭 축소
- 빈 상태 상단 아이콘과 제목, 설명 크기를 조정해 프리셋 카드 한 장과의 시각 비율을 더 자연스럽게 정리
- 상단 헤더와 중앙 안내 블록의 밀도를 분리해 탭은 더 단정하게, 빈 상태는 더 또렷하게 보이도록 조정
- README 및 DEVELOPMENT 문서에 2026-04-05 23:49 (KST) 기준 변경 이력 반영

검증
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0 확인
2026-04-05 21:01:28 +09:00
1c9b13c14f AX Agent 권한 모드 팝업 단순 리스트형으로 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 권한 모드 팝업 폭과 padding, 그림자 강도를 줄여 레퍼런스처럼 가벼운 드롭다운 패널 스타일로 정리
- 상세 정보 섹션과 부가 요약 영역을 제거하고 실제 선택 가능한 권한 모드 행만 남기도록 단순화
- 계획 모드는 레거시로 제외하고 권한 요청, 편집 자동 승인, 권한 건너뛰기 중심으로 재배치
- 각 권한 모드 행은 왼쪽 accent bar 대신 라운드 row 리스트형으로 바꾸고 체크 위치와 텍스트 계층 정리
- README 및 DEVELOPMENT 문서에 2026-04-05 23:44 (KST) 기준 변경 이력 반영

검증
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0 확인
2026-04-05 20:54:54 +09:00
87c05720ce AX Agent 컨텍스트 토큰 hover 라벨 닫힘 및 정보 표시 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 하단 컨텍스트 토큰 popup 닫힘 판정을 IsMouseOver 중심에서 실제 마우스 좌표 기준으로 보강
- 마우스를 떼었는데도 hover 라벨이 남아 있던 문제를 줄이도록 card/popup 경계 검사 로직 정리
- popup 내용에서 모델명 및 오늘 사용량 줄을 제거하고 현재 사용량과 자동 압축 기준만 남겨 정보 밀도 단순화
- README 및 DEVELOPMENT 문서에 2026-04-05 23:38 (KST) 기준 변경 이력 반영

검증
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0 확인
2026-04-05 20:50:51 +09:00
25031d655d AX Agent 프리셋 아이콘과 빈 상태 심볼 비율 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 작업 유형/대화 주제 프리셋 카드 내부 아이콘 크기와 원형 배경 비율을 줄여 과하게 커 보이던 인상을 완화
- 기타 및 프리셋 추가 카드의 심볼 크기도 함께 조정해 프리셋 행 전체 시각 균형 통일
- 빈 상태 상단 중앙 심볼과 제목/설명 크기를 재조정해 프리셋 카드와 같은 밀도로 보이게 정리
- README 및 DEVELOPMENT 문서에 2026-04-05 23:33 (KST) 기준 변경 이력 반영

검증
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0 확인
2026-04-05 20:48:21 +09:00
793a301353 AX Agent 작업 폴더 선택 팝업 스타일 정리 및 최근 항목 UI 개선
Some checks failed
Release Gate / gate (push) Has been cancelled
- 최근 작업 폴더 팝업 외곽 radius, 그림자, 내부 여백을 조정해 레퍼런스에 더 가까운 카드형 스타일로 보정
- 최근 폴더 항목을 하단 구분선 방식에서 개별 라운드 row 방식으로 변경하고 선택 체크와 텍스트 계층을 정돈
- 다른 폴더 선택 행도 동일한 row 스타일로 통일해 팝업 전체 시각 언어를 일관되게 정리
- README 및 DEVELOPMENT 문서에 2026-04-05 23:28 (KST) 기준 변경 이력 반영

검증
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0 확인
2026-04-05 20:45:30 +09:00
a5790e28fb AX Agent 상단 탭 잘림 및 메시지 transcript 정렬 보정
Some checks failed
Release Gate / gate (push) Has been cancelled
- 상단 헤더 첫 행 높이와 중앙 탭 래퍼 패딩/최소 높이를 늘려 채팅, Cowork, 코드 탭 글자 잘림 수정
- 사용자, assistant, streaming 메시지 컨테이너를 동일 transcript 폭 기준으로 통일
- wrapper는 같은 중심 축을 공유하고 내부 bubble만 좌우 정렬되도록 변경해 메시지 박스 정렬 불일치 완화
- README 및 DEVELOPMENT 문서에 2026-04-05 23:22 (KST) 기준 변경 이력 반영

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0 확인
2026-04-05 20:40:51 +09:00
00d284b725 AX Agent 좌측 패널 드래그 리사이즈 지원 추가
Some checks failed
Release Gate / gate (push) Has been cancelled
- 좌측 사이드바와 본문 사이 경계선에 GridSplitter 추가
- 사이드바가 열려 있을 때만 드래그 가능하도록 splitter 표시 상태 연동
- 사용자가 조절한 폭을 저장해 사이드바를 닫았다 다시 열어도 마지막 너비 유지
- 열기/닫기 애니메이션이 현재 폭과 저장 폭을 함께 사용하도록 정리
- README 및 DEVELOPMENT 문서에 2026-04-05 23:15 (KST) 기준 변경 이력 반영

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0 확인
2026-04-05 20:33:09 +09:00
891133a6bf AX Agent 좌측 패널 글자 크기 및 대화 목록 가독성 개선
Some checks failed
Release Gate / gate (push) Has been cancelled
- 좌측 사이드바 폭을 소폭 확장하고 헤더, 새 대화, 검색, 상단 필터, 보조 메뉴, 전체 삭제, 사용자 영역 타이포와 아이콘 크기 상향
- 대화 목록 그룹 헤더, 제목, 날짜, 실행 상태, 실행 요약, 편집 아이콘 크기와 카드 패딩 조정
- 좌측 패널 텍스트가 지나치게 작아 보이던 문제를 전체 시각 균형 기준으로 보정
- README 및 DEVELOPMENT 문서에 2026-04-05 23:09 (KST) 기준 변경 이력 반영

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0 확인
2026-04-05 20:29:57 +09:00
b1e11b27bc AX Agent 새 대화 전환 버그 수정 및 상태 초기화 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 새 대화 시작 시 LoadOrCreateConversation 재호출로 기존 대화가 다시 복원되던 경로 제거
- ClearCurrentConversation 이후 항상 fresh conversation 생성으로 current conversation 전환 고정
- 새 대화 전환 시 대화별 설정, 압축 메트릭, 앱 상태, 프리셋 안내, 조건부 스킬 상태를 새 세션 기준으로 재동기화
- 빈 transcript를 다시 렌더하도록 정리해 첫 화면 깜빡임 후 기존 메시지가 남는 현상 수정
- README 및 DEVELOPMENT 문서에 2026-04-05 23:02 (KST) 기준 변경 이력 반영

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0 확인
2026-04-05 20:26:59 +09:00
f79e657895 AX Agent 메시지 메타 가독성과 끝단 정렬 보정
Some checks failed
Release Gate / gate (push) Has been cancelled
- 사용자와 assistant 메시지 행 여백을 줄여 transcript 좌우 끝단 정렬감을 높였습니다.
- AX 에이전트 라벨, 아이콘, 시간 표기 글꼴 크기와 대비를 키워 메타 정보 가독성을 보강했습니다.
- 관련 변경 이력을 README와 DEVELOPMENT 문서에 반영했습니다.

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0
2026-04-05 20:22:30 +09:00
1778b855c5 런처 클립보드 붙여넣기 포커스 복원 경로 통일
Some checks failed
Release Gate / gate (push) Has been cancelled
- 클립보드 히스토리, 클립보드 변환, 순차 붙여넣기 실행 경로에 공통 포커스 복원 helper를 추가했습니다.
- 이전 활성 창 복원, 최소 대기, Ctrl+V 주입 순서를 하나로 맞춰 포커스 누락으로 내용이 원래 창에 들어가지 않던 문제를 완화했습니다.
- 관련 변경 이력을 README와 DEVELOPMENT 문서에 반영했습니다.

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0
2026-04-05 20:19:44 +09:00
db957039d4 AX Agent 프리셋 카드 hover 깜빡임 완화
Some checks failed
Release Gate / gate (push) Has been cancelled
- 채팅과 코워크 프리셋 카드 설명 라벨을 Visibility 토글 대신 Opacity 전환으로 변경
- 카드 hover 중 설명 라벨 표시 때문에 레이아웃이 다시 잡히며 깜빡이던 현상 완화
- README와 DEVELOPMENT 문서에 2026-04-05 22:57 (KST) 기준 작업 이력 반영
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ (경고 0 / 오류 0)
2026-04-05 20:11:10 +09:00
78905d16c0 AX Agent 토큰 사용 라벨 hover 종료와 스타일 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 하단 컨텍스트 토큰 라벨이 hover 후 남아 있던 문제를 카드와 팝업의 실제 hover 상태 기준으로 닫히도록 수정
- 토큰 카드가 숨겨질 때 popup도 함께 닫히도록 보강
- 토큰 심볼과 popup 스타일을 얇은 테두리와 약한 그림자 중심으로 정리
- README와 DEVELOPMENT 문서에 2026-04-05 22:53 (KST) 기준 작업 이력 반영
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ (경고 0 / 오류 0)
2026-04-05 20:08:15 +09:00
2975bb39a2 AX Agent 최대 컨텍스트 토큰 프리셋 확장
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 내부 설정의 최대 컨텍스트 토큰 프리셋에 32K와 128K 중간값 추가
- 현재 MaxContextTokens 값이 중간 구간에 있어도 가장 가까운 프리셋 카드가 자연스럽게 활성화되도록 선택 매핑 확장
- README와 DEVELOPMENT 문서에 2026-04-05 22:48 (KST) 기준 작업 이력 반영
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ (경고 0 / 오류 0)
2026-04-05 20:05:17 +09:00
5e63f13cf3 AX Agent 내부 설정 중복 실행 옵션 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 내부 설정의 실행 방식 블록을 코워크/코드 공통 탭에만 노출되도록 조정
- 코워크와 코드 개별 탭에서 중복 노출되던 호출 간격 최적화, 의사결정 수준 항목 제거
- 레거시 실행 전 계획 행을 UI에서 삭제하고 관련 문서 이력 갱신
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ (경고 0 / 오류 0)
2026-04-05 20:02:45 +09:00
1f581454e1 AX Agent 작업 폴더 바 X 버튼 제거 및 정렬 보정
- Cowork/Code 하단 작업 폴더 바에서 불필요한 폴더 해제 X 버튼 제거
- 작업 폴더 바 그리드 컬럼 구조를 다시 맞춰 데이터 활용, 권한, Git 상태가 더 자연스럽게 이어지도록 정렬 보정
- README와 DEVELOPMENT 문서에 2026-04-05 22:39 (KST) 기준 작업 이력 반영
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ (경고 0 / 오류 0)
2026-04-05 19:59:57 +09:00
cdd99fd4d2 AX Agent 좌측 중복 필터 메뉴 정리 및 문서 갱신
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 사이드바에서 주제/작업 유형/워크스페이스 보조 필터를 숨기고 상단 공통 필터만 유지
- 탭 전환 시 UpdateSidebarModeMenu 경로에서도 중복 필터 메뉴가 다시 나타나지 않도록 고정
- README와 DEVELOPMENT 문서에 2026-04-05 22:34 (KST) 기준 작업 이력 반영
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ (경고 0 / 오류 0)
2026-04-05 19:56:57 +09:00
b44df996c2 AX Agent 선택 주제 안내 위치 조정
Some checks failed
Release Gate / gate (push) Has been cancelled
선택된 대화 주제와 작업 유형 안내 배너를 헤더 중앙에서 입력창 위 중앙으로 옮겼다.

실제 작성 흐름 가까이에서 선택 상태를 확인할 수 있도록 composer 상단 구조에 맞춰 재배치했다.

README와 DEVELOPMENT 문서에 변경 이력과 시점을 반영했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 19:52:42 +09:00
7f8a075553 AX Agent 작업 폴더 팝업 단순화
Some checks failed
Release Gate / gate (push) Has been cancelled
작업 폴더 선택 팝업을 검색과 요약 스트립 중심 구조에서 최근 폴더 목록 중심 구조로 재구성했다.

현재 선택 체크가 보이는 최근 폴더 목록과 다른 폴더 선택 액션만 남겨 캡처와 비슷한 빠른 선택 흐름으로 정리했다.

README와 DEVELOPMENT 문서에 변경 이력과 시점을 반영했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 19:49:53 +09:00
eed87db268 AX Agent 모델 선택 표시 단순화
Some checks failed
Release Gate / gate (push) Has been cancelled
모델 빠른 설정 팝업 하단의 중복 모델 칩 줄을 제거해 리스트 선택만 남기도록 정리했다.

하단 모델 표시 라벨은 서비스명과 모델명을 함께 나열하던 방식에서 현재 모델명 중심의 간결한 표기로 바꿨다.

README와 DEVELOPMENT 문서에 변경 이력과 시점을 반영했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 19:45:20 +09:00
cfacb903e1 AX Agent 프리셋 아이콘 비율 조정
Some checks failed
Release Gate / gate (push) Has been cancelled
대화 주제와 작업 유형 프리셋 카드 내부 아이콘이 과하게 크게 보이던 문제를 조정했다.

빈 상태 상단 심볼은 더 또렷하게 키우고, 프리셋 카드와 기타/프리셋 추가 카드의 아이콘은 한 단계 줄여 전체 균형을 맞췄다.

README와 DEVELOPMENT 문서에 변경 이력과 시점을 반영했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 19:43:03 +09:00
3198f822f5 AX Agent 상단 탭 복구 및 헤더 세그먼트 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
AX Agent 상단 탭이 비정상적인 타원 형태로 깨져 보이던 문제를 수정했다.

TopTabBtn 스타일을 다시 정리해 채팅/Cowork/코드 pill 세그먼트가 예전 형태로 안정적으로 렌더되도록 복구했다.

헤더 중앙 탭 래퍼의 배경, 코너, 패딩, 최소 높이를 조정해 탭 그룹이 자연스럽게 보이도록 맞췄다.

README와 DEVELOPMENT 문서에 변경 이력과 시점을 반영했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 19:40:11 +09:00
21dc280e57 AX Agent 공통 설정 상단 정리와 패널 토글 아이콘 개선
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 내부 설정 공통 탭에서 테마 스타일과 테마 모드를 서비스/모델보다 위로 재배치함
- 좌측 사이드바 토글 버튼을 햄버거 아이콘 대신 패널 열기/닫기 의미가 드러나는 아이콘으로 교체함
- 메뉴 버튼과 혼동되지 않도록 상단 헤더 UX를 정리함
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 19:29:23 +09:00
28e88d615f 런처 하단 위젯 기본값 비활성화
Some checks failed
Release Gate / gate (push) Has been cancelled
- 런처 하단 위젯 6종의 신규 기본값을 모두 꺼짐 상태로 변경함
- 성능, 포모도로, 메모, 날씨, 일정, 배터리 위젯이 새 설치와 초기화 시 기본 비노출로 시작하도록 조정함
- 기존 사용자 설정은 유지하고 AppSettings 기본값만 변경함
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 19:25:15 +09:00
36828ba199 AX Agent transcript 품질 향상과 회귀 기준 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 도구/스킬 transcript 표시 카탈로그를 분리해 파일, 빌드, Git, 문서, 질문, 제안, 스킬 분류를 공통 라벨로 통일함
- task summary popup을 active 우선, recent/debug 보조 기준으로 축소하고 transcript policy helper를 partial로 분리함
- AX Agent와 claw-code 비교용 회귀 프롬프트 세트를 별도 문서로 추가하고 관련 개발 문서를 즉시 갱신함
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 19:20:05 +09:00
8dc2841da6 AX Agent 도구·스킬 transcript 표현을 claw-code 기준으로 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 도구/스킬 이벤트 배지를 역할 중심 라벨로 단순화
- raw snake_case 대신 사람이 읽기 쉬운 표시명과 /skill 형식 적용
- 작업 요약 팝업의 권한/배경 작업 관측성 섹션을 debug 수준으로 제한
- parity 문서와 개발 이력 문서에 tool/skill UX 정리 기준 반영

검증 결과
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0
2026-04-05 19:05:49 +09:00
4cbe60052e AX Agent 질문/의견 요청 흐름을 transcript 우선으로 전환
Some checks failed
Release Gate / gate (push) Has been cancelled
- user_ask 콜백을 별도 팝업 대신 본문 inline 카드 경로로 변경
- 선택지 pill, 직접 입력, 전달/취소 버튼을 timeline 안에서 처리
- 계획 승인과 질문 요청이 같은 transcript-first UX 원칙을 따르도록 정리
- claw-code parity 문서와 개발 이력 문서에 질문/승인 UX 기준을 반영

검증 결과
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0
2026-04-05 18:59:32 +09:00
6c5b0c5be3 AX Agent 계획 승인 흐름을 transcript 우선으로 전환하고 claw-code 비교 기준을 문서화
- claw-code 대비 canonical prompt set 10종을 parity 문서에 추가해 Chat/Cowork/Code 회귀 검증 기준을 고정함
- AX와 claw-code의 도구/스킬 차이를 문서에 정리해 남은 parity 목표를 명확히 함
- PlanViewerWindow를 즉시 띄우지 않고 inline 승인/수정/취소 버튼을 transcript에 먼저 노출하도록 계획 승인 흐름을 변경함
- PlanViewerWindow는 하단 계획 버튼으로 여는 보조 상세 보기 역할로 축소함
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\ (경고 0 / 오류 0)
2026-04-05 18:53:28 +09:00
a3b3522bb7 AX Agent transcript 보조 메타를 마지막으로 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- StatusElapsed, StatusTokens를 값이 있을 때만 노출되게 바꿔 하단 상태선 빈 공간 제거

- ConversationQuickStrip을 실제 running/spotlight count가 있을 때만 보이게 조정

- README와 DEVELOPMENT 문서에 2026-04-05 21:43 (KST) 기준 최종 100% 마감 판단과 검증 결과 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 18:21:48 +09:00
3ba7c52980 AX Agent 계획 카드를 compact transcript 형태로 마감
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow planning card를 기본 접힘 상태의 요약형 카드로 전환

- 단계 목록은 펼치기/접기에서만 보이게 해 claw-code식 읽기 중심 transcript 흐름으로 정리

- README와 DEVELOPMENT 문서에 2026-04-05 21:36 (KST) 기준 100% 마감 판단과 검증 결과 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 18:19:11 +09:00
854f190531 AX Agent 레거시 plan 필드를 최종 제거
Some checks failed
Release Gate / gate (push) Has been cancelled
- AppSettings에서 planMode와 enablePlanModeTools JSON 필드를 삭제

- SubAgentTool의 llm.PlanMode 고정 대입 제거로 clean 코드 기준 PlanMode 참조를 0으로 정리

- README와 DEVELOPMENT 문서에 2026-04-05 21:29 (KST) 기준 변경 내역과 엔진 100% 판정 근거 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 18:16:41 +09:00
a0ce5846e1 AX Agent 구형 설정창의 PlanMode dead UI를 제거
Some checks failed
Release Gate / gate (push) Has been cancelled
- AgentSettingsWindow에서 계획 모드와 Plan Mode 도구 UI 및 save/load/event 코드 제거

- clean 파일 기준 검색상 남은 PlanMode 참조를 JSON 호환용 AppSettings와 SubAgentTool 안전 고정 경로로 축소

- README와 DEVELOPMENT 문서에 2026-04-05 21:20 (KST) 기준 변경 내역과 parity 99% 재평가 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 18:12:31 +09:00
1eb56404c7 AX Agent 설정/오버레이의 PlanMode dead UI를 제거
Some checks failed
Release Gate / gate (push) Has been cancelled
- SettingsWindow와 ChatWindow에서 숨김 PlanMode row, hidden toggle, dead handler와 binding 제거

- SettingsViewModel dead PlanMode property/save 경로 정리로 현재 정책과 설정 모델을 일치시킴

- README와 DEVELOPMENT 문서에 2026-04-05 21:12 (KST) 기준 변경 내역과 parity 98% 재평가 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 18:07:14 +09:00
d6bfca249e AX Agent 상태 모델의 PlanMode 잔재를 제거
Some checks failed
Release Gate / gate (push) Has been cancelled
- AppStateService PermissionPolicyState에서 레거시 PlanMode 필드를 제거

- 설정 로드 시 고정 off 값을 상태 모델에 복사하던 경로 정리

- README와 DEVELOPMENT 문서에 2026-04-05 21:03 (KST) 기준 변경 내역과 parity 재평가 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 18:01:10 +09:00
12746cdf11 AX Agent 레거시 plan 도구 registry와 상태 라벨을 추가 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- ToolRegistry, SkillService, AgentLoopService에서 enter_plan_mode/exit_plan_mode 등록과 별칭 제거

- AppStateService runtime label을 실행/권한 대기/백그라운드 중심으로 단순화해 queue 메타 기본 노출 축소

- README와 DEVELOPMENT 문서에 2026-04-05 20:56 (KST) 기준 변경 내역과 parity 재평가 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 17:58:33 +09:00
6b645ccbb7 AX Agent 레거시 plan 도구와 상태 배지 노출을 추가 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- code 탭에서 enter_plan_mode/exit_plan_mode 도구를 항상 비활성화해 레거시 설정값이 런타임을 흔들지 않도록 정리

- queue/재시도 대기만 남은 상태에서는 RuntimeActivityBadge와 상단 strip이 기본 노출되지 않게 조정

- idle Cowork/Code 헤더 소음을 줄이도록 ChatWindow 상태 표시 조건을 추가 보정

- README와 DEVELOPMENT 문서에 2026-04-05 20:48 (KST) 기준 변경 내역 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 17:55:01 +09:00
51a398d269 AX Agent 하단 상태/큐 기본 노출 추가 축소
Some checks failed
Release Gate / gate (push) Has been cancelled
- draft queue 패널은 실행중·다음·실패 항목이 없으면 기본 화면에서 숨기도록 조정

- 컨텍스트 사용량 hover 팝업을 현재 모델 사용량과 compact 상태 2줄 요약으로 축소

- README와 DEVELOPMENT 이력에 claw-code parity 기준 하단 UX 정리 내용을 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 17:43:03 +09:00
595f8a76af AX Agent 하단 보조 UI 최소 노출 기준 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- draft queue 패널은 기본 상태에서 실행/다음/실패가 없으면 숨기도록 조정

- 컨텍스트 사용량 hover 팝업을 현재 모델 사용량과 compact 상태 2줄 요약으로 축소

- README와 DEVELOPMENT 이력에 claw-code parity 기준 상태를 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 17:22:11 +09:00
050271e2a9 AX Agent 대기열 적재 경로 공통화 반영
Some checks failed
Release Gate / gate (push) Has been cancelled
- retry, follow-up, branch follow-up, steering 요청이 모두 EnqueueDraftRequest helper를 타도록 정리

- 현재 대화 갱신과 세션 반영 지점을 queue 생성 helper 한 군데로 모아 이후 정책 변경 시 일관성을 높임

- README와 DEVELOPMENT 이력에 claw-code parity 기준 진행 상황을 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 17:18:56 +09:00
4184d89168 AX Agent 큐 요약 최소화와 플랜도구 기본값 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- PlanMode 및 EnablePlanModeTools를 레거시 호환용 설명과 false 기본값 기준으로 정리

- Cowork/Code compact 대기열 요약에서 실행/다음/실패만 기본 노출하고 보류/완료는 상세 보기에서만 보이도록 조정

- claw-code parity 계획 문서와 README, DEVELOPMENT 이력에 현재 상태와 남은 리뷰 항목을 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 17:15:30 +09:00
303a23130b AX Agent 플랜모드 잔재 제거와 상태바 소음 축소 반영
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 내부 설정 오버레이에서 Plan Mode 도구 저장/노출 경로를 false 고정으로 정리

- 메인 설정에 남아 있던 플랜 모드 및 Plan Mode 도구 UI를 숨기고 카드 상태를 off 고정으로 정리

- Cowork/Code 상태바가 debug가 아닐 때 ToolCall/SkillCall/Paused/Resumed 이벤트로 과하게 흔들리지 않도록 조정

- claw-code parity 계획 문서와 README, DEVELOPMENT 이력을 현재 정책과 진척율 기준으로 갱신

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 17:11:30 +09:00
78b962bece AX Agent 프리셋 안내와 상단 탭 레이아웃 복구\n\n- Chat/Cowork 프리셋 빈 화면을 Stretch 기반으로 바꿔 카드 하단 잘림을 줄임\n- 선택한 대화 주제/작업 유형을 헤더 중앙 가이드로 다시 표시하도록 복구\n- 상단 탭 pill 그룹과 하단 사용자 영역 설정 버튼 크기를 키워 가독성 보정\n- README와 DEVELOPMENT 문서에 2026-04-05 19:59(KST) 기준 변경 이력 반영\n- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-05 16:59:42 +09:00
f8e62bde2a AX Agent 계획 모드 잔재를 더 걷어내고 UI hover 안정화\n\n- AgentLoop 실행 경로에서 계획 모드 분기를 비활성 정책 기준으로 단순화해 기본 런타임이 설정값에 흔들리지 않게 정리\n- 내부 설정의 숨김 상태 계획 모드 버튼과 콤보 이벤트 연결 및 관련 dead code 제거\n- 작업유형 카드에서 hover 라벨과 ToolTip 충돌로 발생하던 깜박임을 해결\n- README와 DEVELOPMENT 문서에 parity 진척율, 남은 작업축, 설정 제거 후보를 반영\n\n검증 결과\n- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\\n- 경고 0 / 오류 0
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-05 16:51:24 +09:00
a315f587bf AX Agent 남은 parity 작업과 설정 정리 기준을 문서화하고 카드 hover 깜박임 수정\n\n- claw-code 대비 AX Agent 핵심 엔진/UI 남은 차이와 현재 추정 진척율을 parity 계획 문서에 기록\n- PlanMode, FreeTierDelaySeconds, MaxAgentIterations, MaxRetryOnError 등 런타임 영향 설정의 제거/개발자 전용 후보를 정리\n- 작업유형 카드에서 custom hover 라벨과 기본 ToolTip이 충돌해 발생하던 깜박임을 제거\n- README와 DEVELOPMENT 문서에 변경 이유와 검증 결과를 즉시 반영\n\n검증 결과\n- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\\n- 경고 0 / 오류 0
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-05 16:44:35 +09:00
500c8ffb06 AX Agent 좌측 패널과 컨텍스트 사용량 UI를 Codex 기준으로 재정렬\n\n- 좌측 사이드바 폭과 새 대화/검색/필터/탭 메뉴 타이포를 키워 레퍼런스와 더 비슷한 밀도로 조정\n- Cowork 작업 유형 카드 크기와 제목/hover 설명 라벨 폰트를 확대해 가독성 보정\n- 하단 컨텍스트 사용량 카드를 작은 원형 심볼로 축소하고 hover 전용 커스텀 팝업으로 상세 정보 분리\n- README와 DEVELOPMENT 문서에 변경 이력 및 검증 결과 즉시 반영\n\n검증 결과\n- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\\n- 경고 0 / 오류 0
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-05 16:39:32 +09:00
b53af39358 AX Agent 상태 노출과 계획 표시를 claw-code 기준으로 정리
- 대화 상단 빠른 스트립을 자동 카운트 노출 대신 사용자 필터와 정렬 전환 시에만 보이도록 조정
- 상단 상태 스트립은 권한 대기와 실패 계열만 남기고 queue 관련 기본 배너를 제거
- planning 이벤트는 기본 transcript에서 큰 카드 대신 compact pill만 표시되도록 변경
- README와 DEVELOPMENT 문서에 claw-code 비교 기준 정리 이력 및 검증 결과 반영

검증 결과
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0
2026-04-05 16:32:40 +09:00
0fd6940975 AX Agent 상단 탭 스타일을 사용자 레퍼런스 형태로 복구
Some checks failed
Release Gate / gate (push) Has been cancelled
- 상단 탭 버튼의 폰트, 패딩, 외곽선을 다시 키워 도톰한 pill 세그먼트 형태로 조정
- 탭 래퍼 배경과 선택 탭 배경을 LauncherBackground 기준으로 정리하고 채팅/코드 라벨을 한글로 복구
- README와 DEVELOPMENT 문서에 상단 탭 UI 복구 이력 및 검증 결과 반영

검증 결과
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0
2026-04-05 16:28:44 +09:00
29652c3ad4 AX Agent 내부 설정 서비스 전환과 테마 노출 정리\n\n- 공통 탭의 서비스 상세 패널을 주소 입력과 API 키 패널로 분리하고 Gemini/Claude에서는 주소 입력을 숨기도록 조정\n- 서비스 변경 직후 현재 서비스, 현재 모델, 라벨이 즉시 갱신되도록 내부 설정 새로고침 경로 보강\n- 테마 스타일과 테마 모드를 서비스/모델 바로 아래로 이동해 공통 탭에서 바로 보이게 재배치\n- README와 DEVELOPMENT 문서에 내부 설정 공통 탭 수정 이력 및 검증 결과 반영\n\n검증 결과\n- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\\n- 경고 0 / 오류 0
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-05 16:26:15 +09:00
c3e1422b02 AX Agent 작업 유형 카드 정리 및 hover 설명 라벨 적용
Some checks failed
Release Gate / gate (push) Has been cancelled
- 작업 유형 카드 하단 상시 설명을 제거하고 모든 카드 크기를 동일 규격으로 통일함
- 카드 hover 시 확대 애니메이션을 제거하고 하단 설명 라벨과 배경/테두리 반응만 남겨 안정적으로 정리함
- 기타/프리셋 추가 카드도 같은 hover 규칙과 설명 노출 방식으로 통일함
- EmptyState 제목/설명 폰트를 키워 현재 화면 전반의 글자 크기를 보정함
- README 및 DEVELOPMENT 문서에 2026-04-05 19:02 (KST) 기준 변경 이력을 반영함

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0
2026-04-05 16:20:55 +09:00
a4d21ecc0b AX Agent 상단 탭 복구 및 하단 컴포저 겹침 수정
Some checks failed
Release Gate / gate (push) Has been cancelled
- 상단 Chat/Cowork/Code 탭의 폰트와 패딩을 키워 예전처럼 더 읽기 쉬운 pill 형태로 복구함
- 하단 컴포저 상단 줄에서 토큰 카드와 프리셋 버튼이 같은 Grid 컬럼을 공유하던 구조를 분리해 겹침을 제거함
- 모델 선택, 토큰 사용 카드, 프리셋 버튼의 패딩과 글자 크기를 다시 키워 하단 정보 가독성을 복구함
- README 및 DEVELOPMENT 문서에 2026-04-05 18:55 (KST) 기준 변경 이력을 반영함

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0
2026-04-05 16:17:57 +09:00
51ff046e1a AX Agent 타임라인 기본 노출 축소 및 계획/작업 카드 경량화
Some checks failed
Release Gate / gate (push) Has been cancelled
- non-debug 기본 로그에서 ToolCall 중간 이벤트를 숨겨 Cowork/Code 타임라인을 결과 중심으로 재정리함
- 계획 카드와 작업 요약 카드, 액션 버튼의 패딩/폰트/폭을 낮춰 transcript 중심 흐름을 강화함
- 권한 작업 카드에서 계획 모드 버튼을 제거해 현재 엔진 정책과 UI를 일치시킴
- README 및 DEVELOPMENT 문서에 2026-04-05 18:49 (KST) 기준 변경 이력과 parity 진척율을 반영함

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0
2026-04-05 16:15:31 +09:00
abd6928e4a AX Agent 상태 UI 최소 노출 기준 정리 및 작업 요약 팝업 경량화
Some checks failed
Release Gate / gate (push) Has been cancelled
- Cowork/Code 보조 상태 스트립과 실행 로그 토글 영역의 패딩/폰트/간격을 추가 축소해 transcript 중심 흐름을 강화함
- 작업 요약 팝업에서 필터 칩과 과한 대시보드형 액션을 제거하고 마지막 실행 1건 중심 요약으로 재구성함
- 훅/백그라운드/최근 작업 카드의 밀도를 낮추고 기본 팝업에서 권한/백그라운드 현재 상태만 남기도록 최소 노출 기준으로 정리함
- README 및 DEVELOPMENT 문서에 2026-04-05 18:40 (KST) 기준 변경 이력과 parity 진척율을 반영함

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0 / 오류 0
2026-04-05 16:10:51 +09:00
aa3de8a6fd AX Agent 메인 UI를 claw-code 축으로 전면 재배치
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 메인 레이아웃을 기존 카드형 AX 틀에서 벗어나 사이드바·본문·컴포저 중심의 더 평평한 claw-code 스타일로 재정렬

- 창 기본 크기, 사이드바 폭, 상단 탭 헤더, 검색 바, 빈 상태, 컴포저 외곽선과 입력축을 다시 조정해 메시지 축과 입력축이 같은 중심선을 공유하도록 변경

- 메시지 버블, compact pill, 이전 대화 로드 카드, planning 카드의 패딩·코너·메타 밀도를 낮춰 transcript 우선 시각 언어로 통일

- README와 docs/DEVELOPMENT.md에 2026-04-05 18:30 (KST) 기준 작업 이력 및 claw-code 대비 진척율 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 16:03:26 +09:00
ed1b8497c6 AX Agent 재생성 흐름과 엔진 마감 문구를 상태 기반으로 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- regenerate/retry가 MessagePanel 직접 삭제 대신 conversation state 수정 후 RenderMessages 경로를 타도록 정리

- AxAgentExecutionEngine에 UI용 마감 helper를 추가해 취소/오류/빈 응답과 Cowork·Code 완료 문구를 정상 한국어 기준으로 정규화

- Paused/Resumed 실행 이벤트는 debug가 아닐 때 기본 타임라인에서 숨겨 Cowork/Code 노이즈를 축소

- README와 docs/DEVELOPMENT.md에 2026-04-05 18:20 (KST) 기준 작업 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 15:55:28 +09:00
57be80af3c AX Agent 실행 마감 helper 통합과 계획 노출 최소화
Some checks failed
Release Gate / gate (push) Has been cancelled
- send와 regenerate가 같은 실행/예외/취소/최종 커밋/후처리 helper를 타도록 ExecutePreparedTurnAsync 추가

- 계획 이벤트는 기본적으로 얇은 요약 pill만 노출하고 debug에서만 큰 카드가 보이도록 조정

- README와 DEVELOPMENT 문서에 2026-04-05 18:08 (KST) 기준 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 15:43:44 +09:00
e4fddca53c AX Agent 계획 카드와 타임라인 카드 밀도 추가 축소
Some checks failed
Release Gate / gate (push) Has been cancelled
- 계획 카드의 라운드, 패딩, 헤더, 진행률 텍스트, 단계 행 폰트를 더 줄여 claw-code 쪽 카드 밀도로 정리

- 컨텍스트 압축 pill과 이전 대화 로드 카드도 함께 축소해 본문 대비 존재감을 낮춤

- README와 DEVELOPMENT 문서에 2026-04-05 18:01 (KST) 기준 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 15:38:25 +09:00
3ea497f10a AX Agent 사이드바와 대화 목록 밀도 대폭 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 좌측 헤더, 액션, 검색 편집기, 필터, 탭별 메뉴, 삭제/사용자 영역을 전반적으로 축소해 claw-code 쪽 비율로 정리

- 사이드바 폭을 248로 줄이고 대화 목록 카드 패딩, 메타, 편집 버튼, 선택 액센트 바 두께를 함께 축소

- README와 DEVELOPMENT 문서에 2026-04-05 17:53 (KST) 기준 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 15:34:35 +09:00
825f7d55f2 AX Agent 상단 헤더 밀도 추가 축소
Some checks failed
Release Gate / gate (push) Has been cancelled
- 상단 탭 버튼과 탭 그룹 래퍼의 폰트, 패딩, 코너를 더 줄여 claw-code 쪽 밀도로 정리

- 제목 서브 바, 대화 제목, 빠른 스트립, 프리뷰 토글 규격을 함께 낮춰 상단 보조 정보 존재감을 축소

- README와 DEVELOPMENT 문서에 2026-04-05 17:45 (KST) 기준 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 15:31:25 +09:00
abd33eb5df AX Agent 실행 타임라인 배너 밀도 추가 축소
- 일반 실행 배너의 아이콘, 라벨, 경과 시간, 토큰 pill, 요약, 파일 경로 표시를 더 얇게 정리

- review 신호 칩은 debug 로그에서만 보이게 제한해 평소 Cowork/Code 본문 흐름을 단순화

- README와 DEVELOPMENT 문서에 2026-04-05 17:39 (KST) 기준 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 15:28:33 +09:00
cd1db562b1 AX Agent 메시지 메타와 완료 카드 문구 추가 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 메시지 버블 패딩, 코너, 폰트, 타임스탬프와 assistant 헤더 메타를 더 축소해 본문 중심 흐름 강화

- 작업 요약 팝업의 완료 카드 라벨과 run/step 메타를 더 짧고 가볍게 정리

- README와 DEVELOPMENT 문서에 2026-04-05 17:33 (KST) 기준 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 15:01:05 +09:00
d575139a6f AX Agent 상태 스트립과 작업 요약 팝업 밀도 추가 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- Cowork/Code 보조 상태 스트립의 폰트, 패딩, 간격을 더 줄여 본문 우선 시각 흐름에 맞춤

- 작업 요약 팝업 헤더/필터/최근 실행/훅/백그라운드 카드와 액션 버튼 규격을 축소

- README와 DEVELOPMENT 문서에 2026-04-05 17:27 (KST) 기준 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 14:52:21 +09:00
3b223dc7dc AX Agent 상단 헤더와 대화 목록 메타를 claw-code 쪽으로 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- 상단 탭 그룹과 사이드바 토글 버튼을 더 얇은 세그먼트형 UI로 조정

- 좌측 대화 목록의 실행 메타와 편집 아이콘을 더 약하게 줄여 제목 중심의 목록 밀도로 재정렬

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 14:46:31 +09:00
f3c0366ee6 AX Agent 메시지 액션과 실행 배너를 claw-code 쪽으로 축소
Some checks failed
Release Gate / gate (push) Has been cancelled
- 메시지 액션 바를 텍스트+아이콘 조합에서 작은 아이콘 버튼 중심으로 바꿔 본문 집중도를 높임

- Cowork/Code 실행 배너의 여백, 메타 텍스트, 토큰 배지, 파일 경로 표시를 더 얇게 줄여 보조 정보 밀도를 낮춤

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 14:43:59 +09:00
7cc2b5b9b5 AX Agent UI를 claw-code 방향으로 골격 재정렬
Some checks failed
Release Gate / gate (push) Has been cancelled
- 좌측 패널, 축소 아이콘 바, 상태 스트립, 메시지 축, 컴포저를 더 얇고 평평한 업무형 레이아웃으로 조정

- 메시지 최대 폭 880, 컴포저 최대 폭 820 기준으로 반응형 폭 계산을 다시 맞춰 창 크기 변화에도 중심선이 자연스럽게 유지되도록 수정

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 14:40:44 +09:00
d99b46e3e2 AX Agent claw-code 진척율 문서화 및 메시지 축 단순화
Some checks failed
Release Gate / gate (push) Has been cancelled
- claw-code 대비 AX Agent 진척율을 README, DEVELOPMENT, parity 계획 문서에 수치로 기록

- 핵심 엔진 영향 설정 최소화 원칙을 정리하고 계획 모드 잔재 노출을 추가로 축소

- ChatWindow 메시지 버블과 좌측 대화 목록 카드를 더 얇은 밀도로 조정해 claw-code식 읽기 축에 가깝게 정리

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 14:38:03 +09:00
22eebc13d9 AX Agent UI와 응답 마감 엔진을 claw-code 기준으로 1차 재구성
Some checks failed
Release Gate / gate (push) Has been cancelled
사이드바, 메시지 축, 빈 상태, 컴포저를 더 얇고 밀도 높은 구조로 재배치하고 보조 상태 스트립 노출을 줄였습니다.

반응형 폭 계산을 다시 조정해 창 크기 변화에서도 메시지와 컴포저가 같은 중심선으로 자연스럽게 줄어들게 했습니다.

응답 취소와 오류 마감은 AxAgentExecutionEngine의 FinalizeExecutionContent로 공통화해 전송과 재생성의 후처리 경로를 맞췄습니다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 오류 0
2026-04-05 14:19:07 +09:00
f53f35bbed 계획 모드 설정 제거와 플랜 승인 UX 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
메인 설정과 AX Agent 내부 설정에서 계획 모드 UI를 숨기고 저장값을 항상 off로 고정했습니다.

AgentLoop 런타임도 계획 모드를 off로 고정해 코워크와 코드에서 자동 계획 승인 팝업이 반복 노출되지 않도록 정리했습니다.

PlanViewerWindow는 AX Agent 창 owner 리소스를 직접 받아 같은 테마 축을 따르도록 바꾸고 인라인 승인 버튼 중복 노출을 제거했습니다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 오류 0
2026-04-05 14:12:22 +09:00
9fafcd0192 코워크 문서 계획/생성 흐름을 claw-code 기준으로 복구
- document_plan 결과에서 body 골격과 후속 생성 도구를 안정적으로 추출하도록 AgentLoop 분기를 수정

- 코워크 문서형 작업은 planMode=off여도 계획 선행(always) 경로를 타도록 보정

- 코워크 시스템 프롬프트를 강화해 계획만 제시하고 끝나지 않고 실제 문서 파일 생성까지 이어지게 조정

- README와 DEVELOPMENT 문서에 2026-04-05 16:02 (KST) 기준 변경 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 14:05:18 +09:00
35fbfc933d AX Agent: 실행 이벤트 세션 변이 경로 엔진으로 통합
- ChatWindow에 중복돼 있던 실행 이벤트/Agent run 교차 탭 복원 로직을 AxAgentExecutionEngine helper로 이동함

- AppendExecutionEvent, AppendAgentRun이 공통 session mutation 경로를 사용하도록 정리해 이후 runtime state 공통화 기반을 마련함

- README와 DEVELOPMENT 문서에 2026-04-05 15:42 (KST) 기준 변경 이력 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 13:58:16 +09:00
5c142e1235 문서: claw-code 기준 AX Agent 개선 계획 재정립
Some checks failed
Release Gate / gate (push) Has been cancelled
- claw-code 실제 런타임 참조 축(state/initReplBridge/sessionRunner/REPL/Messages/StatusLine)을 기준으로 AX Agent 개선 계획을 재수립함

- README, DEVELOPMENT, parity plan 문서에 참조 파일, AX 적용 위치, 완료 조건, 품질 기준, 검증 시나리오를 반영함

- 이번 변경은 계획 문서 정리만 포함하며 코드 수정이나 빌드 검증은 수행하지 않음
2026-04-05 13:53:53 +09:00
5fd69d32f5 AX Commander 하단 위젯 설정 분리와 서버 상태 제거
Some checks failed
Release Gate / gate (push) Has been cancelled
- 일반 설정의 AX Commander 섹션에 성능, 포모도로, 메모, 날씨, 일정, 배터리 위젯 표시 토글을 추가

- 런처 하단의 Ollama, API, MCP 서버 상태 위젯을 완전히 제거하고 남은 위젯만 설정값 기준으로 표시되도록 정리

- 배터리 위젯은 실제 배터리 가용 상태와 사용자 토글을 함께 반영하고 위젯이 모두 꺼지면 하단 바 전체를 숨기도록 조정

- README와 DEVELOPMENT 문서를 2026-04-05 15:16 (KST) 기준으로 갱신하고 dotnet build 검증에서 경고 0 오류 0 확인
2026-04-05 13:48:00 +09:00
d368ebf822 AX Agent 내부 설정 탭 분리와 테마 복구
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 내부 설정에서 스킬/차단 탭을 도구, 스킬, 차단으로 분리하고 각 패널을 기능별로 재배치

- 공통 탭에 테마 스타일과 테마 모드를 실제 선택 카드 UI로 복구하고 기존 숨김 플레이스홀더를 제거

- 메인 설정 좌측의 AX Agent 이동 항목을 맨 아래로 재배치하고 README 및 DEVELOPMENT 문서 이력을 2026-04-05 15:06 (KST) 기준으로 갱신

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ / 경고 0 오류 0
2026-04-05 13:39:44 +09:00
d102e17d47 AX Agent 대화 목록 카드와 축소 아이콘 바 UI 밀도 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 대화 목록 행 카드의 선택/호버 강조를 더 얇게 줄이고 제목, 메타, 배지, 편집 버튼 밀도를 claw-code 기준으로 정리

- 축소 아이콘 바의 행 높이, 버튼 규격, 아이콘 크기, 사용자 배지를 현재 사이드바와 같은 중립형 시각 언어로 통일

- README와 DEVELOPMENT 문서에 변경 이력과 2026-04-05 14:57 (KST) 기준 업데이트 시각 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ / 경고 0 오류 0
2026-04-05 13:35:16 +09:00
792dea2dc2 AX Agent 실행 로그 배너의 파일 경로와 디버그 노출 축소
Some checks failed
Release Gate / gate (push) Has been cancelled
- AddAgentEventBanner에서 debug용 ToolInput 카드 길이와 패딩을 줄이고 일반 로그에서는 파일 경로를 카드형이 아닌 파일명 한 줄로만 표시하도록 분기함

- 파일 빠른 액션과 상세 경로 카드는 debug에서만 크게 보이게 바꿔 Cowork/Code 본문 아래 실행 로그가 메시지 축을 덜 밀어내도록 조정함

- README와 DEVELOPMENT 문서에 2026-04-05 14:49 (KST) 기준 작업 이력을 반영하고 Release 빌드 경고 0 오류 0을 확인함
2026-04-05 13:30:42 +09:00
cec4b75999 AX Agent 좌측 패널과 하단 상태바 형태 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 사이드바 폭을 줄이고 헤더 배지, 새 대화/검색/카테고리 메뉴 행의 패딩과 아이콘 크기를 낮춰 claw-code 방향의 얇은 내비게이션으로 조정함

- 아이콘 바 사용자 배지, 하단 계정 영역, 삭제 버튼, 상태바 높이와 상태 아이콘 형태를 함께 단순화해 전체 시각 언어를 더 중립적으로 통일함

- README와 DEVELOPMENT 문서에 2026-04-05 14:43 (KST) 기준 작업 이력을 반영하고 Release 빌드 경고 0 오류 0을 확인함
2026-04-05 13:27:58 +09:00
2d7ede357e AX Agent 작업 요약 팝업 카드 밀도 추가 축소
Some checks failed
Release Gate / gate (push) Has been cancelled
- 작업 요약 액션 버튼 규격을 더 작게 낮추고 권한/훅/백그라운드 카드 패딩과 마진을 줄여 상태 패널 세로 길이를 완화함

- 최근 권한, 훅, 백그라운드 작업 표시 개수를 줄여 Cowork/Code 상태 요약이 긴 대시보드처럼 커지지 않도록 조정함

- README와 DEVELOPMENT 문서에 2026-04-05 14:36 (KST) 기준 작업 이력을 반영하고 Release 빌드 경고 0 오류 0을 확인함
2026-04-05 13:24:51 +09:00
88a21ead92 AX Agent 상태 스트립과 작업 요약 UI 축소
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow의 ConversationStatusStrip, AgentProgressBar, RuntimeActivityBadge, 실행 로그 관련 상태 요소 패딩과 폰트 밀도를 낮춰 본문 우선 구조로 조정함

- 작업 요약 팝업의 제목/설명/최근 실행 카드 밀도를 줄이고 최근 실행 표시 수를 축소해 상태 패널이 보조 레이어로 남도록 정리함

- README와 DEVELOPMENT 문서에 2026-04-05 14:31 (KST) 기준 작업 이력을 반영하고 Release 빌드 경고 0 오류 0을 확인함
2026-04-05 13:22:19 +09:00
458fd8da96 AX Agent 컴포저 상단 구조 밀도 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 입력 바의 InputBorder, DraftPreviewCard, DraftQueuePanel 패딩과 그림자를 줄여 claw-code 방향의 얇은 작업 바 인상으로 정리함

- 모델 선택, 토큰 사용 카드, 프리셋 버튼의 높이·패딩·폰트·아이콘 크기를 함께 낮춰 옵션 바가 메시지 축보다 튀지 않도록 조정함

- README와 DEVELOPMENT 문서에 2026-04-05 14:23 (KST) 기준 작업 이력을 반영하고 Release 빌드 경고 0 오류 0을 확인함
2026-04-05 13:18:18 +09:00
b24afba2d8 AX Agent 채팅창 반응형 폭 계산 적용
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow의 ComposerShell 고정폭을 제거하고 실제 본문 영역 폭 기준으로 MessagePanel, EmptyState, ComposerShell을 함께 재계산하도록 정리함

- 창 크기 변경 시 메시지 축과 입력창이 자연스럽게 함께 줄고 늘어나도록 Loaded와 SizeChanged에 반응형 레이아웃 갱신을 연결함

- README와 DEVELOPMENT 문서에 2026-04-05 14:16 (KST) 기준 작업 이력을 반영하고 Release 빌드 경고 0 오류 0을 확인함
2026-04-05 13:13:15 +09:00
382c78e32f AX Agent 메시지 축 UI 밀도 정리 및 로그 표시 단순화
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 메시지 카드의 여백, 패딩, 라운드, 타임스탬프 크기를 줄여 claw-code 기준의 본문 중심 읽기 흐름으로 정리함

- assistant 헤더와 액션 바, 실행 로그 배너의 아이콘/텍스트/배지 밀도를 낮춰 Cowork/Code에서 로그가 메시지보다 튀지 않도록 조정함

- README와 DEVELOPMENT 문서에 2026-04-05 14:09 (KST) 기준 작업 이력을 반영하고 Release 빌드 경고 0 오류 0을 확인함
2026-04-05 13:10:14 +09:00
28869caa32 AX Agent 채팅 UI를 claw-code 방향으로 1차 단순화
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 메시지 컬럼과 빈 상태 폭을 880 기준으로 정리하고 상단 진행률 바 패딩과 폭을 축소

- 빈 상태의 부유 애니메이션 아이콘을 제거하고 정적인 카드형 아이콘과 간결한 문구로 단순화

- 컴포저를 800px 축으로 넓히고 DraftPreview/Input 테두리의 라운드와 그림자 강도를 낮춰 메시지와 입력 축이 먼저 보이게 조정

- README와 DEVELOPMENT 문서에 2026-04-05 14:00 (KST) 기준 이력과 검증 결과를 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
2026-04-05 13:02:22 +09:00
bd8a1ef7bd AX Agent 구형 본문 재시도 카드를 제거해 메시지 축을 더 단순화
- ChatWindow의 AddRetryButton 경로를 제거하고 실패 시 토스트 안내 후 작업 요약 재시도 액션을 사용하도록 정리

- 본문 MessagePanel에 임시 실패 카드를 직접 삽입하던 구형 흐름을 걷어내고 claw-code 방향의 메시지/상태 중심 구조로 추가 정리

- README와 DEVELOPMENT 문서에 2026-04-05 13:52 (KST) 기준 이력과 검증 결과를 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
2026-04-05 12:59:22 +09:00
554b1fb83e AX Agent 실패 재시도도 입력창 UI에서 분리해 Cowork·Code 실행 축을 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- RetryLastUserMessageFromConversation이 입력창 텍스트와 포커스를 직접 바꾸지 않고 유휴 시 즉시 재실행, 진행 중에는 직접 대기열 적재로 전환

- 재시도 흐름을 입력 UI보다 세션/대기열 중심으로 옮겨 Cowork·Code 후처리 일관성을 강화

- README와 DEVELOPMENT 문서에 2026-04-05 13:44 (KST) 기준 이력과 검증 결과를 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
2026-04-05 12:56:29 +09:00
c5dfab8081 AX Agent 대기열 후속 실행을 입력창 UI에서 분리해 Cowork·Code 엔진 축을 강화
Some checks failed
Release Gate / gate (push) Has been cancelled
- SendMessageAsync가 직접 텍스트 인자를 받을 수 있게 바꾸고 대기열 후속 실행이 InputBox 상태를 바꾸지 않도록 조정

- StartNextQueuedDraftIfAny에서 입력창 텍스트/포커스/높이 조작을 제거하고 SendMessageAsync(next.Text) 직접 실행 경로로 전환

- README와 DEVELOPMENT 문서에 2026-04-05 13:37 (KST) 기준 이력과 검증 결과를 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
2026-04-05 12:54:19 +09:00
52475b6628 AX Agent 실행 이벤트 UI 갱신을 배치형으로 조정해 Cowork·Code 흔들림을 줄임
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow에 agent UI event timer를 추가해 상태바, 진행률, 플랜 뷰어, 자동 프리뷰를 최근 이벤트 기준으로 묶어서 반영

- OnAgentEvent는 실행 상태를 먼저 conversation/app state에 반영하고 화면 갱신은 FlushPendingAgentUiEvent 경로로 분리

- README와 DEVELOPMENT 문서에 2026-04-05 13:29 (KST) 기준 이력과 검증 결과를 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
2026-04-05 12:51:54 +09:00
0b1bc5f32f AX Agent 완료 직후 저장 경로를 정리해 Cowork·Code 실행 기록 누락을 방지
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow에 PersistConversationSnapshot을 추가해 중간 저장, 최종 저장, 지연 저장 flush를 한 경로로 통합

- ResetStreamingUiState에서 대기 중인 실행 이벤트 저장을 먼저 flush 하도록 바꿔 마지막 이벤트 누락 가능성을 차단

- RunAgentLoopAsync 내부의 중복 저장/RememberConversation 호출을 제거하고 FinalizeConversationTurn 단일 완료 경로로 정리

- README와 DEVELOPMENT 문서에 2026-04-05 13:20 (KST) 기준 이력과 검증 결과를 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
2026-04-05 12:48:13 +09:00
f18f48789a AX Agent 실행 보조 UI를 축약형으로 안정화하고 메시지 축 흔들림을 줄임
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow의 suggest_actions 결과를 본문 MessagePanel 직접 삽입 대신 토스트 요약으로 전환

- DraftQueuePanel을 기본 축약형으로 바꾸고 상세 보기 토글을 추가해 컴포저 위 레이아웃 변동을 줄임

- README와 DEVELOPMENT 문서에 2026-04-05 13:12 (KST) 기준 이력과 검증 결과를 반영

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
2026-04-05 12:45:01 +09:00
abc355c451 AX Agent 실행 이벤트 저장을 배치형으로 조정
Some checks failed
Release Gate / gate (push) Has been cancelled
- execution event와 agent run 기록이 들어올 때마다 즉시 저장하지 않고 conversationPersistTimer로 220ms 단위 지연 저장하도록 변경함

- Cowork/Code 연속 이벤트 구간의 디스크 I/O를 줄여 체감 끊김과 잦은 저장 부하를 낮추는 방향으로 정리함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 12:39:54 +09:00
d24596a8ea AX Agent 상태 스트립 갱신도 배치형으로 조정
Some checks failed
Release Gate / gate (push) Has been cancelled
- task summary 전용 타이머를 추가해 RuntimeActivityBadge와 ConversationStatusStrip 갱신을 120ms 단위로 묶음

- 실행 이벤트 본문 재렌더 배치와 함께 Cowork/Code 실행 중 UI 깜빡임을 줄이는 방향으로 정리함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 12:37:29 +09:00
a40cacea4d AX Agent 실행 이벤트 재렌더를 배치형으로 조정
Some checks failed
Release Gate / gate (push) Has been cancelled
- OnAgentEvent가 실행 이벤트마다 본문 전체를 즉시 다시 그리지 않도록 execution history 전용 배치 렌더 타이머를 추가함

- Cowork/Code 실행 중 RenderMessages 호출을 120ms 단위로 묶어 본문 번쩍임과 잦은 로그 재배치를 줄임

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 12:34:53 +09:00
8921f5da0f AX Agent 실행 후처리 경로를 공통화
Some checks failed
Release Gate / gate (push) Has been cancelled
- ResetStreamingUiState, FinalizeConversationTurn, FinalizeQueuedDraft를 추가해 전송과 재생성의 완료 후 UI/상태 정리를 같은 경로로 통합함

- 대화 저장, 목록 갱신, 대기열 완료/실패 반영, 다음 작업 시작 흐름을 helper 기준으로 다시 묶음

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 12:32:12 +09:00
31a8b979c7 AX Agent 실행 선택 분기를 엔진으로 이관
Some checks failed
Release Gate / gate (push) Has been cancelled
- AxAgentExecutionEngine에 ExecutePreparedAsync를 추가해 AgentLoop와 일반 LLM 호출 선택을 엔진이 담당하도록 정리함

- SendMessageAsync와 SendRegenerateAsync가 공통 실행 진입점을 사용하도록 바꿔 창 코드의 중복 분기를 줄임

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 12:29:13 +09:00
660f4e5a32 AX Agent 최종 응답 커밋 흐름을 엔진으로 통합
Some checks failed
Release Gate / gate (push) Has been cancelled
- AxAgentExecutionEngine에 FinalizeAssistantTurn을 추가해 assistant 최종 내용 정규화, Cowork/Code 실행 로그 접힘, 메시지 커밋을 한 메서드로 통합함

- SendMessageAsync와 SendRegenerateAsync가 동일한 엔진 마무리 경로를 타도록 정리해 UI 쪽 중복 후처리를 줄임

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 12:26:51 +09:00
67961f280f AX Agent 실행 준비 로직을 엔진으로 추가 이관
Some checks failed
Release Gate / gate (push) Has been cancelled
- AxAgentExecutionEngine에 PreparedExecution, PrepareExecution, NormalizeAssistantContent를 추가해 실행 준비와 최종 응답 보정 책임을 더 모음

- ChatWindow의 일반 전송과 재생성이 PrepareExecutionForConversation을 통해 같은 준비 경로를 쓰도록 정리함

- Cowork/Code 시스템 프롬프트 선택, 실행 모드 판정, 프롬프트 스택 조합, outbound message 준비의 중복 분기를 줄임

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 12:23:09 +09:00
3ed454a98c AX Agent 채팅 UI 백업 및 claw-code 기준 엔진 재정렬
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 현재 UI와 엔진 기준본을 etc/chat-ui-backup/2026-04-05-1215에 백업해 회귀 비교 지점을 확보함

- 메시지 컬럼과 컴포저 폭을 claw-code식 단일 축으로 다시 맞추고 입력 셸을 안정적인 하단 컬럼 구조로 정리함

- 입력창 높이를 실제 줄바꿈 수 기준으로 다시 계산해 전송 후 높이가 남는 버그를 줄임

- 메시지 편집/피드백 후 재생성 경로의 직접 UI 버블 주입을 제거하고 RenderMessages 중심으로 통합함

- SendRegenerateAsync가 Cowork/Code에서 ResolveExecutionMode와 RunAgentLoopAsync를 타도록 바꿔 재생성도 동일 엔진 축으로 정렬함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 12:19:20 +09:00
f82cfc4541 AX Agent 로컬 응답 경로를 모델 렌더 축으로 통합
Some checks failed
Release Gate / gate (push) Has been cancelled
claw-code 기준 채팅 엔진 정상화 작업을 이어서 진행했습니다.

수동 컨텍스트 압축 결과와 slash 로컬 응답 경로에서 직접 AddMessageBubble로 UI 버블을 꽂던 흐름을 제거하고 conversation/session에 먼저 커밋한 뒤 RenderMessages로만 다시 그리도록 정리했습니다.

이로써 일반 전송, 재생성, 로컬 응답이 서로 다른 렌더 경로를 타며 순서가 꼬이던 상태를 줄였고 Cowork/Code 전용 엔진 정리에 필요한 공통 렌더 축을 더 맞췄습니다.

검증은 dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 기준 경고 0개, 오류 0개입니다.
2026-04-05 12:10:31 +09:00
890c8ce76b AX Agent 채팅 엔진 최종 응답 커밋형으로 정상화
Some checks failed
Release Gate / gate (push) Has been cancelled
claw-code 기준으로 AX Agent 채팅 전송 흐름을 준비, 실행, 최종 assistant 커밋, 재렌더 순서로 다시 정리했습니다.

ChatWindow의 SendMessageAsync와 SendRegenerateAsync에서 임시 assistant 메시지와 임시 스트리밍 컨테이너를 먼저 만드는 경로를 제거하고, 실행이 끝난 뒤 최종 assistant 텍스트만 conversation/session에 커밋하도록 수정했습니다.

OnAgentEvent는 실행 로그 배너를 즉시 UI에 직접 꽂지 않고 conversation ExecutionEvents에 먼저 저장한 뒤 ShowExecutionHistory가 켜진 경우에만 RenderMessages 기반으로 다시 그리게 바꿔 Cowork/Code의 플래시 잔상과 중복 표시를 줄였습니다.

AxAgentExecutionEngine도 Chat 실행을 스트리밍 UI 의존이 없는 최종 응답 커밋형 모드로 정리했습니다. 검증은 dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 기준 경고 0개, 오류 0개입니다.
2026-04-05 12:07:47 +09:00
7aa600e01c 런처 보조 기능 상태 초기화와 설정 연결 검증 마무리
Some checks failed
Release Gate / gate (push) Has been cancelled
Agent Compare 기준으로 런처 보조 기능과 설정 연결을 다시 점검했습니다.

입력창을 비우거나 런처를 다시 열 때 이전 선택 항목과 미리보기 패널이 남아 있던 흐름을 LauncherViewModel에서 정리해 빠른 실행 칩, 검색 히스토리, 미리보기 패널 전환이 현재 입력 상태와 일치하도록 수정했습니다.

ShowNumberBadges, CloseOnFocusLost, RememberPosition, EnableActionMode, EnableRandomPlaceholder, EnableIconAnimation, EnableSelectionGlow, ShowLauncherBorder, EnableFavorites, EnableRecent, ShowPrefixBadge 등 Launcher 설정이 SettingsWindow/SettingsViewModel에서 실제 런처 코드와 연결되는 경로를 재검토한 내용도 README와 DEVELOPMENT 문서에 반영했습니다.

검증은 dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 기준 경고 0개, 오류 0개입니다.
2026-04-05 11:58:02 +09:00
f7cafe0cfc 런처 Agent Compare 기능 1차 이식 및 현재 런처 구조 연결
- Agent Compare 기준으로 런처 빠른 실행 칩, 검색 히스토리 탐색, 선택 항목 미리보기 패널을 현재 런처에 이식
- 하단 위젯 바, QuickLook(F3), 화면 OCR(F4), 관련 서비스/partial 파일을 현재 LauncherWindow/LauncherViewModel 구조에 연결
- UsageRankingService 상위 항목 조회와 SearchHistoryService를 추가해 실행 상위 경로/검색 기록이 실제 런처 동작에 반영되도록 정리
- README.md, docs/DEVELOPMENT.md에 이식 범위와 검증 결과를 2026-04-05 11:58 (KST) 기준으로 기록

검증 결과
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
2026-04-05 11:51:43 +09:00
0336904258 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개를 확인했습니다.
2026-04-05 00:59:45 +09:00
0929778ca7 트레이 메뉴 버전 헤더 글자색을 진한 회색으로 조정
Some checks failed
Release Gate / gate (push) Has been cancelled
변경 목적: 트레이 아이콘 우클릭 메뉴 최상단의 앱 이름/버전 표시가 본문 항목보다 덜 튀면서도 더 안정적으로 보이도록 시각 대비를 조정했습니다.

핵심 수정사항: TrayMenuWindow의 AddHeader 텍스트에 헤더 전용 진한 회색 브러시를 적용하고, README와 DEVELOPMENT 문서에 작업 이력과 검증 결과를 반영했습니다.

검증 결과: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 실행 기준 경고 0개, 오류 0개를 확인했습니다.
2026-04-05 00:49:03 +09:00
4353998cf2 composer 상태줄 언어와 상태 표현 통일
Some checks failed
Release Gate / gate (push) Has been cancelled
- 하단 composer 상태줄에서 모델·데이터 활용·권한·브랜치가 같은 문법으로 읽히도록 문구를 정리하고 모델 버튼 툴팁에 현재 서비스/모델 정보를 보강함

- 데이터 활용과 권한 칩에 상태 색상 기반 테두리와 설명 툴팁을 추가해 현재 모드 인지가 더 쉬워지도록 정리함

- README.md와 docs/DEVELOPMENT.md에 2026-04-05 00:52 (KST) 기준 이력을 반영함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ / 경고 0 / 오류 0
2026-04-05 00:33:01 +09:00
d657539556 하단 워크스페이스 진입 흐름과 패널 요약 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- Cowork와 Code 하단 바에 워크스페이스 진입 칩을 공통 추가해 작업 위치 전환 흐름을 먼저 보이도록 정리함

- 워크스페이스 검색 패널 상단에 현재·최근·전체 요약 strip을 넣어 현재 선택과 탐색 범위를 즉시 파악할 수 있게 보강함

- README.md와 docs/DEVELOPMENT.md에 2026-04-05 00:43 (KST) 기준 이력을 반영함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ / 경고 0 / 오류 0
2026-04-05 00:27:54 +09:00
f9fd144bd0 컨텍스트 카드 모델별 사용량 가시화 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 하단 컨텍스트 카드에 현재 서비스·모델 기준 오늘 사용량을 함께 표시하고 hover에서 현재 모델 usage·compact 이후 usage·오늘 상위 모델 usage를 확인할 수 있게 함

- UsageStatisticsService에 오늘 통계 스냅샷 API를 추가하고 long-safe 토큰 포맷 경로를 넣어 per-model 집계가 커져도 K/M 단위로 안정적으로 표시되게 함

- README.md와 docs/DEVELOPMENT.md에 2026-04-05 00:34 (KST) 기준 이력을 반영함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ / 경고 0 / 오류 0
2026-04-05 00:22:56 +09:00
d40b80ee96 compact 직후 도구 결과 축약과 후속 루프 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- claw-code post-autocompact turn 흐름을 참고해 AX AgentLoop가 compact 직후 첫 턴의 도구 결과를 별도 정책으로 축약하도록 보강함

- process/build_run/test_loop/git/http 계열의 긴 결과는 head/tail 중심 post-compaction 요약으로 피드백해 freshly compacted context가 다시 커지는 현상을 줄임

- compact 로그 축약 건수와 compact 결과 축약 건수를 전체 통계에 반영하고 README.md, docs/DEVELOPMENT.md에 2026-04-05 00:24 (KST) 기준 이력을 추가함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ / 경고 0 / 오류 0
2026-04-05 00:19:00 +09:00
dec288d8f1 compact 후속 루프 추적과 로그 축약 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- claw-code post-autocompact turn tracking 흐름을 참고해 AX AgentLoop가 compact 직후 첫 턴을 별도 상태로 추적하도록 보강함

- compact 이후 첫 턴에서는 LLM 요청 중·프롬프트 제출·무료 티어 대기 같은 boilerplate Thinking 로그를 억제하고 compact pill 중심으로 보이도록 정리함

- 개발자용 전체 통계에 compact 로그 축약 건수를 포함하고 README.md, docs/DEVELOPMENT.md에 2026-04-05 00:17 (KST) 기준 이력을 반영함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ / 경고 0 / 오류 0
2026-04-05 00:12:28 +09:00
6cc79cf3e5 모델별 compact 사용량 계측과 압축 경계 UI 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- claw-code compaction accounting 흐름을 참고해 service:model 기준 일별 토큰 집계와 compact 이후 모델 사용량 버킷을 추가함

- microcompact/session_memory/collapsed boundary 메시지를 전용 압축 카드로 렌더링하고 compact 관련 thinking 이벤트를 얇은 compact pill로 분리함

- README 및 docs/DEVELOPMENT.md에 2026-04-05 00:01 (KST) 기준 이력을 반영함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-05 00:03:15 +09:00
ca006972b2 post-compaction 추적과 대화별 사용량 계측 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- claude-code의 post-compaction 플래그 흐름을 참고해 compact 직후 첫 응답을 별도로 추적하고 대화 단위 후속 사용량을 집계함

- ChatConversation에 pending post-compaction, 응답 회수, prompt/completion token 누적 필드를 추가하고 AX Agent 컨텍스트 카드 hover에 표시함

- README 및 docs/DEVELOPMENT.md에 2026-04-04 23:47 (KST) 기준 이력을 반영함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-04 23:54:59 +09:00
d2f8e39d2b 컨텍스트 압축 계층 확장과 세션 누적 계측 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- claude-code compact 흐름을 참고해 AX에 session memory compact, microcompact, collapse/snip 단계를 추가하고 ContextCondenser를 단계별 결과 반환 구조로 확장함

- ChatConversation과 AX Agent 하단 컨텍스트 카드에 대화별 compact 누적 회수, 절감 토큰, session memory/microcompact/snip 집계를 반영함

- AGENTS.md에 개발 단계부터 최적화와 실행 속도를 우선 고려하는 작업 지침을 추가함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-04 23:49:44 +09:00
ac8e9f9686 컨텍스트 압축 3단계 이식과 microcompact 경계 요약 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- claude-code compact 흐름을 참고해 AX ContextCondenser를 도구 결과 축약 -> microcompact -> 이전 대화 요약 3단계로 확장함

- 오래된 실행 로그, tool_result, 메타 이벤트, 과도하게 긴 메시지를 microcompact_boundary로 먼저 압축해 LLM 요약 전 토큰을 덜어내도록 보강함

- README 및 개발 문서/로드맵에 2026-04-04 23:32 (KST) 기준 이력을 반영함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-04 23:38:56 +09:00
45779f8c6f 컨텍스트 압축 이력 재노출과 compact 비교 기반 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent 하단 컨텍스트 카드 툴팁에 최근 압축 시각, 자동/수동 여부, 압축 전후 토큰, 절감량을 다시 볼 수 있는 compact 이력을 추가함
- 수동 /compact와 전송 전 자동 컨텍스트 압축이 모두 같은 compaction 통계 기록 경로를 사용하도록 정리해 결과를 이후 UI에서도 확인할 수 있게 보강함
- README와 docs/DEVELOPMENT.md에 2026-04-04 23:28 (KST) 기준 이력을 반영함
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-04 23:29:45 +09:00
d883ccf9e6 설정 fan-out 통합과 AX Agent 대기열 상태 분리 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- AX Agent가 SettingsService 변경 이벤트를 직접 구독해 메인 설정과 AX Agent 설정 어느 경로에서 저장하더라도 테마, 모델, 권한, 데이터 활용, composer, 대기열 UI를 즉시 다시 읽어오도록 fan-out 경로를 통합함
- AX Agent 설정 저장 경로와 구형 Agent 설정창에서 표현 수준을 rich로 덮어쓰던 처리를 제거해 풍부하게/적절하게/간단하게 설정이 유지되도록 보정함
- DraftQueue 패널을 실행 중/다음 작업/보류/완료/실패 개별 섹션으로 재구성해 queue state를 더 빠르게 파악할 수 있게 정리함
- README, DEVELOPMENT, AGENT_ROADMAP 문서 이력을 2026-04-04 23:23 (KST) 기준으로 갱신함
- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-04 23:25:12 +09:00
0fa2528401 트레이 AX Agent 우선 진입과 설정 반영 fan-out 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- 트레이 우클릭 메뉴 상단에 AX Copilot 버전 헤더를 추가
- 트레이 좌클릭 시 AI 기능 활성화 상태에서는 AX Agent 창을 우선 열도록 변경
- 메인 설정 저장 완료 후 열린 AX Agent 창이 테마, 모델, 권한, 데이터 활용, 하단 composer 라벨을 즉시 다시 반영하도록 fan-out 경로 추가
- DraftQueue kind 분류를 message/command/steering/direct/followup 기준으로 보강하고 전송 버튼은 일반 메시지 전송 경로를 사용하도록 정리
- README.md, docs/DEVELOPMENT.md, docs/AGENT_ROADMAP.md 이력 갱신

검증
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0개, 오류 0개
2026-04-04 23:17:55 +09:00
72a8c0d541 빌드 부산물 추적 해제와 AX Agent 대기열·composer UI 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- .gitignore에 bin/obj/publish 및 IDE/OS/비밀정보 패턴 추가
- Git 인덱스에서 publish 및 src 하위 bin/obj 빌드 부산물 추적을 해제하여 저장소 노이즈를 정리
- DraftQueue를 실행 대기/최근 결과 섹션과 상태 요약 pill 구조로 재정리
- composer 상단 모델/컨텍스트/프리셋 줄과 하단 작업 위치 칩 UI를 더 평평한 시각 언어로 통일
- 워크스페이스·브랜치·워크트리 패널에 공통 row 및 요약 strip을 적용해 panel UX를 정돈
- README.md와 docs/DEVELOPMENT.md, docs/AGENT_ROADMAP.md, AGENTS.md 이력을 갱신

검증
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\
- 경고 0개, 오류 0개
2026-04-04 23:03:42 +09:00
a027ea4f9a 재구성 AX Agent 설정과 채팅 UI를 Claude형 구조로
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-04 17:48:51 +09:00
90c2f15e96 권한 팝업 밀도/정렬 미세조정: 핵심 모드 스캔 속도 개선
Some checks failed
Release Gate / gate (push) Has been cancelled
- 권한 행 패딩/마진, 아이콘/체크마크 간격, 제목/설명 타이포를 컴팩트하게 재정렬\n- 요약 카드 제목/본문 폰트 및 여백을 축소해 기본 화면에서 핵심 모드 가시성을 강화\n- claw-code 스타일의 빠른 스캔 밀도에 맞춰 권한 팝업 가독성/선택 동선을 보강\n- 문서 동기화: README.md, docs/DEVELOPMENT.md에 2026-04-04 16:58(KST) 이력 반영\n- 검증: dotnet build 경고0/오류0, dotnet test 필터 65 passed
2026-04-04 16:47:05 +09:00
5c2042847a 권한 팝업 단순화: 상세 섹션 통합으로 핵심 모드 선택 흐름 정리
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 권한 팝업에서 요약/예외/최근거부 3개 접힘 섹션을 단일 '상세 정보' 섹션으로 통합\n- 기본 화면을 핵심 권한 모드 중심으로 유지해 claw-code 스타일의 단순한 선택 흐름에 맞춤\n- 요약 카드 본문을 줄바꿈 기반에서 말줄임 기반으로 조정해 팝업 높이와 시야 밀도 개선\n- 빌드 중 WPF wpftmp/.g.cs 누락은 dotnet clean 후 재빌드로 복구 확인\n- 문서 동기화: README.md, docs/DEVELOPMENT.md에 2026-04-04 16:45(KST) 이력 반영\n- 검증: dotnet build 경고0/오류0, dotnet test 필터 65 passed
2026-04-04 16:43:57 +09:00
3dcf5a62ba 권한 순환/슬래시 스크롤 체감 보강: claw-code 기준 코어 모드 정렬
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow.NextPermission 순환을 Deny->Default->AcceptEdits->Plan->BypassPermissions->Deny로 정렬하고 DontAsk는 기본 순환에서 제외\n- AgentSettingsWindow 권한 모드 버튼 순환도 동일 코어 순환으로 맞춰 인라인/설정 체계를 일관화\n- SlashPopup_ScrollByDelta 개선: ScrollViewer 오프셋 이동 + 뷰포트 상단 기준 선택 동기화로 휠 스크롤 체감 개선\n- ChatWindowSlashPolicyTests에 NextPermission 순환 회귀 테스트 추가(Bypass/DontAsk 포함)\n- README.md, docs/DEVELOPMENT.md에 2026-04-04 17:27(KST) 이력 및 검증 결과 기록\n- 검증: dotnet build 경고0/오류0, dotnet test 필터 65 passed
2026-04-04 16:38:30 +09:00
effadf7185 AX Agent 설정창 오픈 안정화: ToggleSwitch 전역 리소스화 및 테마 주입 경로 분리
Some checks failed
Release Gate / gate (push) Has been cancelled
- App.xaml: ToggleSwitch 스타일을 전역 리소스로 추가해 ChatWindow 초기화 시 StaticResource 누락 예외를 방지\n- ChatWindow.xaml.cs: Agent 설정창 오픈 시 창 전체 Resources 병합을 제거하고 AX Agent 테마 사전만 안전 주입하도록 변경\n- ChatWindow.xaml.cs: ApplyAgentThemeResources와 설정창 주입 경로에서 공통 URI 생성 로직(BuildAgentThemeDictionaryUri)으로 중복 제거\n- README.md / docs/DEVELOPMENT.md: 2026-04-04 17:12(KST) 기준 변경 이력 및 검증 결과 동기화\n- 검증: dotnet build(경고0/오류0), dotnet test 필터 59 passed
2026-04-04 16:32:42 +09:00
2e945e36d5 사내/사외 모드 회귀 보강: 전환 즉시반영 및 URL 경계 테스트 추가
Some checks failed
Release Gate / gate (push) Has been cancelled
- OperationModePolicyTests에 IsExternalUrl 경계 케이스(http/https vs file/mailto) 추가

- OperationModeReadinessTests 정비 및 internal→external 전환 즉시반영 테스트 추가

- README/DEVELOPMENT 이력(2026-04-04 16:24 KST) 동기화
2026-04-04 16:25:41 +09:00
3b9938e01b 슬래시 입력 UX 보강: 포커스/키 처리 통합 및 휠 fallback 추가
Some checks failed
Release Gate / gate (push) Has been cancelled
- InputBox_PreviewKeyDown에서 슬래시 네비게이션 키를 우선 처리

- TryHandleSlashNavigationKey로 창/입력창 키 경로 통합(Up/Down/Pg/Home/End/Tab/Enter/Esc)

- 가시 항목 0일 때 SlashScrollViewer 오프셋 fallback 추가

- README/DEVELOPMENT 이력(2026-04-04 16:18 KST) 동기화
2026-04-04 16:18:44 +09:00
64be0e082d 권한 시각 체계 통일: 요약카드/상단배너 색상 정렬
Some checks failed
Release Gate / gate (push) Has been cancelled
- GetPermissionModePalette 모드별 색상 매핑을 팝업 체계와 일치

- BypassPermissions(주황)와 DontAsk(빨강) 배너 렌더링 분리

- README/DEVELOPMENT 이력(2026-04-04 16:12 KST) 동기화
2026-04-04 16:12:52 +09:00
666416ff65 권한 팝업 순서/즉시반영 정렬: Deny 상단 배치와 탭 기본값 강제
Some checks failed
Release Gate / gate (push) Has been cancelled
- 권한 팝업 핵심 영역에 Deny(활용하지 않음) 포함, 고급은 DontAsk만 유지

- LoadConversationSettings가 대화 권한 미설정 시 탭 기본권한(Chat=Deny, Cowork/Code=DefaultAgentPermission) 즉시 적용

- PermissionModePresentationCatalog 한글 라벨/설명 문자열 정리

- README/DEVELOPMENT 이력(2026-04-04 15:52 KST) 동기화
2026-04-04 15:52:58 +09:00
f8669c735d 탭 전환 빈 대화 누적 방지: 저장 게이트 + 목록 노이즈 필터
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatSessionStateService.SaveCurrentConversation에 persistable-content 검사 추가

- 무의미한 빈 새 대화는 저장/탭 기억 대상에서 제외

- ChatWindow 대화 목록에서 빈 노이즈 항목 필터링

- ChatSessionStateServiceTests 회귀 추가 및 문서 이력(2026-04-04 15:48 KST) 동기화
2026-04-04 15:49:12 +09:00
73a4111100 권한 기본값 Deny 정렬: 초기 정책/상태/슬래시 가이드 일치
Some checks failed
Release Gate / gate (push) Has been cancelled
- AppSettings 기본 권한(FilePermission, DefaultAgentPermission)을 Deny로 변경

- AppStateService 권한 상태/요약 기본값을 Deny로 동기화

- /permissions,/allowed-tools 사용법 문구를 none|passive|active|plan|fullauto|silent 체계로 정리

- AppStateServiceTests 추가 및 빌드/회귀 테스트/문서 이력(2026-04-04 15:02 KST) 반영
2026-04-04 15:03:22 +09:00
68d49b8835 권한 모드 별칭 정합 보강: slash 입력과 카탈로그 정규화 일치
Some checks failed
Release Gate / gate (push) Has been cancelled
- PermissionModeCatalog에 none/passive/active/planning/fullauto/silent 별칭 추가

- ChatWindow /permissions,/allowed-tools 액션 파서에 동일 별칭 반영

- PermissionModeCatalogTests 회귀 케이스 추가 및 빌드/테스트/문서 이력 동기화(2026-04-04 14:57 KST)
2026-04-04 14:58:05 +09:00
5957921dea 권한 규칙 호환성 확장: @/|/() 패턴 파싱 및 체인 회귀 강화
Some checks failed
Release Gate / gate (push) Has been cancelled
- AgentContext 권한 규칙 파서가 tool@pattern 외 tool|pattern, tool(pattern) 표기를 해석하도록 확장

- deny 우선순위 체인은 유지하면서 claw-code 계열 표기 차이로 인한 규칙 누락을 방지

- OperationModePolicyTests에 파이프/함수형 패턴 및 deny 우선 회귀 테스트 추가

- README/DEVELOPMENT에 2026-04-04 14:55(KST) 기준 이력 동기화
2026-04-04 14:56:06 +09:00
508392f0d9 로직 안정화 회귀 보강: compact/vLLM 경로 테스트 강화
Some checks failed
Release Gate / gate (push) Has been cancelled
- ContextCondenserTests 추가: proactive 비활성 무변경, 대용량 tool_result 축약 검증

- LlmRuntimeOverrideTests 보강: vLLM API키 복호화/SSL 우회 합성 규칙 검증

- README, DEVELOPMENT, NEXT_ROADMAP 문서 이력(2026-04-04 14:47 KST) 동기화
2026-04-04 14:52:50 +09:00
310e75832c 입력 하단 UX 컴팩트 정렬: 모델 선택/전송 영역 밀도 개선
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 입력 하단(InputBorder, 모델/프리셋 라인, 인라인 설정 패널) 패딩·폰트·버튼 높이를 축소

- InputBox/워터마크와 첨부·내보내기·전송·중지 버튼 크기를 조정해 Codex형 컴포저 밀도에 맞춤

- README.md, docs/DEVELOPMENT.md에 2026-04-04 14:35(KST) 기준 이력 반영

- 검증: dotnet build 0경고/0오류, 관련 필터 테스트 82건 통과
2026-04-04 14:36:33 +09:00
db920d2256 권한 팝업 밀도 압축 2단계: 카드/행 타이포 컴팩트 정렬
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 권한 팝업 섹션 헤더/본문 간격과 폰트를 축소해 카드 밀도를 정돈

- 권한 요약/예외/최근 거부 카드 및 빠른 액션 버튼의 패딩·폰트·마진을 압축

- 핵심 권한 모드 행(아이콘/제목/설명/체크) 크기를 줄여 slash 팝업과 시각 리듬 통일

- README.md, docs/DEVELOPMENT.md에 2026-04-04 14:16(KST) 기준 이력 반영

- 검증: dotnet build 0경고/0오류, 관련 필터 테스트 82건 통과
2026-04-04 14:17:22 +09:00
d3e1f947ba 슬래시 팝업 밀도 압축 2단계: 컴팩트 레이아웃/행 높이 조정
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow.xaml에서 slash 팝업 폭/높이/헤더/리스트/푸터 패딩을 축소해 한 화면 정보량을 증가

- ChatWindow.xaml.cs에서 섹션 헤더/명령 항목의 폰트와 패딩을 낮춰 Codex형 컴팩트 탐색 밀도 반영

- 스크롤/선택 UX(재렌더링 최소화) 경로와 충돌 없이 시각 밀도만 조정

- README.md, docs/DEVELOPMENT.md에 2026-04-04 14:09(KST) 기준 이력 반영

- 검증: dotnet build 0경고/0오류, slash 관련 필터 테스트 41건 통과
2026-04-04 14:10:42 +09:00
157332df52 슬래시 팝업 UX 개선: 스크롤/선택 이동 재렌더링 제거
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow slash 이동 경로를 RenderSlashPage 기반에서 선택 하이라이트 갱신 기반으로 전환

- 휠/방향키/Home/End 이동 시 UpdateSlashSelectionVisualState + EnsureSlashSelectionVisible 호출로 통일

- 항목 hover 시에도 동일 선택 상태 동기화 경로를 사용해 체감 일관성 개선

- README.md, docs/DEVELOPMENT.md에 2026-04-04 14:01(KST) 기준 이력 반영

- 검증: dotnet build 0경고/0오류, 관련 필터 테스트 84건 통과
2026-04-04 14:02:30 +09:00
0bb37d9390 권한 팝업 단순화: 핵심 4모드 전면 배치 + 고급 모드 분리
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 권한 팝업에서 기본 노출 모드를 소극/적극/계획/완전 자동 4개로 재정렬

- 활용하지 않음(Deny), 질문 없이 진행(DontAsk)은 고급 모드 접힘 섹션으로 분리

- permission_advanced_modes 섹션 상태를 설정에 저장/복원하도록 연결

- README.md, docs/DEVELOPMENT.md에 2026-04-04 13:55(KST) 기준 이력 추가

- 품질 확인: dotnet build 통과(0 경고/0 오류), 테스트는 wpftmp 간헐 이슈로 --no-build 필터 86건 통과
2026-04-04 13:56:02 +09:00
b1fa8f692a 테스트 회귀망 강화: 권한 모드/슬래시 카탈로그 L4 통합 검증 추가
Some checks failed
Release Gate / gate (push) Has been cancelled
- PermissionModeCatalogTests 추가: 글로벌/도구 정규화, 승인 필요 정책, 한국어 표시 라벨 검증

- PermissionModePresentationCatalogTests 추가: 권한 표면 순서와 unknown fallback(Default) 검증

- SlashCommandCatalogTests 추가: dev 전용 명령 필터링과 /compact,/permissions,/mcp 핵심 명령 등록 검증

- OperationModePolicyTests 보강: deny 패턴이 allow 패턴보다 우선되는 충돌 케이스 추가

- README.md, docs/DEVELOPMENT.md에 2026-04-04 13:40(KST) 기준 이력 반영
2026-04-04 13:40:58 +09:00
d9169ed3ea 탭별 설정 해석기를 도입해 Cowork/Code 분기 동작을 단일화
Some checks failed
Release Gate / gate (push) Has been cancelled
- AgentTabSettingsResolver 신규 추가: 탭 판별, post-tool 검증 활성 여부, Code 전용 비활성 도구 목록 계산

- AgentLoopService.MergeDisabledTools에서 Code 전용 도구 비활성 계산을 resolver 경로로 전환

- AgentLoopTransitions.Execution에서 post-tool verification 판단 시 resolver 결과를 사용하도록 정리

- AgentTabSettingsResolverTests 신규 추가(탭 판별/검증 플래그 분기/비활성 도구 계산)

- README.md 업데이트 시각(2026-04-04 13:32 KST) 및 변경 이력 항목 갱신

- docs/DEVELOPMENT.md 연속 실행 28차 이력 추가

- 검증: dotnet build(use shared compilation off) 경고 0/오류 0, 필터 테스트 49건 통과
2026-04-04 13:32:45 +09:00
15b675d9c4 권한 표시 카탈로그를 분리해 UI 표면 기준을 단일화
Some checks failed
Release Gate / gate (push) Has been cancelled
- PermissionModePresentationCatalog 신규 추가: 모드 라벨/설명/아이콘/색을 단일 소스로 관리

- ChatWindow 권한 팝업에서 하드코딩 튜플을 제거하고 카탈로그 기반 렌더링으로 전환

- 유지보수 관점에서 권한 표면 기준 변경 포인트를 1곳으로 축소

- README.md 업데이트 시각(2026-04-04 13:25 KST) 및 변경 이력 항목 갱신

- docs/DEVELOPMENT.md 연속 실행 27차 기록 추가

- 검증: dotnet build 경고 0/오류 0, slash+operation mode 필터 테스트 43건 통과
2026-04-04 13:26:34 +09:00
14534af2e9 slash 입력 계층 1차 모듈화와 Codex/Claude 추격 계획을 반영
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 내부 대형 slash 사전을 신규 파일 SlashCommandCatalog로 분리하여 결합도를 낮춤

- ChatWindow slash 조회 경로를 카탈로그 API(MatchBuiltinCommands, TryGetEntry)로 전환

- slash 탐색/실행 동작 회귀를 build + ChatWindowSlashPolicyTests(39건)로 검증

- docs/NEXT_ROADMAP.md에 claw-code 기준 Codex/Claude 추격 로드맵(L1~L5)과 완료 기준을 추가

- docs/DEVELOPMENT.md에 연속 실행 26차 이력(2026-04-04 13:24 KST) 기록

- README.md 업데이트 시각 및 변경 이력 항목을 최신 상태로 갱신
2026-04-04 13:24:27 +09:00
b7431146c8 슬래시 탐색 정합화와 권한 요청창 문구 복구를 반영하고 개발문서 이력을 갱신
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow: slash palette 이동 기준을 렌더 순서로 통일해 방향키/휠/Home/End 선택 체감 불일치를 해소

- ChatWindow: 최근 권한 거부 카드 액션 순서를 활용하지 않음→소극 활용→적극 활용→예외 해제로 정렬

- ChatWindow: /permissions, /allowed-tools 사용법 표기를 deny→default→acceptedits→plan→bypass→dontask→status 순서로 통일

- PermissionRequestWindow: 권한 선택/위험도/미리보기/명령 위험도 문구를 한국어 중심으로 정리하고 깨진 문자열을 복구

- README.md: 업데이트 시각을 2026-04-04 13:07(KST)로 갱신하고 이번 반영 항목 2건 추가

- docs/DEVELOPMENT.md: 연속 실행 25차 이력(슬래시 정합화, 권한 다이얼로그 복구, 품질 게이트 결과) 추가

- 검증: dotnet build 경고 0/오류 0, 슬래시/운영모드 필터 테스트 43건 통과
2026-04-04 13:12:57 +09:00
6e65cf6026 연속 개선: 권한 상태 간소화·설정창 외부 진입 안정화·컴포저 반응형 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- 권한 상태 텍스트(/permissions,/allowed-tools)를 운영 모드 포함 축약형으로 재정리
- 하단 권한 버튼 툴팁에 운영 모드/기본값/예외 개수 정보를 일관 반영
- 탭 전환 시 좌측 메뉴 Visibility 재할당을 최소화해 UI 흔들림 완화
- 상단 모델 라벨에 MaxWidth+말줄임 적용으로 긴 모델명 레이아웃 깨짐 방지
- AX Agent 설정창 오픈 시 리소스 병합 예외를 방어하고 외부 진입 경로를 Dispatcher 기반으로 안정화
- UI 체크리스트/개발문서/README에 2026-04-04 12:41 기준 점검 이력 업데이트
- 검증: build 경고0/오류0, 운영모드 필터 18건 통과, 전체 테스트 436건 통과
2026-04-04 12:42:49 +09:00
e8e701e4a1 UI 마감 튜닝: 권한 팝업 가독성·컴포저 밀도·점검 체크리스트 반영
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow 권한 팝업의 섹션/행 패딩·폰트·줄간격을 미세 조정해 스캔 속도 개선
- 슬래시 팔레트 하단 안내에 PgUp/PgDn/Home/End 키 이동 정보를 반영
- 좌측 기본 카테고리 라벨을 주제 선택/작업 선택으로 통일
- 입력 상단 컴포저(모델/프리셋/인라인 설정) 간격을 컴팩트하게 재정돈
- docs/UI_UX_CHECKLIST.md에 최신 점검 결과(운영모드 필터 18건, 전체 테스트 436건) 기록
- README.md, docs/DEVELOPMENT.md 이력 및 업데이트 시각(2026-04-04 12:33 KST) 갱신
- 빌드 복구 메모: WPF 임시 생성물 꼬임 발생 시 obj/bin 정리 후 정상 재생성 확인
2026-04-04 12:34:34 +09:00
de70f57277 권한 체계 표면 통일 및 AX Agent UI 단순화 연속 적용
Some checks failed
Release Gate / gate (push) Has been cancelled
- 권한 명칭을 활용하지 않음/소극 활용/적극 활용/계획 중심/완전 자동/질문 없이 진행 체계로 통일
- 권한 팝업 선택 순서를 Deny 우선 순서로 재정렬하고 고급 분리를 줄여 단일 흐름으로 정리
- 하단 권한 라벨/상단 권한 배너/작업요약 권한 액션 버튼의 용어·색상·설명을 동일 체계로 맞춤
- Chat 탭 기본 권한 적용을 활용하지 않음으로 조정하여 보수적 기본 동작 강화
- /sandbox-toggle 및 AgentSettingsWindow 권한 순환 순서를 동일 체계로 통일
- 좌측 패널 모드 배지 헤더를 숨겨 탭별 핵심 선택 중심으로 UI 밀도 단순화
- 개발문서 업데이트: README.md, docs/DEVELOPMENT.md (2026-04-04 12:22 KST)
- 운영 모드 점검 근거 반영: OperationModePolicy/Readiness/LlmOperationMode 테스트 필터 18건 통과 기록
2026-04-04 12:23:56 +09:00
57b204649e UI/UX 정비: 슬래시 탐색 보강·모델 빠른설정 단일화·권한 포커스 안정화 및 체크리스트 문서화
Some checks failed
Release Gate / gate (push) Has been cancelled
- ChatWindow: 슬래시 팝업 스크롤 입력 개선(ScrollViewer 휠 연결, PageUp/PageDown/Home/End 지원, 고해상도 휠 델타 단계 이동)
- ChatWindow: 모델 버튼 클릭 시 AX Agent 내부 빠른 설정 패널 토글로 전환하여 단일 라인 흐름 강화
- ChatWindow: 권한 팝업 오픈 시 재귀 포커스 탐색으로 첫 조작 요소에 안정적으로 진입
- ChatWindow.xaml: 모델/프리셋 버튼 높이·패딩 조정으로 컴포저 상단 밀도 정돈
- 문서: README/DEVELOPMENT 이력 업데이트(2026-04-04 12:11 KST)
- 문서: docs/UI_UX_CHECKLIST.md 신규 추가(내부/사외 모드 포함 UI 회귀 시나리오)
2026-04-04 12:13:24 +09:00
c56a841549 런처 클립보드 이미지 미리보기 창을 추가하고 개발 문서 이력 기록 규칙을 반영\n\n- Phase L2-3로 클립보드 이미지 전용 미리보기 창 ClipboardImagePreviewWindow를 신규 추가\n- 원본 해상도 이미지 표시, Ctrl+휠 및 + / - / 0 / F / Esc 단축키 기반 줌 조작 지원\n- PNG, JPEG, BMP 저장과 클립보드 복사 기능을 미리보기 창에서 바로 수행 가능하도록 구현\n- LauncherWindow에서 # 클립보드 이미지 항목 선택 후 Shift+Enter로 미리보기 창을 여는 흐름 추가\n- 단축키 도움말에 클립보드 이미지 미리보기 동작을 반영\n- 런처 CenterOnScreen을 마우스가 위치한 모니터 기준으로 보정해 다중 디스플레이 표시 위치를 개선\n- AGENTS.md에 README.md, docs/DEVELOPMENT.md 이력 선반영 및 업데이트 날짜/시간 기록 규칙을 추가\n- README.md, docs/DEVELOPMENT.md, docs/LAUNCHER_ROADMAP.md에 v0.7.3 이력과 2026-04-04 10:05 (KST) 업데이트 시각 반영\n- dotnet build 경고 0 / 오류 0, dotnet test 436 통과 확인
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-04 10:12:15 +09:00
442e8c2415 권한 코어를 claude-code 기준으로 재구성하고 slash palette 상태 분리를 시작\n\n- Default/AcceptEdits/Plan/BypassPermissions/DontAsk/Deny 권한 모드를 추가하고 기존 Ask/Auto 호환을 유지\n- deny 우선 패턴 규칙, allow/override, 글로벌 모드 순서의 권한 해석 체계를 정리\n- file_write/file_edit/file_manage와 process/build_run/test_loop/snippet_runner/spawn_agent 계열을 권한 클래스별로 분리\n- AcceptEdits는 파일 편집 도구 자동 허용, process 계열은 계속 확인하도록 조정\n- Plan은 쓰기 도구를 차단하고 읽기 중심 진행이 되도록 보강\n- BypassPermissions와 DontAsk는 권한 확인을 생략하는 경로로 정규화\n- AX Agent 권한 팝업, 상단 배너, slash 명령 결과를 새 권한 체계에 맞게 정리\n- /permissions, /allowed-tools, /sandbox-toggle 사용법과 상태 출력을 갱신\n- ChatWindow의 slash palette 상태를 전용 SlashPaletteState로 분리해 이후 composer 개편 기반을 마련\n- AppState, 설정 모델, 테스트를 새 권한 체계에 맞게 갱신\n- dotnet build 경고 0 / 오류 0, dotnet test 436 통과를 확인
Some checks failed
Release Gate / gate (push) Has been cancelled
2026-04-04 09:51:38 +09:00
cc1f1c4e6c AX Agent 권한 UX 통합 및 복구/좌측패널 단순화 보강
Some checks failed
Release Gate / gate (push) Has been cancelled
- /permissions, /allowed-tools, /settings permissions를 동일 권한 상태 모델로 통합

- 권한 공통 처리 헬퍼 추가: 모드 적용(ask/auto/deny), 상태 요약 텍스트, 팝업 오픈 경로 통일

- /allowed-tools에서도 ask|auto|deny|status를 일관 동작으로 지원

- /mcp login/logout 및 reset 인증 초기화 반영 상태를 문맥에 맞게 유지

- 좌측/퀵 스트립 단순화 2차: 실패 필터는 rich 표현 레벨에서만 노출, balanced/simple 비노출

- 루프 복구 테스트 보강: unknown/disallowed/no-progress 혼합 관점 회귀 테스트 추가

- 문서 동기화: DEVELOPMENT.md, AGENT_ROADMAP.md에 2026-04-04 추가 진행 이력 반영

- 품질 게이트 확인: build 경고/오류 0, 전체 테스트 421 통과
2026-04-04 01:36:05 +09:00
52e9e34ade AX Agent MCP 명령 확장 및 에이전트 복구/슬래시 UX 보강
- /mcp 하위 명령 확장: add/remove/reset 지원, 도움말/상태 문구 동기화

- add 파서 추가: stdio(command+args), sse(url) 형식 검증 및 중복 서버명 방지

- remove all/단건 및 reset(세션 MCP 오버라이드 초기화) 실행 경로 구현

- Agentic loop 복구 프롬프트 강화: 미등록/비허용 도구 상황에서 tool_search 우선 가이드 적용

- 반복 실패 중단 응답에 재시도 루트 명시로 루프 복구 가능성 개선

- 슬래시 팝업 힌트 밀도 개선: agentUiExpressionLevel(rich/balanced/simple) 연동

- 테스트 보강: ChatWindowSlashPolicyTests(/mcp add/remove/reset, add 파서, 토크나이저), AgentLoopCodeQualityTests(tool_search 복구 가이드)

- 문서 반영: docs/DEVELOPMENT.md, docs/AGENT_ROADMAP.md에 2026-04-04 추가 진행 이력 기록
2026-04-04 01:20:34 +09:00
6546 changed files with 89600 additions and 168249 deletions

22
.gitignore vendored
View File

@@ -1 +1,21 @@
claw-code/
claw-code/
Agent Compare/
# Build outputs
bin/
obj/
publish/
# IDE
.vs/
*.user
*.suo
# OS
Thumbs.db
Desktop.ini
.DS_Store
# Secrets
*.env
credentials.json

View File

@@ -0,0 +1,75 @@
Base64Tool.cs
BuildRunTool.cs
CheckpointTool.cs
ClipboardTool.cs
CodeReviewTool.cs
CodeSearchTool.cs
CronCreateTool.cs
CronDeleteTool.cs
CronListTool.cs
DataPivotTool.cs
DateTimeTool.cs
DevEnvDetectTool.cs
DiffPreviewTool.cs
DiffTool.cs
DocumentAssemblerTool.cs
DocumentPlannerTool.cs
DocumentReaderTool.cs
DocumentReviewTool.cs
EncodingTool.cs
EnterPlanModeTool.cs
EnterWorktreeTool.cs
EnvTool.cs
ExitPlanModeTool.cs
ExitWorktreeTool.cs
FileEditTool.cs
FileInfoTool.cs
FileManageTool.cs
FileReadTool.cs
FileWatchTool.cs
FileWriteTool.cs
FolderMapTool.cs
FormatConvertTool.cs
GitTool.cs
GlobTool.cs
GrepTool.cs
HashTool.cs
HttpTool.cs
IAgentTool.cs
ImageAnalyzeTool.cs
JsonTool.cs
LspTool.cs
MathTool.cs
McpListResourcesTool.cs
McpReadResourceTool.cs
McpTool.cs
MemoryTool.cs
MultiReadTool.cs
NotifyTool.cs
OpenExternalTool.cs
PlaybookTool.cs
ProcessTool.cs
ProjectRuleTool.cs
RegexTool.cs
SkillManagerTool.cs
SnippetRunnerTool.cs
SqlTool.cs
SubAgentTool.cs
SuggestActionsTool.cs
TaskCreateTool.cs
TaskGetTool.cs
TaskListTool.cs
TaskOutputTool.cs
TaskStopTool.cs
TaskTrackerTool.cs
TaskUpdateTool.cs
TeamCreateTool.cs
TeamDeleteTool.cs
TemplateRenderTool.cs
TestLoopTool.cs
TextSummarizeTool.cs
TodoWriteTool.cs
ToolSearchTool.cs
UserAskTool.cs
XmlTool.cs
ZipTool.cs

216
.tools/claw_doc_slash.txt Normal file
View File

@@ -0,0 +1,216 @@
/absolute
/accordion
/accordiongroup
/agent-memory
/agent-memory-local
/allowed-tools
/api
/api-conventions
/api-key
/architecture
/authentication
/await
/bash
/bashclassifier
/bashpermissions
/bashtool
/bin
/blob
/block
/c
/card
/cardgroup
/cd
/changelog
/ci-mcp
/ci-tools
/claude
/claude-code
/claude-config
/claude-debug
/claude-event
/claudemd
/claw-code
/clear
/cli
/cli-flags
/cloud
/command
/commands
/commit
/compact
/company-standards
/components
/concepts
/config
/configs
/configuration
/console
/container
/conventions
/core
/cost
/credential
/credentials
/data
/database
/db
/db-tools
/deny
/deploy
/deployment
/describe
/dev
/developer
/dir
/disable
/docs
/en
/en-us
/environ
/etc
/exit
/expandable
/extra
/fail
/fetch
/filename
/file-operations
/fix-issue
/fnm
/generated
/get-claude-key
/github
/guides
/handlers
/help
/home
/hook
/hooks
/hooks-reference
/how-it-works
/in
/index
/info
/init
/ink
/install
/installation
/instructkr
/library
/libs
/lint
/lint-changed-file
/llms
/local
/local-tools
/logger
/login
/logout
/main
/max
/mcp
/mcp-server
/mcp-server-postgres
/mcp-servers
/memoize
/memory
/memory-context
/mintlify
/mnt
/model
/modelcontextprotocol
/monorepo
/multi-agent
/my
/my-mcp-config
/my-memory-store
/my-proxy
/myrole
/my-server
/my-service
/my-skill
/new
/new-component
/nodejs
/non-interactive
/note
/null
/nvm
/nvm-sh
/off
/opt
/otel
/output
/paramfield
/path
/permissions
/permissions-api
/plan
/preferences
/proc
/project
/projects
/prompt
/quickstart
/raw
/reference
/relative
/reset
/responsefield
/resume
/review
/rules
/schemas
/schniz
/sdk
/search
/server-filesystem
/server-postgres
/services
/session
/settings
/sh
/shared
/shouc001
/skill
/skill-name
/skills
/slash-commands
/some-lib
/some-org
/sse
/standup
/stderr
/stdout
/step
/steps
/style-guide
/sudo
/sudoers
/tab
/tabs
/team-settings
/test
/third-party
/time
/tip
/tmp
/to
/tools
/typescript
/user
/usr
/utils
/v0
/v1
/v4
/vendor
/verify
/vineetagarwal-code
/vineetagarwal-code-claude-code
/warning
/web
/x
/you
/zsh

79
.tools/current_slash.txt Normal file
View File

@@ -0,0 +1,79 @@
/add-dir
/advisor
/agents
/branch
/btw
/build
/chrome
/clear
/color
/compact
/config
/context
/copy
/cost
/desktop
/diff
/doctor
/effort
/exit
/explain
/export
/fast
/feedback
/files
/fix
/heapdump
/help
/hooks
/ide
/init
/init-verifiers
/install-github-app
/install-slack-app
/keybindings
/login
/logout
/mcp
/memory
/mobile
/model
/output-style
/passes
/permissions
/plan
/plugin
/pr
/pr-comments
/privacy-settings
/rate-limit-options
/release-notes
/reload-plugins
/remote-env
/rename
/resume
/review
/rewind
/sandbox-toggle
/search
/security-review
/session
/skills
/stats
/status
/statusline
/stickers
/structure
/summary
/tag
/tasks
/terminal-setup
/test
/theme
/thinkback
/thinkback-play
/translate
/ultrareview
/upgrade
/usage
/vim

75
.tools/current_tools.txt Normal file
View File

@@ -0,0 +1,75 @@
Base64Tool.cs
BuildRunTool.cs
CheckpointTool.cs
ClipboardTool.cs
CodeReviewTool.cs
CodeSearchTool.cs
CronCreateTool.cs
CronDeleteTool.cs
CronListTool.cs
DataPivotTool.cs
DateTimeTool.cs
DevEnvDetectTool.cs
DiffPreviewTool.cs
DiffTool.cs
DocumentAssemblerTool.cs
DocumentPlannerTool.cs
DocumentReaderTool.cs
DocumentReviewTool.cs
EncodingTool.cs
EnterPlanModeTool.cs
EnterWorktreeTool.cs
EnvTool.cs
ExitPlanModeTool.cs
ExitWorktreeTool.cs
FileEditTool.cs
FileInfoTool.cs
FileManageTool.cs
FileReadTool.cs
FileWatchTool.cs
FileWriteTool.cs
FolderMapTool.cs
FormatConvertTool.cs
GitTool.cs
GlobTool.cs
GrepTool.cs
HashTool.cs
HttpTool.cs
IAgentTool.cs
ImageAnalyzeTool.cs
JsonTool.cs
LspTool.cs
MathTool.cs
McpListResourcesTool.cs
McpReadResourceTool.cs
McpTool.cs
MemoryTool.cs
MultiReadTool.cs
NotifyTool.cs
OpenExternalTool.cs
PlaybookTool.cs
ProcessTool.cs
ProjectRuleTool.cs
RegexTool.cs
SkillManagerTool.cs
SnippetRunnerTool.cs
SqlTool.cs
SubAgentTool.cs
SuggestActionsTool.cs
TaskCreateTool.cs
TaskGetTool.cs
TaskListTool.cs
TaskOutputTool.cs
TaskStopTool.cs
TaskTrackerTool.cs
TaskUpdateTool.cs
TeamCreateTool.cs
TeamDeleteTool.cs
TemplateRenderTool.cs
TestLoopTool.cs
TextSummarizeTool.cs
TodoWriteTool.cs
ToolSearchTool.cs
UserAskTool.cs
XmlTool.cs
ZipTool.cs

View File

@@ -13,6 +13,11 @@
- 작업 완료 후에는 변경사항을 점검하고 **반드시 Git push까지 진행**합니다.
- Git 커밋/푸시 시 커밋 메시지는 **반드시 한국어로 작성**하며, 변경 목적·핵심 수정사항·검증 결과가 드러나도록 **상세하게** 작성합니다.
- 작업 중 오류가 발생해 복구가 되지 않으면, **이전 정상 버전을 다시 받아 기준 상태에서 작업을 재개**합니다.
- 기능 개발, 버그 수정, 계획 변경이 발생하면 **작업 중간에도 `README.md``docs/DEVELOPMENT.md`를 즉시 갱신**하여 현재 이력이 누락되지 않도록 합니다.
- **Git 커밋/푸시 여부와 무관하게** 개발 문서 이력은 항상 최신 상태를 유지해야 하며, 문서 업데이트를 뒤로 미루지 않습니다.
- 커밋/푸시 전에는 변경 코드만 확인하는 것이 아니라 **`README.md`, `docs/DEVELOPMENT.md` 반영 여부를 먼저 점검**한 뒤 진행합니다.
- 개발 문서 이력(`README.md`, `docs/DEVELOPMENT.md`, 필요 시 로드맵 문서)을 갱신할 때는 **문서 업데이트 날짜와 시간(로컬 기준)** 을 함께 기록합니다.
- 날짜/시간은 문서 내 이력 항목 또는 별도 메모 줄에서 **누가 보더라도 확인 가능한 형식**으로 남깁니다. 예: `업데이트: 2026-04-04 15:20 (KST)`
### 개발 계획 수립 기준 (필수)
- 모든 개발 계획(Phase/마일스톤/백로그)은 **`claude-code` 동등 품질 달성**을 1순위 목표로 수립합니다.
@@ -43,6 +48,12 @@
### AX Agent의 테마 통일성
- AX Agent의 경우 별도 테마를 생성하여 사용(codex, claude-code를 모방한 ui/ux를 원함)
- 테마는 시스템, 라이트, 다크로 간단하게 구성
- AX Agent UI/UX는 **기존 AX Copilot UI 틀을 유지하지 않아도 되며**, 필요 시 레이아웃/구조를 재배치해도 됨
- 목표 기준은 **Codex, Claude, claude-code 계열처럼 심플하고 밀도 높은 업무형 UI**이며, 장식보다 정보 구조와 사용 흐름의 단순화를 우선
- 채팅 본문, 실행 로그, 계획 카드, composer, 설정 화면 모두 가능한 한 **같은 시각 언어**로 정리하고 기본 컨트롤 느낌을 줄임
- AX Agent 설정 화면은 **가독성이 좋도록 항목 간 상하 여백과 섹션 간 간격을 충분히 확보**하여 답답하지 않게 구성
- AX Agent 설정 화면에서는 기본 WPF CheckBox/ComboBox 느낌을 그대로 쓰지 말고, **커스텀 라디오 버튼, 커스텀 콤보박스, 커스텀 선택 카드/토글 UI**를 우선 사용
- 설정 항목은 가능하면 `라벨 + 설명 + 현재값/선택 컨트롤` 구조의 row 패턴으로 정리하고, 선택 가능한 값은 **텍스트만이 아니라 시각적으로 인지 가능한 버튼/배지/카드 형태**로 표현
### 코드비하인드 팝업/다이얼로그 테마 규칙
- **코드비하인드에서 생성하는 모든 팝업 Window/다이얼로그**도 현재 테마를 따라야 함
@@ -77,6 +88,17 @@ var fg = TryFindResource("PrimaryText") as Brush ?? Brushes.Black;
- AI/고급 설정 항목 옆에 `?` 도움말 아이콘 + 커스텀 다크 툴팁 (`HelpTooltipStyle`)
- 설정 저장 시 `CustomMessageBox`로 완료 알림
### AX Agent 표현 수준 (필수)
- AX Agent UI 표현 수준은 설정에서 반드시 3단계로 제공: **`풍부하게` / `적절하게` / `간단하게`**
- 기본값은 **`적절하게`** 로 고정하며, 신규 설치/초기화 시 자동 적용
- 기준 UX 레퍼런스는 `claude-code`(실제 폴더 `claw-code`), Codex, Claude를 참고하되 **과한 복잡도 없이 현재 제품 구조에 맞게 재구성**
- 상단 탭 구조(`채팅/코워크/코드`) 및 기존 프리셋 기능은 유지하고, 정보 밀도/요약 깊이/보조 설명 노출량만 표현 수준에 따라 조절
- 표현 수준 변경 시 즉시 반영 가능한 UI(재오픈 없이 반영 또는 다음 렌더부터 반영)로 구현
- 표현 수준은 시각 스타일만이 아니라 다음 항목에 모두 적용:
1. 계획/승인 카드의 상세 정보 노출량
2. 권한 요청 팝업의 미리보기 길이와 설명 밀도
3. 하단 입력영역·모델 선택 영역의 보조 텍스트/가이드 노출량
### 헬프 화면 (HelpDetailWindow) 규칙
- **버전 정보 금지** — 헬프에 버전별 신기능(예: "v1.6.0 신기능") 항목을 넣지 않으며, 앞으로도 추가하지 않음
- **영역별 핵심 기능만 표시** — 개요, AI, 업무 보조 등 영역별로 사용자가 "무엇을 할 수 있는지"만 간결히 설명
@@ -127,6 +149,15 @@ var enabled = app?.SettingsService?.Settings.Llm.Code.EnableLsp ?? true;
if (!enabled) return ToolResult.Ok("비활성 상태입니다. 설정에서 활성화하세요.");
```
### 표현 수준 설정 연동 규칙 (필수)
- `AppSettings.cs`에 표현 수준 프로퍼티를 추가하고 JSON 저장/로드를 보장
- `SettingsViewModel.cs`와 AX Agent 전용 설정창(또는 동일 역할 UI)에 바인딩하여 사용자가 즉시 변경 가능해야 함
- 표현 수준 설정은 AX Agent 내부 화면에만 우선 적용하고, 런처/일반 설정 UI에는 영향 주지 않음(확장 시 별도 명시)
- 문자열 하드코딩 분기를 피하고 enum 또는 상수 매핑으로 관리:
1. `rich` = 풍부하게
2. `balanced` = 적절하게 (기본)
3. `simple` = 간단하게
---
## 3. 버전 관리 및 배포
@@ -172,6 +203,12 @@ if (!enabled) return ToolResult.Ok("비활성 상태입니다. 설정에서 활
- 모든 변경 후 `dotnet build` 실행 → **경고 0, 오류 0** 필수
- CS8603 (nullable) 경고 즉시 수정
### 성능/실행속도 우선 원칙
- 기능 구현 시 가능하면 **개발 단계부터 최적화와 실행 속도**를 함께 고려합니다.
- 동일 품질을 만족하는 구현안이 여러 개라면, **더 가볍고 빠르게 동작하는 구조**를 우선 채택합니다.
- UI/UX 개선, 에이전트 루프, 도구 실행, 컨텍스트 압축, 검색/필터링 기능은 특히 초기 구현부터 불필요한 반복 계산·과도한 렌더링·중복 I/O를 줄이는 방향으로 설계합니다.
- 단, 성능 최적화를 이유로 가독성이나 안정성을 과도하게 해치지 않으며, **동등 품질 + 유지보수 가능성**을 함께 만족하는 수준에서 최적화합니다.
### 리소스 관리
- `IDisposable` 구현 객체는 반드시 해제 (PerformanceCounter, LspClientService 등)
- P/Invoke 메모리: `Marshal.AllocHGlobal``finally`에서 `FreeHGlobal`
@@ -293,6 +330,9 @@ if (settings?.AiEnabled == false) return; // 또는 빈 결과 반환
- **배포 시**: DEVELOPMENT.md 버전 이력 추가, 사용자 가이드/헬프 갱신
- **차기 계획 수립 시**: NEXT_ROADMAP.md 업데이트 (경쟁 분석 반영)
- **HTML 동기화 요청 시에만**: 해당 .md 내용을 기반으로 HTML 파일 갱신 (열고/닫기 토글, badge 스타일 done/plan/hold 통일)
- **일상 개발 작업 시**: `README.md``docs/DEVELOPMENT.md`를 작업 이력의 기준 문서로 보고, 기능/버그/검증 결과를 같은 세션 안에서 즉시 반영
- **문서 선반영 원칙**: 구현을 진행하며 방향이나 범위가 확정되면 커밋 전 대기하지 말고 먼저 문서에 남겨 이력 누락을 방지
- **이력 시점 기록 의무**: 문서 이력 항목을 추가하거나 수정할 때는 해당 항목 근처에 업데이트 일시를 함께 남겨 변경 시점을 추적 가능하게 유지
---

895
README.md
View File

@@ -7,6 +7,160 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
개발 참고: Claw Code 동등성 작업 추적 문서
`docs/claw-code-parity-plan.md`
- 업데이트: 2026-04-06 00:50 (KST)
- 채팅/코워크 프리셋 카드의 hover 설명 레이어를 카드 내부 오버레이 방식에서 안정적인 tooltip형 설명으로 바꿨습니다. 카드 배경/테두리만 반응하게 정리해 hover 시 반복 깜빡임을 줄였습니다.
- 업데이트: 2026-04-06 00:45 (KST)
- AX Agent 내부 설정 공통 탭에 `대화 스타일` 섹션 제목을 복구해, `문서 형태``디자인 스타일` 저장 항목이 명확히 보이도록 정리했습니다.
- AX Agent 내부 설정 스킬 탭의 `MCP 서버` 영역에 `서버 추가` 버튼을 복원했고, 목록 카드 안에서 `활성화/비활성화``삭제`까지 바로 관리할 수 있게 옮겼습니다.
- 업데이트: 2026-04-05 19:04 (KST)
- AX Agent transcript와 작업 요약에서 도구/스킬 이름을 사람이 읽기 쉬운 표시명으로 정리했습니다. raw snake_case 도구명 대신 `파일 읽기`, `빌드/실행`, `Git`, `/bug-hunt` 같은 표시명 중심으로 보입니다.
- 도구/스킬 이벤트 배지는 역할 중심(`도구`, `도구 결과`, `스킬`)으로 단순화하고, 실제 도구명은 본문 보조 텍스트로만 노출되게 바꿨습니다.
- 작업 요약 팝업의 권한/배경 작업 관측성 섹션은 `debug` 성격일 때만 두껍게 보여서 기본 UX가 더 `claw-code`처럼 조용하게 유지됩니다.
- 업데이트: 2026-04-05 18:58 (KST)
- AX Agent의 `의견 요청`/`질문` 흐름을 transcript 내 카드 우선 구조로 전환했습니다.
- `user_ask` 도구는 별도 `UserAskDialog`를 먼저 띄우지 않고, 본문 안에서 선택지/직접 입력/전달로 응답을 완료합니다.
- 계획 승인과 사용자 질문이 같은 transcript-first UX 원칙을 따르도록 정리했습니다.
- 업데이트: 2026-04-05 22:04 (KST)
- `claw-code`와 AX Agent를 같은 기준으로 비교할 수 있도록 canonical prompt set 10종을 parity 문서에 고정했습니다. Chat 기본/장문, Cowork 문서/데이터, Code 수정/빌드, queue follow-up, post-compaction, permission 승인, slash skill 진입까지 핵심 회귀 흐름을 한 세트로 검증하도록 정리했습니다.
- 도구/스킬 비교 기준도 parity 문서에 추가했습니다. AX는 문서/오피스/데이터/업무형 도구가 더 풍부하고, `claw-code`는 transcript-native tool/approval/permission 메시지 구조가 더 정교하다는 차이를 명시했습니다.
- 계획 승인 UX는 `claw-code` 쪽 흐름에 더 가깝게 inline 우선으로 바꿨습니다. AX Agent는 이제 승인 요청 시 `PlanViewerWindow`를 먼저 띄우지 않고 transcript 내부의 승인/수정/취소 버튼을 우선 보여주며, 계획 상세는 하단 `계획` 버튼으로만 여는 보조 경로를 사용합니다.
- 업데이트: 2026-04-05 16:55 (KST)
- `claw-code` 대비 AX Agent 추정 진척율 기준선을 문서에 남겼습니다. 현재 기준은 핵심 엔진 `82%`, 채팅 메인 UI `68%`, Cowork/Code 상태 UX `63%`, 내부 설정 연결 `88%`, 전체 AX Agent 동등 품질 `74%`입니다.
- 메인 핵심 엔진 로직에 직접 영향을 주는 설정은 최소화 원칙으로 다시 검토하기 시작했습니다. 이미 실질 선택지가 사라진 `계획 모드` 계열은 사용자 노출을 더 줄였고, 남은 엔진성 설정은 개발자 탭 중심으로 계속 정리합니다.
- 메시지 행과 좌측 대화 목록도 `claw-code` 방향으로 다시 단순화했습니다. 사용자/assistant 버블의 패딩, 라운드, 메타 텍스트를 줄였고, 대화 목록의 실행 상태도 배지 카드보다 얇은 텍스트 요약 중심으로 바꿔 읽는 축이 먼저 보이도록 눌렀습니다.
- 검증 예정: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
- 업데이트: 2026-04-05 17:03 (KST)
- AX Agent UI를 `claw-code` 쪽 시각 언어에 더 가깝게 맞추기 위해 레이아웃 골격을 다시 조정했습니다. 좌측 패널 폭과 헤더/액션 행 높이, 축소 아이콘 바, 상태 스트립, 메시지 축, 컴포저 폭과 코너 반경을 전반적으로 더 얇고 평평하게 정리했습니다.
- 반응형 폭 계산도 새 골격에 맞춰 다시 조정했습니다. 메시지 축은 최대 `880`, 컴포저는 최대 `820` 기준으로 더 자연스럽게 줄어들도록 바꿔 창 크기가 변해도 `claw-code`처럼 중심선이 크게 흔들리지 않게 맞췄습니다.
- 검증 예정: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
- 업데이트: 2026-04-05 17:12 (KST)
- 메시지 내부 액션 바와 Cowork/Code 실행 배너를 더 `claw-code`처럼 보조 레이어로 낮췄습니다. 메시지 액션은 텍스트 버튼 대신 작은 아이콘 버튼 중심으로 바꾸고, 실행 배너는 여백·폰트·토큰 배지·파일 경로 표시를 한 단계 더 얇게 줄여 본문보다 덜 튀게 정리했습니다.
- 검증 예정: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
- 업데이트: 2026-04-05 17:19 (KST)
- 상단 헤더와 탭 그룹, 좌측 대화 목록 행 메타를 더 `claw-code` 쪽 밀도로 조정했습니다. 상단 탭은 더 얇은 세그먼트형으로 줄였고, 사이드바 토글 버튼도 크기와 선 두께를 낮췄습니다.
- 대화 목록은 실행 상태/요약 텍스트와 우측 편집 아이콘을 더 약하게 줄여 제목 중심으로 읽히게 정리했습니다.
- 검증 예정: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
- 업데이트: 2026-04-05 16:02 (KST)
- `document_plan` 후속 실행 분기를 `claw-code` 기준으로 다시 보강했습니다. 이제 문서 플래너 출력에서 body 골격과 즉시 실행 지시를 깨진 문자열 비교에 의존하지 않고 안정적으로 추출해, `html_create / document_assemble / docx_create / markdown_create` 후속 호출 유도가 실제로 이어집니다.
- 코워크 문서형 작업은 설정이 `planMode=off`여도 내부적으로 `always` 플랜 경로를 타도록 보정했습니다. 그래서 문서/보고서/제안서 요청은 먼저 계획을 세우고, 그 계획을 바탕으로 실제 문서 생성 단계까지 이어가도록 정리했습니다.
- 코워크 시스템 프롬프트도 강화해 문서 작업은 계획만 제시하고 끝내지 말고 실제 산출물 파일 경로까지 만들어야 완료로 판단하도록 바꿨습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 15:42 (KST)
- AX Agent 엔진 공통화 1차로, Cowork/Code 실행 이벤트와 Agent run 기록을 탭별 현재 대화에 누적한 뒤 원래 활성 탭 대화를 복원하는 로직을 `ChatWindow`에서 `AxAgentExecutionEngine` helper로 옮겼습니다.
- 이제 실행 이벤트/최근 run 기록 반영 시 창 코드가 직접 교차 탭 복원 경로를 중복 처리하지 않고, 엔진의 공통 세션 mutation 경로를 사용합니다.
- 업데이트: 2026-04-05 15:34 (KST)
- AX Agent 개선 계획 기준을 이전 AX 비교본이 아니라 실제 `claw-code` 런타임 축으로 다시 고정했습니다. 현재 참조 spine은 `bootstrap/state.ts -> bridge/initReplBridge.ts -> bridge/sessionRunner.ts -> screens/REPL.tsx -> components/Messages.tsx -> components/StatusLine.tsx` 입니다.
- 이에 맞춰 AX Agent 개선도 `상태 정규화 -> 실행 준비 공통화 -> AgentLoop 이벤트 정규화 -> 타임라인 렌더 일원화 -> 컴포저/상태바 단순화 -> 복구/재개 검증` 순서로 진행하도록 parity 문서를 갱신했습니다.
- 업데이트: 2026-04-05 11:22 (KST)
- AX Agent 채팅 복구 1차로 컴포저를 하단 고정 배치로 조정해 세로 공간을 꽉 채우며 커 보이던 문제를 줄였습니다.
- 전송 직후 사용자 버블을 직접 UI에 꽂지 않고 대화 모델 기반 `RenderMessages()` 재렌더를 먼저 타도록 정리해, 중복 렌더와 빈 버블 누적 가능성을 낮췄습니다.
- Cowork/Code의 실행 이벤트 배너는 `실행 로그 표시`를 켠 경우에만 즉시 채팅 본문에 보이도록 바꿔 작업 중 플래시처럼 남던 잔상 UI를 줄였습니다.
- Cowork/Code는 실행 시작 시 해당 대화의 `실행 로그 표시`를 먼저 끄도록 바꿔, 중간 재렌더가 들어와도 이벤트 배너가 다시 섞이지 않도록 조정했습니다.
- Chat 탭은 비스트리밍 응답 경로에 맞춰 임시 스트리밍 카드 자체를 만들지 않도록 바꿨습니다. 이제 Chat은 최종 assistant 메시지만 모델에 반영되고 재렌더됩니다.
- Cowork/Code도 최종 응답형 경로에 맞춰 임시 스트리밍 카드를 만들지 않도록 정리했습니다. 이제 임시 빈 assistant 카드 없이 최종 응답만 대화 모델에 반영됩니다.
- 메인 설정 탭 가시성 로직에서도 `AX Agent` 탭은 항상 숨기도록 고정해, 일반 설정과 AX Agent 내부 설정이 다시 갈라지지 않게 정리했습니다.
- AX Agent 채팅 전송 경로에서 빈 assistant 메시지를 먼저 대화 모델에 넣던 흐름을 제거했습니다. 이제 응답이 끝난 뒤 최종 assistant 메시지만 추가되어, 토큰은 갔는데 빈 말풍선만 남는 현상을 줄입니다.
- 메인 설정 `TabControl`에서 구형 AX Agent 탭이 선택되더라도 내부 설정 바로가기로 즉시 우회되도록 연결해, 숨김 탭 경로로 다시 들어가는 흐름을 막았습니다.
- 메인 설정에만 남아 있던 `Temperature`도 AX Agent 내부 설정 오버레이에 추가했습니다. 이제 내부 설정에서 값 확인과 수정이 가능하며, 포커스가 빠지면 0.0~2.0 범위로 정규화해 저장됩니다.
- `claw-code`의 입력 처리/실행 분리 흐름을 참고해 AX Agent 내부 실행 엔진 `AxAgentExecutionEngine`을 추가했습니다. ChatWindow는 전송 메시지 조립과 최종 assistant 메시지 반영을 이 엔진으로 넘기기 시작했습니다.
- 업데이트: 2026-04-05 07:11 (KST)
- AX Agent 하단 바를 다시 정리해 코워크/코드 탭에서는 중복으로 보이던 보조 칩(`워크스페이스`, `파일`, `간략`, `로컬/워크트리` 묶음)이 더 이상 나타나지 않도록 정리했습니다. 작업 폴더 정보는 기존 폴더 경로 영역만 남기고, 노란 표시로 보이던 중복 보조 영역은 제거했습니다.
- `데이터 미활용` 버튼은 외곽 테두리선 없이 보이도록 바꿔 하단 옵션 줄이 덜 부풀어 보이게 정리했습니다.
- 업데이트: 2026-04-05 07:08 (KST)
- AX Agent 체감 속도 개선을 위해 대화 메타 캐시를 보강했습니다. 대화 목록 메타를 다시 읽을 때마다 매번 전체 정렬을 반복하지 않도록 정렬 결과를 별도로 캐시해, 사이드바 대화 목록과 분류 계산이 잦은 흐름의 부담을 줄였습니다.
- AX Agent 내부 설정/하단 옵션 반영 시 같은 값인데도 현재 대화 설정을 반복 저장하던 경로를 줄였습니다. 권한, 데이터 활용, 무드, 출력 형식이 실제로 바뀐 경우에만 대화 저장이 일어나도록 바꿔 작은 옵션 변경 때의 지연을 덜었습니다.
- 대화 검색창은 입력할 때마다 즉시 전체 목록을 다시 그리지 않고 짧게 디바운스되도록 조정해, 검색어를 빠르게 입력할 때의 버벅임을 줄였습니다.
- 업데이트: 2026-04-05 02:00 (KST)
- AX Agent 내부 톱니 설정 오버레이의 왼쪽 분류 탭도 복구했던 기준에 맞춰 `기본 / 채팅 / 코워크 / 코드 / 개발자 / 도구 / 스킬/차단` 구조로 다시 정리했습니다. 단순히 항목만 추가한 것이 아니라, 실제 오버레이 네비게이션 자체를 같은 분류 기준으로 바꾸고 각 탭에서 해당 설정군만 보이도록 다시 묶었습니다.
- 업데이트: 2026-04-05 01:46 (KST)
- AX Agent 안의 톱니 아이콘이 실제로 여는 대상이 별도 창이 아니라 채팅 내부 오버레이임을 다시 확인하고, 누락된 설정을 그 실제 오버레이로 옮겼습니다. 이제 AX Agent 내부 설정 오버레이의 고급 섹션에서 `프로젝트 규칙 자동 반영`, `에이전트 메모리`, `최대 Agent Pass`, `Code용 Plan/Worktree/Team/Cron 도구` 항목을 직접 보고 저장할 수 있습니다.
- 업데이트: 2026-04-05 01:40 (KST)
- AX Agent 내부의 톱니 설정 창에 메인/오버레이 설정에 남아 있던 항목을 추가로 옮겼습니다. 이제 내부 설정에서 기본 출력 형식, 기본 디자인 무드, 프로젝트 규칙 자동 반영, 에이전트 메모리, 최대 Agent Pass, Code용 Plan/Worktree/Team/Cron 도구 토글까지 직접 보고 저장할 수 있습니다.
- 채팅 하단 입력부와 옵션 버튼의 과한 pill 형태도 다시 줄였습니다. 하단 옵션 버튼과 입력 박스의 코너 반경을 눌러 타원형 느낌보다 밀도 있는 업무형 형태에 가깝게 정리했습니다.
- 업데이트: 2026-04-05 01:35 (KST)
- AX Agent 코워크 대화 목록 필터를 프로젝트(작업 폴더) 기준이 아니라 작업 유형 기준으로 다시 정리했습니다. 이제 코워크의 상단 빈 상태, 분류 드롭다운, 대화 목록 필터가 모두 프리셋/카테고리 기반 작업 유형 흐름에 맞춰 동작합니다.
- 코드 탭은 기존처럼 프로젝트(워크스페이스) 기준 필터를 유지해, 코워크와 코드가 각자 맞는 분류 기준을 사용하도록 분리했습니다.
- 업데이트: 2026-04-05 01:22 (KST)
- AX Agent 내부 설정 창의 `도구`, `스킬/차단` 탭에 숨겨져 있던 설정을 추가로 옮겼습니다. 이제 내부 설정에서 도구 노출 목록, 도구 훅, 스킬 폴더, 슬래시 팝업 개수, 드래그 앤 드롭 AI 액션, 폴백 모델, MCP 서버를 직접 확인하고 저장할 수 있습니다.
- 채팅 하단 데이터 활용 옵션의 과한 타원형 pill 테두리는 둥근 사각형으로 정리해 하단 옵션 바가 덜 부풀어 보이도록 다듬었습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 01:15 (KST)
- AX Agent 내부 설정 저장 경로를 다시 점검해, 저장 버튼 전에도 원본 설정 객체를 바로 바꾸던 흐름을 로컬 상태 기반으로 정리했습니다. 이제 서비스/테마/표현 수준 선택은 저장 버튼을 눌렀을 때만 실제 설정에 반영됩니다.
- 내부 설정 창에서 빠져 있던 `vLLM TLS 우회`, 활성 서비스별 모델 동기화, 전역 호환 모델 필드 저장도 다시 연결해 저장 후 재실행 시 값이 어긋나는 문제를 줄였습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 01:12 (KST)
- AX Agent 내부 설정 창의 분류 기준을 이전 커밋 구조에 맞춰 다시 정리했습니다. 단순 섹션형이던 인앱 설정을 `기본 / 채팅 / 코워크 / 코드 / 개발자 / 도구 / 스킬·차단` 흐름으로 되돌릴 수 있는 기반을 복구했고, 우선 `기본/채팅/코워크/코드/개발자/도구` 탭 전환과 핵심 저장 경로를 다시 연결했습니다.
- `AX Agent 사용` 토글과 `표현 수준` 저장도 내부 설정 창에서 다시 관리되도록 연결했고, 설정 저장 시 `AiEnabled` 값이 강제로 다시 켜지던 정규화 경로도 함께 수정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 00:58 (KST)
- `Agent Compare/AX Copilot`의 개발 문서와 런처 소스를 대조해 AX Commander 신규 기능 묶음을 이식했습니다. 빠른 링크, 파일 태그, 알림 센터, 포모도로, 파일 브라우저, 핫키 관리, OCR, 세션/스케줄/매크로, Git/정규식/네트워크/압축/해시/SSH/UUID/JWT/QR 등 비교본에 있던 다수의 런처 핸들러를 현재 앱에 등록했습니다.
- 런처 기능 이식에 맞춰 스케줄러/태그/알림 기록/아이콘 캐시/URL 템플릿 서비스와 편집용 보조 창, 설정 모델, 런처 위치 기억 설정, QR/OCR 빌드 의존성도 함께 반영했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 00:46 (KST)
- 트레이 아이콘 우클릭 메뉴 맨 위의 앱 이름/버전 헤더 글자색을 진한 회색으로 조정해, 본문 메뉴 항목보다 덜 튀면서도 더 또렷하게 보이도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 00:52 (KST)
- 하단 composer 상태줄의 표시 문구를 더 통일해 `서비스 ... · 모델 ...`, `데이터 ...`, `브랜치 ...`처럼 같은 문법으로 읽히도록 정리했습니다.
- 데이터 활용/권한 칩은 현재 상태 색에 맞는 테두리와 툴팁 설명을 같이 보여줘 상태 인지가 더 쉬워졌습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 00:43 (KST)
- Cowork/Code 하단 바에 `워크스페이스` 진입 칩을 공통으로 추가해, 작업 위치 전환을 파일/워크트리보다 먼저 찾을 수 있게 정리했습니다.
- 워크스페이스 검색 패널 상단에는 `현재 / 최근 / 전체` 요약 strip을 넣어 현재 선택과 탐색 범위를 한눈에 보이게 보강했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 00:34 (KST)
- AX Agent 하단 컨텍스트 카드에 현재 서비스·모델 기준 오늘 사용량을 함께 표시하고, hover에는 현재 모델의 일반 사용량·compact 이후 사용량·오늘 상위 모델 사용량까지 보이도록 보강했습니다.
- 큰 수 토큰 집계는 `K/M` 단위까지 같은 카드 안에서 일관되게 읽히도록 long 전용 포맷 경로를 추가했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 00:17 (KST)
- AX Agent 루프도 `claw-code`의 post-autocompact turn tracking 흐름을 참고해 compact 직후 턴을 별도 상태로 추적하도록 보강했습니다. 이제 compact 직후 첫 턴은 저노이즈 compact pill 중심으로 보이고, 불필요한 `LLM 요청 중`류 Thinking 로그는 자동으로 줄입니다.
- 개발자용 전체 통계에는 compact 직후 자동 축약된 Thinking 로그 건수도 함께 표시해, compact 이후 루프가 실제로 얼마나 조용해졌는지 바로 확인할 수 있게 했습니다.
- compact 직후 첫 턴의 `process/build_run/test_loop/git/http` 계열 도구 결과는 head/tail 중심의 post-compaction 요약으로 더 짧게 전달해, 압축 직후 문맥이 다시 길어지는 현상을 줄였습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-04 23:47 (KST)
- AX Agent 컨텍스트 압축 경로에 `session memory compact`, `microcompact`, `collapse/snip` 단계를 추가해 오래된 요약·실행 로그·도구 결과를 LLM 요약 전에 더 세밀하게 줄이도록 보강했습니다.
- 현재 대화 기준 compact 누적 회수, 자동/수동 비중, 절감 토큰, session memory 적용 횟수, microcompact/snipped 메시지 수를 하단 컨텍스트 카드 hover에서 함께 확인할 수 있게 했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- compact 직후 첫 응답을 별도로 추적하는 post-compaction 흐름을 추가해, 압축 다음 턴의 응답 횟수와 사용 토큰을 현재 대화 기준으로 누적 집계하도록 보강했습니다.
- AX Agent 하단 컨텍스트 카드 hover에는 이제 `compact 후 첫 응답 대기 중`, `compact 이후 응답 수`, `compact 이후 사용 토큰`까지 함께 표시됩니다.
- 업데이트: 2026-04-05 00:01 (KST)
- 일별 사용 통계에 `service:model` 기준 토큰 집계를 추가해 일반 사용량과 compact 이후 사용량을 모델 단위로 나눠 기록하도록 보강했습니다.
- `microcompact_boundary`, `session_memory_compaction`, `collapsed_boundary` 메시지는 일반 AI 답변과 다른 전용 압축 카드로 렌더링하고, compact 관련 실행 로그는 얇은 compact pill로 분리해 노이즈를 줄였습니다.
- 업데이트: 2026-04-04 23:32 (KST)
- AX Agent 컨텍스트 압축 경로에 `microcompact` 성격의 선행 경량 압축 단계를 추가해, 오래된 실행 로그·도구 결과·긴 메시지를 먼저 경계 요약으로 줄인 뒤 LLM 요약 단계로 넘기도록 보강했습니다.
- 수동 `/compact`와 자동 압축이 같은 `ContextCondenser` 3단계 흐름(도구 결과 축약 → microcompact → 이전 대화 요약)을 사용하도록 정리해 긴 세션에서 불필요한 토큰 사용을 더 줄이기 시작했습니다.
- 검증 예정: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
- 업데이트: 2026-04-04 23:14 (KST)
- 트레이 아이콘 우클릭 메뉴 상단에 `AX Copilot v.0.7.3` 버전 헤더를 추가하고, 좌클릭 시에는 런처보다 AX Agent를 우선 열도록 정리했습니다. AI 기능이 꺼져 있을 때만 기존처럼 런처를 열도록 유지했습니다.
- Enter/전송 버튼/슬래시 명령의 DraftQueue kind 분류를 다시 정리해 일반 입력은 `message`, 슬래시 입력은 `command`, 조정 입력은 `steering`, 직접 실행 요청은 `direct`로 더 자연스럽게 나뉘도록 보강했습니다.
- 메인 설정 저장 완료 시 열려 있는 AX Agent 창이 테마/권한/데이터 활용/모델 라벨/하단 바를 즉시 다시 읽어오도록 fan-out 경로를 추가해 설정과 실제 실행 화면의 어긋남을 줄였습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
---
## 주요 기능 (프리픽스 치트시트)
@@ -45,6 +199,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
| 테마 커스터마이징 | ❌ | ✅ (7종 프리셋 + 완전 커스텀) |
| 설정 UI | ✅ | ✅ (7탭 전체 GUI 설정) |
---
## 설치 및 빌드
@@ -91,6 +246,7 @@ powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1 -SkipFullTes
| 스킬 파일 | `%APPDATA%\AxCommander\skills\*.skill.json` |
| 크래시 덤프 | `%APPDATA%\AxCommander\crashes\` |
---
## 사용법
@@ -133,6 +289,7 @@ powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1 -SkipFullTes
| `{month}` | 월 (2자리) | `03` |
| `{day}` | 일 (2자리) | `23` |
---
## 플러그인 개발
@@ -196,6 +353,7 @@ public class MyHandler : IActionHandler
}
```
---
## 테마
@@ -216,20 +374,644 @@ public class MyHandler : IActionHandler
설정 UI(`Ctrl+,` → 테마 탭)에서 클릭 한 번으로 즉시 미리보기 적용.
---
## 변경 이력
### v1.6.1 — 전체 점검 수정
### v0.7.3 — AX Agent 권한 코어 재구성 + 입력 계층 정리
업데이트: 2026-04-04 16:24 (KST)
| 분류 | 내용 |
|------|------|
| 빌드 오류 수정 | `using System.IO` 누락, `Key.Enter`/`Key.Return` 중복 switch 케이스, `EnumDisplayMonitors` 람다 타입 혼합, `icon.ico` 다이아몬드 픽셀 보석 아이콘으로 교체, nullable 역참조 경고 |
| 런타임 버그 수정 | JSON 스킬 경로 파싱(`field[0` 형식 오류 방지), 클립보드 서비스 스레드 안전성, 디바운스 타이머 원자적 교체, 설정 백업 실패 로깅 |
| 보안 수정 | JSON 스킬 `ActionUrl` 실행 전 `http`/`https` 스킴 검증 추가 |
| 데드 코드 제거 | `SystemCommandHandler` no-op `timer`/`alarm` 항목 제거 |
| 권한 코어 재구성 | `Default → AcceptEdits → Plan → BypassPermissions → DontAsk → Deny` 체계로 정규화하고, 기존 `Ask/Auto` 값은 호환 alias로 유지 |
| 규칙 해석 순서 정리 | 권한 판정을 `deny 규칙 → allow/override 규칙 → 글로벌 모드 → 기본 Ask` 순서로 재구성 |
| 도구 권한 클래스 분리 | `file_write/file_edit/file_manage``process/build_run/test_loop/snippet_runner/spawn_agent` 계열을 분리해 `AcceptEdits``Plan`의 실제 동작 차이를 반영 |
| AX Agent 권한 UI 반영 | 권한 팝업, 상단 배너, slash 명령 결과가 새 권한 모드 의미를 표시하도록 정리 |
| AX Agent 설정창 복구 | `AgentSettingsWindow`의 깨진 한글 문자열을 정리하고 운영 모드, 계획 모드, 추론 강도, 폴더 데이터 활용 라벨을 현재 AX 표현 체계로 복구 |
| 권한 용어 통일 | 권한 팝업과 인라인 설정에서 `계획 중심`, `완전 자동`, `질문 없이 진행` 등 한국어 표기를 일관되게 사용하도록 정리 |
| 권한 UI·로직 결합 정리 | `claw-code` 권한 팝업 흐름에 맞춰 코어 4개(`권한 요청/편집 자동 승인/계획 모드/권한 건너뛰기`)를 기본 선택 순서로 정렬하고, 토글 순환도 동일 축으로 단순화 |
| 슬래시 팔레트 단순화 | `/` 팝업의 기본 선택을 첫 항목으로 바꾸고, 즐겨찾기 버튼/배지 UI를 제거해 `아이콘+명령+설명` 중심의 단순 리스트 탐색으로 정리 |
| 컴포저 패널 축소 | 하단 인라인 설정을 `Fast/추론/계획/권한` 중심으로 축소하고, 스킬/브라우저/MCP 버튼은 숨겨 입력 중심 UX로 정리 |
| 모델/프리셋 바 컴팩트화 | 입력창 상단 바를 더 촘촘한 크기로 정리하고, 긴 모델명은 자동 말줄임 처리해 레이아웃이 흔들리지 않도록 보강 |
| 좌측 패널 타이포 정돈 | 사이드바 헤더/메뉴/대화 리스트의 폰트 크기와 여백을 줄여 밀도를 맞추고, 대화 카드 제목·시간·상태 배지의 크기를 통일해 시인성을 개선 |
| 메시지 버블 정돈 | 사용자/어시스턴트 버블의 여백·폰트·타임스탬프·액션 버튼 크기를 줄이고 좌우 마진을 대칭화해 대화 로그 가독성과 정렬감을 개선 |
| 에이전트 이벤트 표시방식 정리 | 실행 배너의 과도한 펼침 UI를 제거하고 요약 길이를 제한해 한눈에 상태를 읽도록 단순화, 권한/계획/실행 라벨을 한국어 기준으로 통일 |
| 도구 결과 카드 단순화 | 파일 경로 배너를 `파일명 + 디렉터리` 2단 구조로 정리하고, 빠른 작업 버튼을 아이콘 전용(프리뷰/열기/폴더/복사)으로 축소해 시각적 복잡도를 낮춤 |
| 작업 요약 팝업 정돈 | 팝업 헤더/필터 밀도를 낮추고 `전체·권한·대기·도구·서브·훅` 중심으로 재정렬해 스크롤 시 탐색 피로를 줄임 |
| 권한 이력 카드 재구성 | 권한 카드/이력을 `현재 모드·설명·기본/예외` + `시간·도구·결과` 구조로 단순화하고, 권한 액션 버튼도 최신 용어(`활용하지 않음/권한 요청/편집 자동 승인/계획 모드/권한 건너뛰기`)로 통일 |
| 최근 실행 카드 압축 | `최근 에이전트 실행` 카드에서 상세 로그/파일 나열과 분기 액션을 줄이고 `요약+카운트+타임라인` 중심으로 정리해 표시 밀도와 스캔 속도를 개선 |
| 작업 카드 버튼 스타일 통일 | 작업 요약/권한/훅/백그라운드 카드 버튼을 공통 생성 함수로 통일해 패딩·폰트·테두리·색상 톤을 일관화하고 카드 간 버튼 밀도 차이를 제거 |
| 카드 타이포 계층 정렬 | 작업/훅/백그라운드 카드의 제목·본문 글자 크기와 굵기를 통일하고 `PrimaryText/SecondaryText` 기반으로 대비를 맞춰 카드 간 시각 리듬을 정리 |
| 카드 아이콘 규칙 통일 | 작업 종류별 아이콘/색을 공통 매핑으로 통일하고, 작업·훅·백그라운드 카드 헤더에 아이콘을 배치해 상태 인지가 한눈에 되도록 정리 |
| 권한 팝업 선택 강조 개선 | 권한 모드 리스트에서 활성 항목에 배경/테두리/체크 아이콘을 적용하고 설명 줄간격·아이콘 정렬을 조정해 선택 상태와 읽기 흐름을 명확화 |
| 권한 예외/거부 영역 압축 | 권한 팝업의 `도구별 예외``최근 권한 거부` 블록을 아이콘 헤더+간결 라벨 체계로 정리하고 버튼 명칭을 권한 용어(`권한 요청/편집 자동 승인/활용하지 않음/예외 해제`)로 통일 |
| 권한 팝업 섹션 접힘/펼침 | 기본 화면은 `핵심 권한 모드`만 노출하고 `현재 권한 요약/도구별 예외/최근 권한 거부/고급 모드`는 접힘 섹션으로 전환해 codex/claude식 간결 흐름으로 정리 |
| 권한 팝업 섹션 상태 기억 | 접힘 섹션의 마지막 펼침 상태를 `settings.dat`에 저장해 팝업 재오픈 시 사용자 마지막 선택을 복원 |
| 슬래시 팔레트 그룹 상태 기억 | `/` 팔레트에 `명령/스킬` 접힘 헤더를 추가하고 마지막 펼침 상태를 저장해 재오픈 시 복원, Up/Down 이동도 펼쳐진 그룹 항목만 순회하도록 보정 |
| 슬래시 최근 사용 상단 고정 | `/` 팔레트의 `명령/스킬` 그룹 내부 항목을 최근 사용(MRU) 기준으로 상단 정렬하고 `최근` 배지를 표시, 선택 스크롤도 실제 렌더 항목 기준으로 정확히 보정 |
| 슬래시 핀 고정 결합 | `/` 팔레트 항목 우측에 핀 토글을 추가하고 정렬 우선순위를 `핀 > 최근 > 이름`으로 적용해 자주 쓰는 명령을 고정 유지 |
| AX Agent 기본 활성화 | `ai_enabled` 기본값을 활성화로 변경하고 설정 로드 정규화 단계에서 비활성 값이 들어와도 자동으로 활성화되도록 보정 |
| 업데이트 안내 메시지 제거 | 앱 시작 시 설정 마이그레이션 후 표시되던 `설정 업데이트` 메시지박스를 제거해 업데이트 설치 직후 팝업 노출을 중단 |
| 슬래시 핀/최근 개수 설정 연동 | AX Agent 설정창에서 `슬래시 핀 최대 개수`, `슬래시 최근 최대 개수`를 조절할 수 있도록 추가하고 런타임(MRU/핀 정렬) 제한에 즉시 반영 |
| 슬래시 개수 설정 QA 완료 | 핀/최근 상한 적용 후 `/` 팔레트 정렬과 실행 경로를 회귀 점검하고 `ChatWindowSlashPolicyTests` 39개를 통과하여 동작 안정성을 확인 |
| 슬래시 퀵관리/권한 키보드 보강 | `/` 팔레트 헤더에 `정리/전체 접기·펼치기`를 추가하고, 권한 팝업에 `Tab/Enter/Esc` 중심 키보드 조작(항목 선택·섹션 토글·닫기)을 보강 |
| 슬래시/권한 접근성 완성도 보강 | `/` 팔레트에 `모두 접힘` 안내와 섹션 상태 라벨을 추가하고, 권한 팝업 오픈 시 첫 포커스 이동/Enter·Space 선택/ESC 닫기를 보강해 키보드 사용성을 개선 |
| 설정 즉시 반영 가시성 보강 | AX Agent 설정의 슬래시 핀/최근 상한 항목에 `저장 후 즉시 반영` 안내를 추가해 조작 결과를 명확히 인지하도록 정리 |
| 회귀 패키지 통과 | 전체 테스트 436개 통과로 슬래시/권한/설정 저장 경로 변경 후 회귀 안정성 확보 |
| 슬래시 탐색 입력 확장 | `/` 팝업에서 휠/방향키 외에 `PageUp/PageDown/Home/End` 이동을 추가하고 고해상도 휠 델타를 단계 이동으로 보정해 스크롤 사용성을 개선 |
| 모델 빠른설정 단일 라인 강화 | 입력창 상단 모델 버튼을 AX Agent 내부 빠른 설정 토글로 전환하고, 모델/프리셋 버튼 높이와 패딩을 정돈해 Codex/Claude형 단일 라인 흐름에 맞춤 |
| UI 점검 체크리스트 추가 | 내부/사외 모드 포함 UI 회귀 점검 문서를 `docs/UI_UX_CHECKLIST.md`로 추가해 시나리오 기반 검증 기준을 명문화 |
| 권한 모드 표면 통일 | 권한 표시 명칭을 `활용하지 않음/소극 활용/적극 활용/계획 중심/완전 자동/질문 없이 진행`으로 통일하고 팝업 선택 순서를 동일 체계로 재정렬 |
| 권한 기본 동작/순환 보강 | Chat 탭 기본 권한을 `활용하지 않음`으로 적용하고, `/sandbox-toggle` 및 AX Agent 설정 권한 순환을 같은 순서(`활용하지 않음→소극→적극→계획→완전 자동→질문 없이 진행`)로 맞춤 |
| 운영 모드 회귀 점검 강화 | `OperationModePolicyTests`, `OperationModeReadinessTests`, `LlmOperationModeTests` 필터 테스트(18건)를 통과해 internal/external 차단·허용 경로를 재검증 |
| 권한 팝업 밀도 재정돈 | 권한 섹션 헤더/카드/행의 패딩·폰트·줄간격을 조정해 과밀 영역을 완화하고 Codex/Claude형 스캔 속도에 맞춤 |
| 좌측/컴포저 라벨 정리 | 좌측 기본 카테고리 라벨을 `주제 선택/작업 선택`으로 통일하고, 입력 상단 바 패딩·간격을 미세 조정해 단일 라인 정돈 강화 |
| 체크리스트 실행 결과 기록 | `docs/UI_UX_CHECKLIST.md`에 2026-04-04 12:22 기준 점검 결과(운영모드 필터 18건 + 전체 436건 통과)를 기록 |
| 권한 상태 표시 간소화 | 권한 상태 텍스트(`/permissions`, `/allowed-tools`)를 운영 모드 포함 축약형으로 정리하고 권한 버튼 툴팁에 동일 정보를 반영 |
| 설정창 외부 진입 안정화 | AX Agent 설정창 오픈 시 리소스 병합 실패를 방어하고, 외부 진입 경로를 Dispatcher 기반으로 안정화 |
| 모델 라벨 반응형 보강 | 컴포저 상단 모델 라벨에 말줄임(`MaxWidth` + `CharacterEllipsis`)을 적용해 좁은 폭에서 레이아웃 깨짐을 방지 |
| 슬래시 탐색 순서 정합화 | `/` 팝업의 방향키/휠/Home/End 이동 기준을 렌더 순서(핀/최근 정렬 적용 순서)로 통일해 스크롤·선택 체감 불일치를 해소 |
| 권한 요청창 한국어/인코딩 복구 | `PermissionRequestWindow`의 깨진 문자열을 복구하고 권한 선택/위험도/미리보기 문구를 한국어 기준으로 정리 |
| slash 명령 카탈로그 분리 | `ChatWindow` 내부 대형 slash 사전을 `SlashCommandCatalog`로 분리해 입력 계층 결합도를 낮추고 유지보수 범위를 축소 |
| slash 조회 API 전환 | 내장 slash 매칭/조회 경로를 `SlashCommandCatalog.MatchBuiltinCommands`/`TryGetEntry`로 통일 |
| 권한 표시 카탈로그 분리 | 권한 모드 라벨/설명/아이콘/색을 `PermissionModePresentationCatalog`로 분리해 팝업 표면 기준을 단일화 |
| 탭별 설정 해석기 도입 | `AgentTabSettingsResolver`를 추가해 Cowork/Code 분기(검증 활성/Code 전용 도구 비활성)를 단일 경로로 정리 |
| L4 통합 회귀 보강 | `PermissionModeCatalogTests`/`PermissionModePresentationCatalogTests`/`SlashCommandCatalogTests`를 추가하고 deny 우선 규칙을 `OperationModePolicyTests`에 반영해 권한·슬래시 회귀망을 강화 |
| 권한 팝업 핵심 4모드 정렬 | 권한 팝업을 `소극 활용/적극 활용/계획 중심/완전 자동` 중심으로 단순화하고 `활용하지 않음/질문 없이 진행``고급 모드` 접힘 섹션으로 분리 |
| slash 스크롤 체감 개선 | 휠/방향키 이동 시 전체 재렌더링을 제거하고 선택 하이라이트만 갱신하도록 바꿔 `/` 팝업 스크롤 반응성과 안정성을 개선 |
| slash 팝업 밀도 압축 2단계 | `/` 팝업 폭/높이/패딩과 항목 폰트/행 높이를 축소해 Codex형 컴팩트 밀도와 스캔 속도를 강화 |
| 권한 팝업 밀도 압축 2단계 | 권한 팝업의 섹션/요약/예외/거부 카드와 권한 행 타이포를 압축해 슬래시 팝업과 동일한 컴팩트 리듬으로 정렬 |
| 입력 하단/모델 선택 컴팩트 정렬 | 입력 박스·모델 선택 버튼·인라인 설정 패널·전송 버튼 크기를 축소해 Codex형 컴포저 밀도로 정렬 |
| 로직 안정화 회귀 보강 | `ContextCondenserTests``LlmRuntimeOverrideTests`를 보강해 compact 실동작과 vLLM 암호화 API키/SSL 우회 해석 규칙을 회귀 검증 |
| 권한 패턴 구문 호환성 보강 | 권한 규칙 파서를 `tool@pattern``tool|pattern`, `tool(pattern)`도 해석하도록 확장하고 deny→allow 우선순위 회귀를 보강 |
| 권한 모드 별칭 정합 보강 | `/permissions`, `/allowed-tools`에서 `none/passive/active/planning/fullauto/silent` 별칭을 지원하고 카탈로그 정규화와 일치시킴 |
| 권한 기본값 정책 정렬 | 신규/초기 상태의 기본 권한을 `활용하지 않음(Deny)`으로 변경하고 AppState 기본/요약 상태와 slash 사용 가이드를 동일 체계로 정렬 |
| 탭 전환 빈 대화 누적 방지 | 탭 전환 중 생성되는 무의미한 빈 대화를 저장 대상에서 제외하고, 목록에서도 빈 노이즈 항목을 숨겨 이력 누적 체감 버그를 완화 |
| 권한 팝업 즉시반영 정렬 | 권한 팝업에 `활용하지 않음`을 핵심 영역 맨 위에 배치하고, 대화 권한이 없을 때도 탭 기본값(Deny/DefaultAgentPermission)을 즉시 반영하도록 로딩 경로를 보강 |
| 권한 색상 체계 통일 | 권한 요약 카드/상단 배너에서 모드별 색상(Deny=녹색, Passive=파랑, Active=녹색, Plan=보라, FullAuto=주황, Silent=빨강)을 팝업 체계와 일치시킴 |
| 슬래시 네비게이션 입력 보강 | InputBox 포커스 상태에서도 방향키/Page/Home/End/Tab이 슬래시 목록 탐색에 즉시 반영되도록 키 처리 경로를 통합하고, 모든 그룹 접힘 상태에서 휠 스크롤 fallback을 추가 |
| 사내/사외 모드 회귀 보강 | operationMode 전환 직후 WebSearch 동작 반영과 URL 판별 경계(HTTP/파일/mailto) 테스트를 추가해 내부 차단 정책의 즉시성/정확성을 강화 |
| AX Agent 설정창 오픈 안정화 | `ToggleSwitch`를 전역 리소스로 승격해 AX Agent 창 초기화 시 리소스 누락 예외를 방지하고, AX Agent 설정창에는 테마 사전만 안전 주입하도록 오픈 경로를 보강 |
| 권한 순환/슬래시 스크롤 체감 보강 | `claw-code` 기준으로 권한 순환에서 고위험 `질문 없이 진행`을 기본 순환에서 분리하고, `/` 팝업 휠 스크롤 시 뷰포트 기준 선택 동기화를 추가해 스크롤 사용성을 개선 |
| 권한 팝업 상세영역 단순화 | 권한 팝업의 `요약/예외/최근거부`를 개별 섹션에서 단일 `상세 정보` 섹션으로 통합해 기본 화면 밀도를 낮추고 핵심 모드 선택 흐름을 우선화 |
| 권한 팝업 밀도/정렬 미세조정 | 권한 행의 패딩·폰트·아이콘·체크마크 간격을 컴팩트하게 재정렬하고 요약 카드 타이포를 축소해 `claw-code` 스타일의 빠른 스캔 밀도를 강화 |
| Slash palette 상태 분리 시작 | `ChatWindow`에 몰려 있던 slash 상태를 `SlashPaletteState`로 분리해 이후 Codex/Claude형 composer 개편 기반 마련 |
| 런처 이미지 미리보기 추가 | `#` 클립보드 이미지 항목에서 `Shift+Enter`로 전용 미리보기 창을 열고, 줌·원본 해상도 확인·PNG/JPEG/BMP 저장·클립보드 복사를 지원 |
| AX Agent 모델 선택 단순화 | AX Agent 서비스 설정에서 내부 서비스 모델 선택을 등록 모델 칩 중심으로 고정하고, 채팅 오버레이/보조 설정창의 숨은 모델 텍스트 입력 의존을 제거 |
| vLLM SSL 위치 정리 | 전역 서비스 설정/채팅 오버레이에서 vLLM SSL 우회 노출을 걷어내고, 모델 등록/편집 다이얼로그에서만 모델별로 설정하도록 정리 |
| 검증 | `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0 |
| 검증 | `dotnet build` 경고 0 / 오류 0, `dotnet test` 436 passed / 0 failed |
자세한 내용은 [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)의 "v1.6 3차 전체 점검 수정" 섹션을 참고하세요.
자세한 내용은 [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)의 `v0.7.3` 항목을 참고하세요.
---
## 최근 추가 작업
- 업데이트: 2026-04-04 23:57 (KST)
- Git 브랜치 패널 상단에 검색 입력을 추가해 많은 브랜치도 바로 필터링하고 전환할 수 있게 했습니다.
- 브랜치 전환 섹션은 검색 중 표시 수 / 전체 수를 함께 보여주도록 보강했습니다.
- 업데이트: 2026-04-04 23:49 (KST)
- AX Agent 서비스/권한 탭의 주요 선택 항목을 기본 ComboBox 대신 카드형 라디오 선택으로 바꿔 같은 선택 언어로 통일했습니다.
- 워크스페이스 패널은 최근/전체 섹션 개수와 현재 선택 강조를 추가해 현재 위치를 더 바로 읽을 수 있게 했습니다.
- 업데이트: 2026-04-04 23:41 (KST)
- Chat/Cowork/Code 빈 화면의 세로 기준점을 통일하고, 설명 블록과 프리셋 카드 영역 시작 위치가 같은 리듬으로 보이도록 정리했습니다.
- 프리셋 카드/기타/추가 카드의 외곽 마진과 내부 패딩을 맞춰 중앙 정렬 상태에서도 행 간격이 더 균일하게 보이도록 보정했습니다.
- 업데이트: 2026-04-04 23:33 (KST)
- AX Agent 공통 설정에 표현 수준을 직접 조정하는 행을 추가하고, 저장된 표현 수준이 설정 창에서 그대로 유지되도록 초기화 경로를 바로잡았습니다.
- Code 탭 하단 바는 로컬 / 브랜치 / 워크트리 흐름을 우선으로 재정리하고, Code 전용 파일/로그 버튼은 제거해 더 단순한 작업 전환 구조로 맞췄습니다.
- 업데이트: 2026-04-04 23:20 (KST)
- AX Agent 설정의 고급/서비스/권한 행 간격을 더 넓히고, 서비스 탭과 권한 탭의 주요 설정 행을 같은
ow + toggle 시각 언어로 통일했습니다.
- 워크스페이스 선택 팝업은 제목 + 검색 + 내부 스크롤 구조를 가진 검색 가능한 프로젝트 선택 패널로 다듬었습니다.
- 업데이트: 2026-04-04 23:08 (KST)
- 설정 서브탭 외곽선을 제거하고 배경 강조 중심의 더 얇은 탭 정렬로 정리했습니다.
- Cowork/Code 상단 필터와 좌측 메뉴를 워크스페이스 목록 기반으로 전환했습니다.
- 사이드바 검색을 평시 액션 행 + 인라인 확장 검색 흐름으로 바꾸고, Ctrl+K 단축키를 연결했습니다.
- 좌측 대화 목록을 오늘 / 어제 / 이전 날짜 그룹으로 정리했습니다.
- AX Agent 고급 설정의 켜기/끄기 버튼을 단일 토글 스위치로 교체했습니다.
- 좌측 상단 액션 줄은 새 대화 / 검색의 같은 리스트형 행으로 통일하고 예약됨/Dispatch 성격의 항목은 노출하지 않도록 정리했습니다.
- 워크스페이스 선택 팝업은 검색 가능한 패널형으로 재구성했습니다.
- Code 탭 하단 바는 언어 선택 대신 로컬 / 워크트리 중심 흐름으로 바꾸고, Git 저장소에서는 `git worktree add`, 일반 폴더에서는 복사본 워크스페이스 전환을 지원하도록 연결했습니다.
- 메인 설정에 남아 있던 `AI 기능 활성화`, `운영 모드`, `자동 모델 라우팅` 성격의 AX Agent 관련 항목은 AX Agent 탭 중심으로 재배치하고, 일반/기능 탭의 중복 노출을 숨겨 설정 통합 흐름을 정리했습니다.
- AX Agent 서브탭은 `공통 / 서비스 / 권한 / 고급` 4개 중심으로 단순화하고, 공통 패널 내부를 기본 상태/서비스/공통 런타임 묶음으로 나눠 같은 시각 언어와 간격으로 다시 정리했습니다.
- 기능 탭의 과한 AI 표현은 `텍스트/파일`, `선택 텍스트 명령`, `코드 리뷰` 등 사용자 기준 문구로 낮췄습니다.
- 워크스페이스 선택 패널은 `최근 워크스페이스 / 전체 워크스페이스` 섹션형으로 재구성했고, Code 하단 브랜치 선택 패널도 worktree 메뉴와 같은 설명형 row 언어로 통일했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-04 23:59 (KST)
- AX Agent 공통 탭의 운영 모드, 최대 컨텍스트 토큰, 대화 보관 기간 선택을 카드형/칩형 선택으로 교체해 공통/서비스/권한/고급 전 영역의 선택 언어를 더 강하게 통일했습니다.
- AX Agent 고급 탭의 실행 이력 상세도도 간략/상세/디버그 카드형 선택으로 전환해 남아 있던 기본 WPF ComboBox 흔적을 줄였습니다.
- Git 브랜치 패널에는 최근 전환 브랜치 섹션을 추가해 자주 오가는 브랜치를 검색 전에 바로 전환할 수 있게 보강했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 00:10 (KST)
- Enter 입력을 기본 DraftQueue 경로로 승격하고, Ctrl+Enter/전송 버튼/초기 전송/재실행/후속 작업도 같은 큐 흐름을 타도록 정리했습니다.
- DraftQueue는 메시지/명령/직접 실행/후속 작업/조정 kind를 보존하도록 확장했고, Code 탭 작업 위치 패널은 워크트리/복사본 전환 흐름 중심으로 재구성했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 00:28 (KST)
- DraftQueue 카드를 실행 대기/최근 결과 섹션형으로 재구성하고, 상태·우선순위·종류 배지와 아이콘을 추가해 큐 상태를 더 빠르게 파악할 수 있게 했습니다.
- 워크스페이스/브랜치/워크트리 패널은 같은 Popup row 규칙으로 맞추고, composer 최대 폭 확장과 하단 칩형 상태줄 정리로 Code/Cowork 하단 리듬을 더 가볍게 다듬었습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 00:38 (KST)
- DraftQueue 패널 상단에 실행 중 / 다음 / 보류 / 완료 / 실패 요약 pill을 추가하고, composer 상단의 모델/컨텍스트/프리셋 줄도 더 낮고 평평한 밀도로 정리했습니다.
- 브랜치/워크트리 패널에는 공통 요약 strip을 추가해 현재 상태를 같은 시각 언어로 보여주도록 맞췄고, 저장소 루트 `.gitignore`에는 빌드 산출물·IDE 파일·OS 잡파일·비밀정보 패턴을 추가했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 07:17 (KST)
- 별도 `AX Agent 설정` 창과 AX Agent 내부 설정 오버레이에서 `AX Agent 사용` 항목을 숨겨, 작업 중 자주 쓰지 않는 전역 AI 사용 토글이 설정 메뉴를 차지하지 않도록 정리했습니다.
- 별도 `AX Agent 설정` 창에서는 `표현 수준` 선택 카드도 함께 숨겨 기본 탭 상단을 더 단순하게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 07:24 (KST)
- `설정 > AX Agent`에만 남아 있던 스킬 목록을 별도 `AX Agent 설정` 창 안 `스킬/차단` 탭으로 복구해, 현재 로드된 슬래시 스킬을 내장/고급 그룹으로 다시 확인할 수 있게 했습니다.
- 별도 `AX Agent 설정` 창은 저장 시 스킬 폴더 기준으로 다시 로드해 목록이 바로 갱신되도록 연결했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-04 23:23 (KST)
- AX Agent는 이제 설정 서비스 변경 이벤트를 직접 구독해 메인 설정, AX Agent 설정, 저장 경로와 관계없이 테마/권한/데이터 활용/모델 라벨/composer/대기열 UI를 즉시 다시 읽어오도록 fan-out 경로를 통합했습니다.
- AX Agent 설정 저장 경로에서 표현 수준을 `rich`로 고정 덮어쓰던 처리도 제거해, 사용자가 선택한 `풍부하게 / 적절하게 / 간단하게` 값이 다른 설정 저장 흐름에서도 유지되도록 보정했습니다.
- DraftQueue 패널은 실행 중 / 다음 작업 / 보류 / 완료 / 실패를 개별 섹션으로 나눠 현재 실행 상태와 최근 결과를 더 빠르게 파악할 수 있도록 재구성했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-04 23:28 (KST)
- AX Agent 하단 컨텍스트 카드 툴팁에 최근 압축 이력을 추가해 마지막 자동/수동 compact 시각, 압축 전후 토큰, 실제 절감량을 다시 확인할 수 있게 했습니다.
- 수동 `/compact` 실행과 전송 전 자동 컨텍스트 압축 모두 같은 compaction 통계 경로를 타도록 맞춰, compact 결과를 일회성 토스트가 아니라 이후 UI에서도 계속 확인할 수 있도록 보강했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 07:39 (KST)
- `Agent Compare`의 트레이 메뉴 경로와 현재 구현을 대조해, 우클릭 메뉴가 열릴 때마다 `Show + UpdateLayout`로 창 크기를 다시 확정하던 흐름을 제거하고 메뉴 크기 측정값을 캐시하도록 바꿨습니다.
- 앱 유휴 시점에 트레이 메뉴를 미리 측정해 첫 우클릭에서 초기 레이아웃 비용이 몰리지 않도록 조정했고, AI 항목 가시성처럼 열기 직전 바뀌는 항목만 크기 캐시를 다시 계산하도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 07:45 (KST)
- AX Agent 내부 설정 오버레이의 `뒤로가기` 버튼을 오른쪽 본문 헤더에서 제거하고, 왼쪽 설정 제목 영역에 화살표와 함께 합쳐 배치해 설정 패널 접기/닫기와 혼동되지 않도록 정리했습니다.
- 본문 스크롤 영역은 헤더 빈 줄 없이 바로 시작하도록 올려, 설정 화면 진입 시 첫 섹션이 더 자연스럽게 이어지도록 조정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 07:49 (KST)
- AX Agent 상단 좌측의 사이드바 접기 버튼을 기존 큰 아이콘형 고스트 버튼에서, Claude 계열처럼 작은 라운드 사각 안에 3줄 메뉴가 들어간 얇은 토글 버튼으로 바꿨습니다.
- 열림/닫힘 상태에서 글리프를 바꾸던 예전 처리도 제거해, 상단 바가 덜 요란하고 더 안정적인 작업형 헤더로 보이도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 07:54 (KST)
- Chat 빈 화면의 상단 아이콘이 탭 메뉴 바와 가까워 보이던 배치를 내려, 빈 상태 헤더가 상단 메뉴와 겹쳐 보이지 않도록 여백을 조정했습니다.
- Chat 탭에서는 하단의 컨텍스트/압축 카드가 보이지 않도록 분기해, 토큰 압축 UI는 Cowork/Code에서만 유지되게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:00 (KST)
- 런처 하단에 남아 있던 색인 상태 문구를 점검한 결과, 인덱스 상태 표시와 토스트 오버레이가 같은 타이머를 공유해 자동 숨김이 꼬일 수 있는 구조를 확인했습니다.
- [LauncherWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/LauncherWindow.xaml.cs) 에서 토스트 타이머와 인덱스 상태 타이머를 분리하고, 인덱스 재구축 시작/완료 문구를 공통 `ShowIndexStatus(...)` 경로로 묶어 일정 시간 뒤 확실히 사라지도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:06 (KST)
- AX Agent 내부 설정 오버레이에서 `Fast`, `의사결정 수준`, `실행 전 계획`, `권한 모드`, `기본 출력 형식`, `테마 스타일`, `운영 모드`, `폴더 데이터 활용`처럼 글자가 순환하던 버튼을 커스텀 콤보박스로 교체했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml)에 오버레이 전용 `OverlayComboBox` 스타일과 각 항목용 콤보를 넣고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서는 선택 변경 시 기존 저장 흐름을 그대로 타도록 전용 핸들러를 연결했습니다.
- 운영 모드처럼 보호가 필요한 항목은 콤보박스로 바뀐 뒤에도 기존 비밀번호 확인을 유지했고, 나머지 항목은 선택 즉시 AX Agent 내부 설정에 반영되도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:15 (KST)
- 별도 `AX Agent 설정` 화면에서 `AX Agent 사용`, `표현 수준` 항목은 다시 보이지 않도록 정리했고, 내부 저장값은 `AI 사용 = 활성`, `표현 수준 = 풍부하게`로 고정되게 보정했습니다.
- [AgentSettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/AgentSettingsWindow.xaml), [AgentSettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/AgentSettingsWindow.xaml.cs) 에서 해당 행을 숨기고 저장 시 강제로 켜진 상태와 `rich` 값을 유지하도록 맞췄습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:14 (KST)
- 배포용 [build.bat](/E:/AX%20Copilot%20-%20Codex/build.bat)을 루트 절대 경로 기준으로 다시 작성해, 작업 폴더에 따라 `dist`, `payload.zip`, 인스톨러 복사 경로가 꼬이던 문제를 막았습니다.
- 스크립트는 이제 `main app publish -> optional obfuscation check -> AxKeyEncryptor publish -> payload.zip 생성 -> installer build -> dist 정리` 순서로 고정 동작하고, 외부 난독화 도구가 없으면 `보호 미적용` 경고를 명확히 출력합니다.
- 현재 레포에는 실제 난독화 도구 설정이 없어서, 배포본 보호 수준은 `PDB/XML/debug metadata 제거`까지이며 진짜 디컴파일 방지는 아직 미구성 상태임을 확인했습니다.
- 검증: `cmd /c build.bat` 실행 기준 메인 앱 publish, 인스톨러 빌드, `dist\AxCopilot_Setup.exe` 복사까지 정상 완료
- 업데이트: 2026-04-05 07:59 (KST)
- `설정 > AX Agent > 공통`에서 계속 남아 있던 `AX Agent 사용`, `표현 수준` 행을 실제 메인 설정창 기준으로 다시 숨겼고, 표현 수준 값은 런타임 정규화와 설정 초기화 양쪽에서 `풍부하게(rich)`로 고정되도록 보정했습니다.
- `설정 > 기능 > 응답 설정`을 포함한 `?` 도움말 툴팁은 라이트 테마에서도 글자가 사라지지 않도록 `HelpTooltipStyle` 배경을 고대비 다크 톤으로 바꾸고 텍스트 전경색을 흰색으로 강제했습니다.
- `Agent Compare`와 비교해 빠져 있던 런처 `마지막 위치 기억` 설정을 복구하고, AX Commander가 숨겨질 때 마지막 좌표를 저장한 뒤 다음 표시 때 같은 위치를 복원하도록 연결했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
- 업데이트: 2026-04-05 08:02 (KST)
- AX Agent가 열리자마자 죽던 원인을 앱 로그로 확인했고, `ChatWindow``HelpTooltipStyle`을 찾지 못해 `XamlParseException`이 발생하고 있었습니다.
- [App.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/App.xaml)에 `HelpTooltipStyle`을 전역 리소스로 올려, AX Agent/설정/내부 오버레이가 모두 같은 도움말 툴팁 스타일을 공통으로 찾도록 수정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:08 (KST)
- `설정 > AX Agent`에 있던 도구/스킬 설명창이 내부 AX Agent 설정 오버레이에는 빠져 있던 상태를 보완해, [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml)의 `도구`, `스킬/차단` 탭 상단에 설명 블록을 다시 넣었습니다.
- `도구` 탭에는 훅 동작 흐름과 활용 예시, `스킬/차단` 탭에는 스킬 파일 구조, 기본 폴더 경로, MCP/폴백 모델/드래그 드롭 관리 범위를 안내하는 설명을 복구했고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 탭 전환 시 해당 설명창만 보이도록 연결했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 코워크 좌측 패널 상단 필터 메뉴는 동작이 이미 `작업 유형` 기준이었지만, 메뉴 라벨만 예전 `워크스페이스`로 남아 있던 부분을 `작업 유형`으로 수정했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 `SidebarCoworkMenu` 라벨을 코워크 기준에 맞게 정리했고, Code 탭의 `워크스페이스` 라벨은 그대로 유지했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:18 (KST)
- AX Agent 입력창에서 텍스트를 치면 입력 영역이 비정상적으로 길어지고, 입력 중 화면이 자주 번쩍이던 문제를 함께 수정했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 입력 행 `Grid.RowDefinition``Auto`로 바꾸고 `InputBox`를 상단 정렬로 고정해, Code 탭에서 입력창이 남는 공간을 끌어먹으며 비대해지던 레이아웃 문제를 막았습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에는 `_inputUiRefreshTimer`를 추가해, 타이핑 중 매 글자마다 실행되던 `RefreshContextUsageVisual()``RefreshDraftQueueUi()`를 짧게 디바운스해서 입력 중 깜빡임과 과한 리렌더를 줄였습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:24 (KST)
- 모델 선택 팝업 하단에 중복으로 보이던 보조 UI도 정리했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 모델 리스트 아래 반복되던 `InlineModelChipPanel`은 숨기고, 맨 아래 `계획`, `권한` 빠른 버튼은 `Visibility="Collapsed"`로 내려 팝업 안 중복 제어를 제거했습니다.
- 안내 문구도 `서비스, 모델, 추론을 여기서 바로 바꿉니다`로 맞춰, 이 팝업이 실제로 제공하는 항목만 설명하도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:28 (KST)
- AX Agent 채팅 초기 프리셋 카드 영역의 세로 스크롤바도 항상 고정처럼 보이던 부분을 조정했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에 `TopicPresetScrollViewer` 이름을 부여하고 기본 상태를 `VerticalScrollBarVisibility="Disabled"`로 바꿔, 정상 크기에서는 스크롤바 여백이 먼저 보이지 않도록 했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에 `UpdateTopicPresetScrollMode()`를 추가해 프리셋 버튼 재구성 후와 창 크기 변경 시 `ExtentHeight`/`ViewportHeight`를 비교하고, 실제로 넘칠 때만 세로 스크롤을 `Auto`로 켜도록 했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:31 (KST)
- AX Agent 입력창 위 `후속 요청` 카드에는 타이핑 중인 현재 입력을 미리 보여주지 않도록 정리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `RefreshDraftQueueUi()`에서 `DraftPreviewCard`를 상시 접고, 후속 요청은 실시간 입력 미리보기가 아니라 엔터로 실제 대기열에 들어간 뒤 아래 대기열 목록에만 반영되도록 바꿨습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:34 (KST)
- AX Agent 빈 상태 프리셋 카드의 하단 글자가 잘리던 레이아웃도 보정했고, Code 탭에서는 프리셋 영역이 보이지 않도록 정리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `BuildTopicButtons()`에서 프리셋/기타/추가 카드 높이를 `116`으로 키우고 설명 `MaxHeight`도 늘려 카드 하단 텍스트가 잘리지 않게 했습니다.
- 같은 메서드에서 Code 탭일 때는 `TopicButtonPanel``TopicPresetScrollViewer`를 바로 숨기고, 빈 상태 문구도 `코드 작업을 입력하세요` 기준으로 바꿔 프리셋 기능이 안 보이도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:37 (KST)
- AX Agent 내부 설정 오버레이의 콤보박스도 기본 WPF 형태 대신, `트레이 아이콘 → 설정` 쪽 커스텀 콤보 스타일을 기준으로 맞췄습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에 `OverlayComboBoxToggle`, `OverlayComboBox`, `OverlayComboBoxItem` 리소스를 추가하고, 서비스/모델 포함 오버레이 콤보들이 같은 토글 버튼형 드롭다운과 항목 호버 스타일을 쓰도록 바꿨습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:40 (KST)
- AX Agent 내부 설정 오버레이에도 메인 설정처럼 `?` 도움말 배지를 복구해, 항목별 상세 설명을 마우스 오버로 바로 볼 수 있게 했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에 `OverlayHelpBadge` 스타일을 추가하고, `서비스`, `모델`, `기본 서버 주소`, `API 키`, `테마 스타일`, `테마 모드`, `문서 형태`, `디자인 스타일`, `운영 모드`, `폴더 데이터 활용`, `압축 시작 한도`, `최대 컨텍스트 토큰`, `오류 재시도`, `최대 Agent Pass`에 각각 개별 툴팁 설명을 연결했습니다.
- 같은 파일의 고급/개발자 영역에도 `자동 대화 압축`, `확장 스킬 사용`, `실행 전후 자동 확장`, `입력 보정 반영`, `권한 변경 반영`, `Cowork 결과 검토`, `Code 결과 검토`, `도구 병렬 실행`, `프로젝트 규칙 자동 반영`, `에이전트 메모리 사용`, `Plan/Worktree/Team/Cron 도구` 항목별 `?` 설명을 추가해 AX Agent 내부 설정만 보고도 역할을 바로 이해할 수 있게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:43 (KST)
- AX Agent 내부 설정 오버레이의 탭 구조를 예전 버전 기준으로 다시 확장했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 좌측 네비를 `공통 / 채팅 / 코워크/코드 / 코워크 / 코드 / 개발자 / 도구 / 스킬/차단`으로 복구하고, `스킬/차단` 탭 안에 `차단 경로 패턴`, `차단 확장자`, `스킬 설정`, `로드된 스킬`, `폴백 모델`, `MCP 서버`, `등록된 도구/커넥터` 패널을 다시 배치했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에는 오버레이 전용 `RefreshOverlayEtcPanels()`, 차단 목록 렌더링, 스킬 목록 렌더링, 폴백 모델 요약, MCP 서버 카드, 도구 레지스트리 목록 빌더를 추가하고, `코워크/코드` 공통 탭 분기와 `슬래시 팝업 표시 개수`, 드래그앤드롭 AI 액션 저장 경로도 연결했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:51 (KST)
- AX Agent 창 우측 상단의 최소화/최대화/닫기 버튼도 사용자 가이드 상단바 쪽과 비슷한 밀도로 다시 정리했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에 `TitleBarActionButton`, `TitleBarCloseButton` 스타일을 추가해 버튼 크기를 `40x40`으로 키우고, 간격을 넓히고, 마우스 오버 시 살짝 커지는 스케일 애니메이션과 배경 피드백이 보이도록 조정했습니다.
- 같은 위치에서 AX Agent 상단 창 버튼 3개가 일반 `GhostBtn` 대신 새 타이틀바 전용 스타일을 쓰도록 바꿔, 아이콘 크기와 클릭 영역이 더 명확하게 보이도록 맞췄습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 08:54 (KST)
- AX Agent의 Chat/Cowork/Code 탭이 서로 다른 폭으로 보이던 채팅 본문/입력 영역 레이아웃도 공통 폭 기준으로 다시 맞췄습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 빈 상태 영역과 하단 컴포저 래퍼를 `HorizontalAlignment="Stretch"` 기준으로 바꾸고 `MaxWidth``1280`으로 통일해, 탭별 내용물 길이에 따라 입력창이 좁아지지 않게 조정했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `GetMessageMaxWidth()`도 새 `ComposerShell` 폭을 우선 기준으로 쓰도록 바꿔, Chat/Cowork/Code 메시지 카드와 스트리밍 컨테이너가 같은 레이아웃 폭 안에서 렌더되도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 09:02 (KST)
- AX Agent가 시작 직후 `System.Windows.FrameworkElement.Style` 예외로 죽던 문제도 함께 수정했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 `OverlayComboBox` 스타일이 뒤에서 선언된 `OverlayComboBoxItem``StaticResource`로 먼저 참조하고 있어 런타임에 `MS.Internal.NamedObject` 캐스팅 예외가 발생했는데, 이를 `DynamicResource`로 바꿔 창 초기화가 정상 진행되도록 복구했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 09:06 (KST)
- `build.bat` 실행 시 AX Copilot이 켜져 있으면 애매하게 종료되거나 publish가 꼬이던 흐름도 정리했습니다.
- [build.bat](/E:/AX%20Copilot%20-%20Codex/build.bat) 의 프로세스 정리 루틴을 `taskkill` 1회 호출에서 `정상 종료 시도 → taskkill /T /F → 실제 종료 확인` 순서로 바꾸고, 종료되지 않으면 빌드를 즉시 실패시키도록 수정했습니다.
- 특히 현재 배치 권한보다 높은 권한으로 AX Copilot이 떠 있는 경우에는 무리하게 진행하지 않고 `Access may be denied or the app may be running with higher privileges.` 메시지로 원인을 바로 알 수 있게 했습니다.
- 검증: `cmd /c build.bat` 실행 시, 실행 중인 AX Copilot 프로세스가 권한 문제로 종료되지 않을 때 즉시 실패 처리 확인
- 업데이트: 2026-04-05 09:13 (KST)
- AX Agent 내부 설정의 `도구` / `스킬·차단` 탭도 메인 설정에 남아 있던 세부 항목을 더 흡수하고, 목록이 너무 길던 부분을 접기/펼치기 구조로 다시 정리했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 `도구` 탭에 훅 실행 타임아웃, 등록된 훅 목록, 훅 추가/편집/삭제 UI를 AX Agent 내부 설정으로 옮겼고, `스킬/차단` 탭에는 스킬 폴더 선택/열기, 슬래시 핀 최대 개수, 슬래시 최근 최대 개수까지 같이 옮겼습니다.
- 스킬 목록은 `/스킬명` 형식으로 표기를 바꾸고 설명은 기존 한국어 설명을 유지했으며, `직접 호출 / 자동·조건부 / 현재 사용 불가` 섹션으로 접기/펼치기 형태로 나눴습니다. 도구 목록도 카테고리별 접기/펼치기로 바꿔 한 번에 너무 길게 보이지 않게 정리했습니다.
- 남아 있던 AX Agent 전용 잔여 설정 중 `PDF 내보내기 기본 경로`, `이미지 입력 활성화`, `코드 리뷰 도구 활성화`도 내부 설정의 `채팅`/`코드` 탭에 재배치해 메인 설정 의존을 줄였습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 09:27 (KST)
- AX Agent 내부 설정의 `개발자` 탭에도 메인 설정에 남아 있던 잔여 운영 항목을 더 흡수해, 실행 이력과 감사/병렬 관련 설정을 오버레이 안에서 바로 조정할 수 있게 했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에 `호출 간 딜레이(초)`, `서브에이전트 최대 수`, `실행 이력 상세도`, `계획 diff 심각도(개수/비율)`, `워크플로우 시각화`, `전체 호출·토큰 합계 표시`, `감사 로그`, `감사 로그 폴더 열기` 행을 추가해 `개발자` 탭 안에서 한 번에 볼 수 있도록 재배치했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 해당 값들의 로드/저장/즉시 반영 경로를 AX Agent 오버레이 저장 흐름에 연결하고, `실행 이력 상세도` 콤보, 숫자 입력 검증, 감사 로그 폴더 열기 동작도 함께 붙였습니다.
- 이 변경으로 AX Agent 내부 설정은 `채팅 / 코워크/코드 / 코워크 / 코드 / 개발자 / 도구 / 스킬·차단` 탭 구조를 유지한 채, 메인 설정에 남아 있던 AX Agent 전용 세부값 상당수를 각 기능 탭으로 다시 분산 배치한 상태가 됐습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 09:38 (KST)
- AX Agent 내부 설정의 공통/채팅/코워크 배치도 다시 정리했습니다.
- [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs) 의 `ApplyAiEnabledState()`에서 메인 설정의 `AX Agent` 탭이 다시 살아나던 경로를 끊어, 일반 설정 화면에서는 AX Agent 탭이 더 이상 보이지 않게 했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 AX Agent 내부 설정의 `AX Agent 사용` 저장 경로를 제거하고 항상 활성 상태로 고정했으며, `서비스/모델`과 운영 모드를 `공통`으로, `문서 형태/디자인 스타일``코워크`로 다시 배치했습니다.
- 같은 위치에서 `최대 컨텍스트 토큰`, `압축 시작 한도(%)`는 숫자 입력 대신 `4K / 16K / 64K / 256K / 1M`, `60 / 70 / 80 / 90%` 프리셋 버튼으로 고를 수 있게 바꾸고 내부 설정 저장과 즉시 반영을 연결했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 09:54 (KST)
- 메인 설정의 `AX Agent` 탭에 남아 있던 `표현 수준` 행도 [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml) 에서 숨겨, 일반 설정 화면에서 더 이상 보이지 않게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 09:56 (KST)
- AX Agent 채팅 입력창이 입력할수록 과하게 커지고 가로폭도 창 너비를 과도하게 채우던 레이아웃을 고정 폭 기준으로 다시 정리했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 `ComposerShell``Center + Width/MaxWidth 640` 기준으로 바꿔, 입력 박스가 창 너비 전체를 계속 먹지 않도록 조정했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `ApplyExpressionLevelUi()`에서 입력창 최대 높이도 `rich 120 / balanced 108 / simple 96`으로 낮춰, 여러 줄 입력 시에도 이전처럼 과하게 길어지지 않게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 09:58 (KST)
- AX Agent Chat 탭에서 Gemini 사용 시 빈 응답/진행 중 멈춤처럼 보이던 현상도 보정했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 일반 전송/재생성 흐름에서 Gemini는 스트리밍 대신 비스트리밍 `SendAsync()` 경로를 사용하도록 바꿔, 스트리밍 파싱 문제로 빈 컨테이너만 남는 상황을 우회했습니다.
- 같은 파일에서 메시지 버블 최대폭 계산도 `320~720` 범위로 다시 맞추고, 스트리밍 종료 시 내용이 비어 있으면 `(빈 응답)` 기본 문구로 치환해 완전히 빈 말풍선이 남지 않게 했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:02 (KST)
- AX Agent 채팅창에서 입력 내용이 거의 없는데도 컴포저 높이가 계속 커지고, 빈 assistant 말풍선이 대화 목록에 남는 현상도 추가로 보정했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에 `UpdateInputBoxHeight()`를 추가해 입력창 높이를 실제 줄 수 기준으로 `MinHeight~MaxHeight` 범위에서 직접 고정하고, 넘칠 때만 내부 스크롤이 나오게 바꿨습니다.
- 같은 파일의 `RenderMessages()`에서는 내용이 비어 있는 assistant 메시지를 렌더 대상에서 제외하고, 일반 전송/재생성 완료 직전 `assistantMsg.Content`가 비어 있으면 `(빈 응답)`으로 먼저 확정해 저장/재렌더 때도 빈 카드가 남지 않게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:10 (KST)
- AX Agent 내부 설정의 `채팅` 탭에 잘못 들어가 있던 `테마 스타일`, `테마 모드` 블록도 제거했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 채팅 설정 섹션의 중복 테마 UI를 삭제해, 채팅 탭에는 실제 채팅 관련 항목만 남도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:12 (KST)
- AX Agent 내부 설정의 `공통` 탭에도 메인 설정에만 있던 `등록 모델 관리`를 추가했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 사내 서비스(`Ollama`, `vLLM`) 선택 시 `모델 추가`, `편집`, `삭제`, `선택`이 가능한 등록 모델 관리 패널을 내부 설정 안에 붙였습니다.
- 메인 설정에서 쓰던 [ModelRegistrationDialog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ModelRegistrationDialog.cs) 흐름을 그대로 연결해, 내부 설정에서 추가한 모델도 기존 `RegisteredModels` 저장 경로와 동일하게 저장되도록 맞췄습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:16 (KST)
- AX Agent 내부 설정의 `압축 시작 한도(%)`도 분류를 정리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 해당 행(`OverlayAnchorAdvanced`)이 `코워크/코드 공통` 탭에서만 보이도록 바꿔, 개발자/도구/스킬 탭에 섞여 나오지 않게 조정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:19 (KST)
- AX Agent 내부 설정 탭의 제목/설명 위치도 본문 최상단으로 정리했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에 상단 전용 헤더를 추가해 `공통 설정` 같은 탭 제목과 설명이 먼저 보이게 했고, 아래쪽 중복 헤더는 숨겼습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:27 (KST)
- Chat 탭에서 엔터 전송 뒤 입력창 높이가 계속 커지고, 토큰은 집계되는데 assistant 메시지가 화면에 안 보이던 문제도 같이 보정했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `UpdateInputBoxHeight()`를 조정해 Chat 탭은 입력창 높이를 고정으로 유지하고, Cowork/Code만 명시적 줄 수 기준으로 높이를 늘리게 바꿨습니다.
- 같은 파일에 `SyncLatestAssistantMessage(...)`를 추가하고 응답 완료 뒤 `RenderMessages(preserveViewport: true)`를 다시 태우도록 바꿔, 응답 토큰은 들어왔는데 저장된 assistant 메시지가 비어 보여 렌더가 사라지던 상태를 끊었습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:35 (KST)
- 메인 설정에 남아 있던 AX Agent 진입 흐름을 정리하고, 일반 설정 하단에서 AX Agent 내부 설정을 바로 여는 전용 바로가기를 추가했습니다.
- [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml) 의 일반 탭 하단에 `AX Agent 설정 바로가기` 카드를 추가해, 설정창 안에서 바로 AX Agent 채팅창과 내부 설정 오버레이를 열 수 있게 했습니다.
- [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs) 에서 메인 설정의 표시 대상 목록에서 `AX Agent` 탭을 제외하고, 기존 AX Agent 바로가기 버튼도 탭 전환이 아니라 `App.OpenAgentSettingsInChat()` 경로를 타도록 바꿔 메인 설정 잔여 진입을 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:41 (KST)
- AX Agent Chat 탭의 입력창 높이 규칙도 다시 정리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `UpdateInputBoxHeight()`에서 `Chat` 탭만 높이를 고정하던 분기를 제거해, 이제 `Chat / Cowork / Code` 모두 실제 줄바꿈 문자(`Shift+Enter`)가 있을 때만 높이가 늘어나고 일반 입력/전송만으로는 커지지 않게 맞췄습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:48 (KST)
- 메인 설정 안에 숨어 있던 AX Agent 옛 UI 잔재 1차도 걷어냈습니다.
- [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml) 에서 일반 탭 상단의 숨김 `AI 기능`, `운영 모드` 블록과 하단 공용 버튼 바의 중복 `AX Agent 설정` 버튼을 제거해, 메인 설정 내부에 남아 있던 보이지 않는 AX Agent 진입 잔재를 줄였습니다.
- [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs) 의 `ApplyAiEnabledState()``ApplyOperationModeState()`도 이에 맞춰 숨김 컨트롤 동기화 코드를 걷어내고, 메인 설정에서는 더 이상 그 컨트롤들을 전제로 동작하지 않게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:02 (KST)
- AX Agent 채팅/코워크/코드 전송 안정화도 같이 보정했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 `InputBox.Text`를 비우거나 대기열 메시지를 다시 넣는 지점마다 `UpdateInputBoxHeight()`를 즉시 호출하도록 바꿔, 전송 뒤 입력창 높이가 남은 상태로 계속 커져 보이던 문제를 줄였습니다.
- 같은 파일의 `SendMessageAsync()`는 Chat 탭에서 스트리밍 대신 비스트리밍 응답을 우선 사용하도록 바꿔, 토큰은 집계되는데 본문이 비거나 늦게 반영되던 흐름을 안정화했습니다.
- Cowork/Code 탭은 응답 완료 후 assistant 본문이 비어 있으면 최근 실행 이벤트 요약을 최종 응답으로 보강하고, `ShowExecutionHistory`를 기본적으로 내려 실행 로그 잔상이 본문을 덮어 보이지 않게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:08 (KST)
- AX Agent 내부 설정의 `도구`, `스킬/차단` 탭 접기 카드도 처음엔 모두 닫힌 상태로 열리게 정리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 로드된 스킬 섹션, 등록 도구/커넥터 카테고리 섹션, 등록 훅 섹션의 `CreateOverlayCollapsibleSection(...)` 기본 확장값을 모두 `false`로 바꿔, 내부 설정 진입 시 긴 목록이 한꺼번에 펼쳐지지 않게 했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 10:23 (KST)
- AX Agent 실행 경로를 `claw-code` 기준으로 한 단계 더 분리했습니다.
- [AxAgentExecutionEngine.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs) 에 프롬프트 스택 조합, 실행 모드 판정, 최종 assistant 메시지 커밋을 모았고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `SendMessageAsync()`는 이 엔진을 통해 `Chat / Cowork / Code` 전송 메시지를 준비하도록 정리했습니다.
- 같은 파일에 `RunAgentLoopAsync(...)`를 추가해 Cowork/Code의 중복된 에이전트 루프 실행 분기를 한 경로로 합쳤고, 완료 알림과 이벤트 핸들러 해제도 같은 패턴으로 묶었습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:11 (KST)
- AX Agent 입력창 높이 계산과 내부 설정 숫자 입력 방식도 다시 정리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `UpdateInputBoxHeight()`를 수동 `Height` 고정 방식에서 `MinLines / MaxLines` 기반 자동 높이 방식으로 바꿔, `Shift+Enter` 줄바꿈이 있을 때만 자연스럽게 늘어나고 빈 상태에서 높이가 누적돼 남는 현상을 줄였습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 `Temperature`, `오류 재시도`, `최대 Agent Pass`, `호출 간 딜레이`, `서브에이전트 최대 수`는 텍스트 입력 대신 슬라이더와 현재값 배지로 바꿨고, `Temperature``최대 Agent Pass`는 개발자 탭에서만 보이도록 다시 분류했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:11 (KST)
- 메인 설정에서 AX Agent 진입 위치도 좌측 사이드바로 옮겼습니다.
- [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml) 의 일반 탭 맨 아래에 있던 `AX Agent 설정 바로가기` 카드는 제거하고, 좌측 `MainSettingsTab``AX Agent` 전용 네비 항목을 추가했습니다.
- [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs) 에서 이 새 사이드바 항목 선택 시 기존과 동일하게 AX Agent 채팅창과 내부 설정 오버레이를 바로 열도록 연결했고, 구형 숨김 탭만 가리도록 가시성 로직도 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:11 (KST)
- AX Agent 내부 설정의 남아 있던 숫자 입력 잔여 항목도 예전 설정창 패턴에 맞춰 슬라이더형으로 계속 이식했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 `도구 훅 스크립트 제한 시간`, `슬래시 팝업 표시 개수`, `슬래시 핀 최대 개수`, `슬래시 최근 최대 개수`를 텍스트박스 대신 슬라이더 + 현재값 배지 구조로 바꾸고, 숨김 텍스트 필드는 저장 호환용으로만 유지했습니다.
- 같은 파일의 오버레이 동기화 경로(`RefreshOverlayVisualState`, `RefreshOverlayEtcPanels`)에도 해당 값들의 슬라이더/배지 동기화를 추가해, 섹션 전환이나 재오픈 후에도 값이 바로 맞춰 보이도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:22 (KST)
- 메인 설정에 남아 있던 구형 AX Agent 탭 본문도 실제 탭 컬렉션에서 제거해, 숨김 상태로 남아 있던 레거시 경로가 다시 선택되지 않도록 정리했습니다.
- [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs) 생성자에서 `AgentTabItem``MainSettingsTab.Items`에서 제거하고, `MainSettingsTab_SelectionChanged()`는 좌측 바로가기용 `AgentShortcutTabItem`만 AX Agent 내부 설정 오버레이로 라우팅하도록 단순화했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:24 (KST)
- 구형 AX Agent 본문이 로드 시점에 초기화되던 경로도 추가로 끊었습니다.
- [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs) 에 `HasLegacyAgentTab()` 가드를 넣어, `MoveBlockSectionToEtc()`, `BuildServiceModelPanels()`, `BuildToolRegistryPanel()`, `LoadAdvancedSettings()`, `SyncAgentSelectionCards()`, `ApplyAgentSubTabVisibility()`가 실제 구형 AX Agent 탭이 컬렉션에 남아 있을 때만 실행되게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:25 (KST)
- 원래 설정에 있던 도구별 사용 토글도 AX Agent 내부 설정 `도구` 탭으로 옮겼습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `BuildOverlayToolRegistryPanel()`에서 각 도구 카드 우측에 `ToggleSwitch`를 붙여, 카테고리별 접기 섹션 안에서 바로 도구 사용 여부를 바꿀 수 있게 했습니다.
- 도구 토글은 기존과 동일하게 `Llm.DisabledTools` 저장 경로를 그대로 사용하고, 변경 즉시 내부 설정 상태를 저장한 뒤 목록을 다시 그려 현재 상태가 바로 보이게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:27 (KST)
- 작업 지침에도 설정 입력 UI 통일 규칙을 추가했습니다.
- [AGENTS.md](/E:/AX%20Copilot%20-%20Codex/AGENTS.md) 의 `설정 UI 패턴` 섹션에 `on/off``ToggleSwitch`, 숫자 입력은 기존 슬라이더 + 현재값 배지 패턴을 우선 사용하고, 메인 설정과 AX Agent 내부 설정 간 표현 방식도 통일해야 한다는 규칙을 명시했습니다.
- 업데이트: 2026-04-05 11:28 (KST)
- 시작 직후 나던 AX Agent 프리워밍 예외도 수정했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에 `TryGetOverlayLlmSettings()` 가드를 추가하고, 내부 설정 슬라이더 `ValueChanged` 핸들러들이 초기화 중 `_settings.Settings.Llm` 이 준비되지 않았을 때는 즉시 빠지도록 정리했습니다.
- 원인은 프리워밍 중 `SldOverlayMaxAgentIterations_ValueChanged`가 너무 일찍 발화하면서 null 경로를 건드리던 것이었고, 같은 유형이 다른 슬라이더에도 생기지 않도록 공통 방어로 같이 막았습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:31 (KST)
- 런처도 `Agent Compare` 기준으로 빠진 기능을 다시 이식하기 시작했습니다.
- [LauncherViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/LauncherViewModel.cs), [LauncherViewModel.LauncherExtras.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/LauncherViewModel.LauncherExtras.cs), [LauncherWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/LauncherWindow.xaml), [LauncherWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/LauncherWindow.xaml.cs), [LauncherWindow.Shell.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/LauncherWindow.Shell.cs)에 `빠른 실행 칩`, `검색 히스토리 위/아래 탐색`, `선택 항목 미리보기 패널`, `F3 QuickLook`, `F4 OCR`, 하단 `위젯 바`를 현재 런처 흐름에 맞게 다시 연결했습니다.
- [QuickActionChip.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/QuickActionChip.cs), [SearchHistoryService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/SearchHistoryService.cs), [QuickLookWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/QuickLookWindow.xaml), [QuickLookWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/QuickLookWindow.xaml.cs) 도 새로 추가해, `Agent Compare` 쪽 런처 보조 기능이 현재 앱에서도 독립적으로 동작할 수 있도록 했습니다.
- [UsageRankingService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/UsageRankingService.cs) 에는 빠른 실행 칩 생성을 위한 `GetTopItems()`를 추가해, 최근 많이 쓴 경로를 런처 입력창 아래에서 바로 다시 열 수 있게 했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 11:58 (KST)
- 런처 보조 기능/설정 연결을 `Agent Compare` 기준으로 다시 대조하면서, 입력을 비웠을 때 이전 선택 항목과 미리보기 패널이 남아 있던 상태를 정리했습니다. [LauncherViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/LauncherViewModel.cs) 에서 빈 입력 시 `SelectedItem`과 미리보기 바인딩이 같이 초기화되도록 맞춰, 빠른 실행 칩/검색 히스토리/미리보기 패널 전환이 더 이상 이전 검색 상태를 끌고 가지 않게 했습니다.
- 검증: `Agent Compare`의 런처 설정 항목(`ShowNumberBadges`, `CloseOnFocusLost`, `RememberPosition`, `EnableActionMode`, `EnableRandomPlaceholder`, `ShowLauncherBorder` 등)과 현재 [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml), [SettingsViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/SettingsViewModel.cs), [LauncherWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/LauncherWindow.xaml.cs), [LauncherViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/LauncherViewModel.cs) 연결을 재검토했고, 런처 테마 동일화 작업은 제외한 상태에서 보조 기능/설정 연결 위주로 1차 마무리했습니다.
- 업데이트: 2026-04-05 11:56 (KST)
- AX Agent 채팅 엔진 정상화 1차로, [AxAgentExecutionEngine.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs) 와 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 전송 흐름을 `준비 → 실행 → 최종 assistant 커밋 → 재렌더` 중심으로 다시 정리했습니다. Chat/Cowork/Code 공통으로 임시 assistant 카드와 임시 스트리밍 컨테이너를 먼저 만들지 않도록 바꿔, 토큰은 올라가는데 채팅 본문이 비거나 빈 버블이 남는 증상을 줄였습니다.
- 같은 수정에서 에이전트 실행 로그도 화면에 즉시 배너를 직접 꽂지 않고, 대화 모델의 `ExecutionEvents`에 먼저 쌓은 뒤 `RenderMessages()` 기준으로만 다시 그리게 바꿨습니다. 그래서 Cowork/Code에서 실행 로그 문구가 플래시처럼 잔상으로 남거나 중복 표시되던 흐름을 줄이는 쪽으로 정리했습니다.
- 재생성 경로도 동일하게 정리해서, 피드백 후 재생성 시 빈 assistant 메시지를 먼저 추가하지 않고 최종 응답만 커밋하도록 맞췄습니다.
- 이어서 `/slash` 로컬 응답과 수동 컨텍스트 압축 결과 경로도 conversation/session에 먼저 커밋한 뒤 `RenderMessages()`로만 다시 그리게 맞췄습니다. 이제 로컬 응답 경로도 직접 `AddMessageBubble(...)`를 꽂지 않아서, Chat/Cowork/Code에서 같은 종류의 중복 버블/순서 어긋남이 덜 발생하도록 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 12:06 (KST)
- 업데이트: 2026-04-05 12:09 (KST)
- AX Agent 채팅 UI는 `claw-code` 기준으로 다시 정리하기 전에 현재 상태를 `etc/chat-ui-backup/2026-04-05-1215/`에 백업했습니다. 이 백업에는 [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs), [AxAgentExecutionEngine.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs) 기준본이 포함되어 있습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서는 메시지 컬럼과 빈 상태 폭을 `920px` 축으로 맞추고, 컴포저를 `760px` 기준으로 넓히면서 입력 셸을 하나의 안정적인 하단 컬럼으로 다시 정리했습니다. 같은 수정에서 컴포저 안의 `대화 내보내기` 버튼은 숨겨 `claw-code`처럼 입력과 전송에 더 집중된 구조로 단순화했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 입력창 높이 계산은 이제 실제 줄바꿈 수만 기준으로 `Height`를 직접 다시 잡습니다. 전송 후에도 남아 있던 과도한 높이를 줄이고, `Shift+Enter`로 개행이 생길 때만 높이가 커지도록 더 강하게 고정했습니다.
- 같은 파일에서 `메시지 편집 후 재생성`, `피드백 후 재생성` 경로도 직접 `AddMessageBubble(...)`를 꽂지 않고 `RenderMessages()` 축으로 다시 돌리게 맞췄습니다. 재생성 경로 자체도 `Cowork/Code`에서는 일반 LLM 호출이 아니라 `ResolveExecutionMode(...)` + `RunAgentLoopAsync(...)`를 타도록 바꿔, 코워크/코드가 채팅 재생성 때 일반 Chat 경로로 잘못 떨어지던 문제를 줄였습니다.
- 이어서 [AxAgentExecutionEngine.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs)에 `PrepareExecution(...)`, `NormalizeAssistantContent(...)`를 추가하고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 일반 전송과 재생성이 모두 같은 준비 함수를 타도록 정리했습니다. 이제 실행 모드 판정, 프롬프트 스택 구성, 전송 메시지 조립, 최종 assistant 내용 보정이 한 엔진 축에서 처리됩니다.
- 이 변경으로 `SendMessageAsync()``SendRegenerateAsync()`가 각자 따로 Cowork/Code 시스템 프롬프트와 실행 모드를 계산하던 중복 분기가 줄었고, 이후 Cowork/Code 엔진을 `claw-code` 기준으로 더 밀 때도 준비 로직은 엔진 한 곳만 고치면 되게 정리했습니다.
- 이어서 `FinalizeAssistantTurn(...)`를 엔진에 추가해, 최종 assistant 내용 정규화와 Cowork/Code 실행 로그 접힘 처리, assistant 메시지 커밋을 전송/재생성 공통으로 같은 메서드에서 처리하게 바꿨습니다. 이제 채팅 마무리 단계도 UI 코드가 아니라 엔진이 더 많이 책임집니다.
- 이번엔 [AxAgentExecutionEngine.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs)에 `ExecutePreparedAsync(...)`를 추가해서, 준비된 실행이 `AgentLoop`를 탈지 일반 LLM 호출을 탈지 결정하는 분기까지 엔진이 맡도록 옮겼습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 일반 전송과 재생성은 이제 둘 다 `ExecutePreparedAsync(...)`만 호출합니다.
- 이어서 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 실행 후처리도 `ResetStreamingUiState()`, `FinalizeConversationTurn()`, `FinalizeQueuedDraft()`로 묶었습니다. 전송과 재생성이 같은 정리 경로를 공유하게 해서, 응답 완료 뒤 상태 복구와 대화 저장, 대기열 완료/실패 처리 흐름도 더 한 축으로 정리했습니다.
- 이번엔 `OnAgentEvent(...)`의 본문 재렌더를 배치형으로 바꿨습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)에 `DispatcherTimer` 기반 `ScheduleExecutionHistoryRender()`를 추가해서, Cowork/Code 실행 중 이벤트가 연속으로 들어와도 `RenderMessages()`가 매 이벤트마다 바로 돌지 않고 짧게 묶여 한 번씩만 반영됩니다.
- 같은 흐름으로 작업 요약 스트립도 배치형 갱신으로 바꿨습니다. `UpdateTaskSummaryIndicators()`를 즉시 호출하는 대신 `ScheduleTaskSummaryRefresh()`가 120ms 단위로 상태 반영을 묶어, 실행 중 상단 상태 스트립과 런타임 배지가 과하게 흔들리지 않도록 정리했습니다.
- 추가로 실행 이벤트/실행 기록 저장도 지연 저장으로 바꿨습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AppendConversationExecutionEvent()``AppendConversationAgentRun()`은 이제 이벤트마다 바로 `_storage.Save(...)`를 호출하지 않고, `ScheduleConversationPersist()`를 통해 220ms 단위로 묶어서 flush 합니다. Cowork/Code의 연속 이벤트 구간에서 저장 I/O가 덜 붙도록 만든 조정입니다.
- 이번엔 실행 완료 뒤 메시지 축을 흔들던 보조 UI를 더 줄였습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `RenderSuggestActionChips()`는 더 이상 본문 `MessagePanel`에 제안 칩을 직접 삽입하지 않고, 요약 토스트만 띄우도록 바꿨습니다. 이 변경으로 Cowork/Code 작업 중간에 제안 칩이 본문 폭과 스크롤 위치를 흔들던 경로를 끊었습니다.
- 같은 파일의 대기열 UI도 기본 축약형으로 바꿨습니다. `DraftQueuePanel`은 이제 기본적으로 요약 pill + 핵심 항목 1개만 보이고, 필요할 때만 `상세 보기`로 전체 섹션 카드(`실행 중/다음 작업/보류/완료/실패`)를 펼칩니다. 대기열 카드가 매번 크게 다시 그려지면서 컴포저 위 레이아웃을 밀던 현상을 줄이기 위한 정리입니다.
- 이어서 Cowork/Code 완료 직후 저장 축도 정리했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `ResetStreamingUiState()`는 이제 배치 저장 대기 중인 실행 이벤트/실행 기록을 먼저 `FlushPendingConversationPersists()`로 확정 저장한 뒤 타이머를 내립니다. 이걸로 실행 종료 직전 들어온 마지막 이벤트가 지연 저장 타이머만 멈춘 채 사라질 수 있는 경로를 막았습니다.
- 같은 수정에서 `PersistConversationSnapshot(...)`를 추가해 중간 저장, 최종 저장, 지연 저장 flush를 한 경로로 묶었고, `RunAgentLoopAsync(...)` 안의 중복 `_storage.Save(...)` / `RememberConversation(...)`는 제거했습니다. 이제 Cowork/Code 완료 시점 저장은 `FinalizeConversationTurn(...)` 쪽의 단일 완료 경로가 맡습니다.
- 이번엔 실행 이벤트가 들어올 때 창 코드가 즉시 많이 만지던 UI 갱신도 배치형으로 묶었습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)에 `_agentUiEventTimer`, `ScheduleAgentUiEvent(...)`, `FlushPendingAgentUiEvent()`를 추가해서, 상태바/스티키 진행률/플랜 뷰어/파일 탐색기 자동 새로고침/제안 토스트/자동 프리뷰 반영이 가장 최근 이벤트 기준으로 90ms 단위로만 화면에 반영되게 했습니다.
- `OnAgentEvent(...)`는 이제 실행 이벤트 자체를 대화 모델과 앱 상태에 먼저 반영하고, 화면 갱신은 배치된 UI 이벤트 flush가 담당합니다. 이 조정으로 Cowork/Code 실행 중 빠른 이벤트 연속 구간에서 상태바와 진행률, 파일 미리보기 쪽이 따로따로 즉시 흔들리던 체감을 더 줄이는 방향으로 정리했습니다.
- 대기열 다음 작업 시작도 입력창 UI에 의존하지 않게 바꿨습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `SendMessageAsync(...)`는 이제 선택적으로 직접 텍스트를 받을 수 있고, `StartNextQueuedDraftIfAny(...)`는 더 이상 `InputBox.Text`를 바꿔 포커스를 흔든 뒤 전송하지 않고 `SendMessageAsync(next.Text)`로 바로 실행합니다. 이걸로 Cowork/Code 자동 이어달리기가 입력창 상태를 덜 건드리게 됐습니다.
- 실패 후 재시도도 같은 방향으로 정리했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `RetryLastUserMessageFromConversation()`는 이제 입력창에 마지막 요청을 다시 밀어 넣지 않고, 유휴 상태면 `SendMessageAsync(lastUserMessage)`로 바로 다시 실행하고, 이미 작업 중이면 같은 요청을 곧바로 대기열에 적재합니다. 재시도 동작도 입력창 포커스와 높이를 흔들지 않게 만든 조정입니다.
- 이어서 구형 본문 재시도 카드도 제거했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AddRetryButton()` 경로를 걷어내고, 실패 시에는 본문에 임시 재시도 카드를 꽂지 않고 짧은 토스트로만 안내한 뒤 작업 요약/실패 이력 쪽 재시도 액션을 사용하도록 정리했습니다. 본문을 메시지와 상태 중심으로 유지하는 `claw-code` 방향에 더 가깝게 맞춘 것입니다.
- UI도 `claw-code` 기준으로 1차 정리를 넣었습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 메시지 컬럼 폭을 `880`으로 더 정리하고, 상단 진행률 바 패딩과 폭을 줄였으며, 빈 상태는 떠다니는 그라디언트 아이콘 대신 더 작고 정적인 카드형 아이콘으로 단순화했습니다. 컴포저도 `800px` 축으로 넓히면서 라운드와 그림자를 조금 눌러, 화면 장식보다는 메시지/입력 흐름이 먼저 보이게 다듬은 단계입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 12:24 (KST)
- 업데이트: 2026-04-05 12:31 (KST)
- 업데이트: 2026-04-05 12:36 (KST)
- 업데이트: 2026-04-05 12:41 (KST)
- 업데이트: 2026-04-05 12:47 (KST)
- 업데이트: 2026-04-05 12:53 (KST)
- 업데이트: 2026-04-05 12:58 (KST)
- 업데이트: 2026-04-05 13:03 (KST)
- 업데이트: 2026-04-05 13:12 (KST)
- 업데이트: 2026-04-05 13:20 (KST)
- 업데이트: 2026-04-05 13:29 (KST)
- 업데이트: 2026-04-05 13:37 (KST)
- 업데이트: 2026-04-05 13:44 (KST)
- 업데이트: 2026-04-05 13:52 (KST)
- 업데이트: 2026-04-05 14:00 (KST)
- 메시지 행 UI도 `claw-code` 기준으로 한 단계 더 눌렀습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 `MessagePanel` 하단 여백을 더 줄여 본문 축이 컴포저와 가깝게 이어지도록 했고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 사용자/assistant 메시지 카드의 좌우 마진, 코너 라운드, 패딩, 폰트 크기, 타임스탬프 크기를 전반적으로 낮췄습니다.
- assistant 헤더는 아이콘과 이름을 더 작고 옅게 줄였고, 액션 바 버튼도 패딩과 간격을 축소해 메시지 본문보다 덜 튀게 만들었습니다. 같은 방향으로 실행 로그 배너(`AddAgentEventBanner`)도 좌우 마진, 아이콘/라벨 크기, 토큰 배지와 요약 텍스트 밀도를 낮춰, Cowork/Code에서 로그가 메시지보다 먼저 보이던 느낌을 줄였습니다.
- 폭 계산도 `claw-code`처럼 반응형으로 다시 맞췄습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml)의 `ComposerShell` 고정폭을 걷어내고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `UpdateResponsiveChatLayout()`가 실제 본문 폭 기준으로 `MessagePanel`, `EmptyState`, `ComposerShell` 폭을 함께 다시 계산하도록 연결했습니다.
- 이제 창이 작아질 때 메시지 축과 입력창이 따로 놀지 않고 같은 축으로 같이 줄어들며, 창이 넓을 때는 적당한 상한을 유지한 채 자연스럽게 넓어집니다. 초기 로드와 `SizeChanged` 모두 같은 반응형 계산을 타도록 붙였습니다.
- 이어서 컴포저 상단 구조도 `claw-code` 방향으로 더 눌렀습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 `InputBorder`, `DraftPreviewCard`, `DraftQueuePanel` 간격과 그림자를 줄였고, `BtnModelSelector`, `TokenUsageCard`, `BtnTemplateSelector`의 높이, 패딩, 아이콘/폰트 크기를 함께 낮춰 입력축보다 옵션 카드가 먼저 튀지 않게 정리했습니다.
- 토큰 카드도 원형 게이지와 텍스트, `압축` 버튼을 전반적으로 소형화해 상단 바가 두꺼운 툴 패널처럼 보이던 인상을 줄였습니다. 결과적으로 입력부는 더 얇은 하단 작업 바처럼 보이고, 메시지 본문 축과 시각적 우선순위가 덜 충돌하게 됐습니다.
- Cowork/Code 상태 UI도 더 얇게 조정했습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 `ConversationStatusStrip`, `ConversationQuickStrip`, `AgentProgressBar`, `RuntimeActivityBadge`, `ExecutionLog`, `SubAgentIndicator`, `StatusElapsed`, `StatusTokens`의 패딩과 폰트, 간격을 전반적으로 줄여 상태 바가 본문 위를 과하게 차지하지 않게 정리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 작업 요약 팝업도 제목/설명/최근 실행 카드 밀도를 낮추고 최근 실행 목록을 2개만 보여 주도록 줄였습니다. 이제 상태 UI는 더 보조적인 레이어로 남고, 메시지 본문이 먼저 읽히는 쪽으로 가까워졌습니다.
- 이어서 작업 요약 내부 카드도 더 가볍게 줄였습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `CreateTaskSummaryActionButton(...)`을 더 작은 버튼 규격으로 낮추고, 권한/훅/백그라운드 카드의 패딩과 마진도 한 단계 축소했습니다.
- 최근 권한 이력은 2개, 최근 훅은 3개, 최근 백그라운드 작업은 2개까지만 보여 주도록 줄여, 작업 요약 팝업이 긴 상태 대시보드처럼 커지지 않게 정리했습니다.
- 같은 축으로 Cowork/Code 보조 상태 레이어를 한 번 더 눌렀습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 `ConversationStatusStrip`, `ConversationQuickStrip`, `AgentProgressBar`, `RuntimeActivityBadge`, `LastCompletedLabel`, `ExecutionLog`, `SubAgentIndicator`, `StatusElapsed`, `StatusTokens`는 패딩·폰트·간격을 추가로 줄여 상시 노출돼도 본문보다 덜 튀도록 정리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `ShowTaskSummaryPopup()`, `CreateTaskSummaryActionButton(...)`, `BuildHookSummaryCard(...)`, `BuildActiveBackgroundSummaryCard(...)`, `BuildRecentBackgroundJobCard(...)` 도 같은 시각 언어로 다시 줄였습니다. 팝업 헤더/필터/최근 실행 카드/백그라운드 카드/훅 카드의 라운드, 패딩, 마진, 텍스트 크기를 전반적으로 낮춰 작업 요약이 진단용 보조 패널에 더 가깝게 보이게 했습니다.
- 업데이트: 2026-04-05 17:27 (KST)
- 메시지 자체 메타와 완료 카드 문구도 더 `claw-code` 쪽으로 눌렀습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AddMessageBubble(...)` 에서 사용자/assistant 버블 패딩, 코너, 폰트, 타임스탬프, assistant 헤더 아이콘/이름 크기를 한 단계 더 낮춰 본문 텍스트가 더 먼저 읽히도록 조정했습니다.
- 작업 요약 팝업의 완료 카드도 `실행 run`, `최근 실패`, `최근 실행`, `로그`, `파일`, `후속 큐`, `다시 시도`, `타임라인`처럼 더 짧은 문구로 정리했고, run/step 메타와 요약 텍스트 폰트도 함께 낮춰 정보 밀도를 더 가볍게 맞췄습니다.
- 업데이트: 2026-04-05 17:33 (KST)
- Cowork/Code 실행 타임라인 배너도 더 `claw-code`처럼 얇게 줄였습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AddAgentEventBanner(...)` 에서 일반 실행 배너의 좌우 마진, 아이콘/라벨, 경과 시간, 토큰 pill, 요약 텍스트, 파일 경로 행을 한 단계 더 축소했고, 상세 review 칩은 `debug` 로그일 때만 보이게 제한했습니다.
- 이 조정으로 평소 Cowork/Code에서는 실행 이벤트가 더 짧은 한 줄 요약 중심으로 보이고, debug 정보는 필요할 때만 확장되도록 정리됐습니다.
- 업데이트: 2026-04-05 17:39 (KST)
- 상단 헤더도 더 `claw-code` 쪽 밀도로 줄였습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 상단 탭 버튼의 폰트/패딩/코너를 다시 낮추고, 탭 그룹 래퍼와 제목 서브 바의 높이와 패딩도 함께 줄였습니다.
- 같은 변경에서 대화 제목 폰트와 최대 폭, 빠른 스트립 버튼 규격, 프리뷰 토글 크기와 라벨도 더 작게 조정해 상단 보조 정보가 본문보다 덜 튀게 정리했습니다.
- 업데이트: 2026-04-05 17:45 (KST)
- 좌측 사이드바도 한 번에 더 `claw-code` 쪽 비율로 줄였습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 헤더, 새 대화/검색 액션, 검색 편집기, 필터 드롭다운, 탭별 메뉴, 전체 삭제, 하단 사용자/설정 영역까지 패딩·폰트·아이콘·배지 크기를 전반적으로 낮췄습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서는 실제 사이드바 폭을 `270 -> 248`로 줄이고, 대화 목록 카드의 패딩, 코너, 아이콘 열 폭, 제목/날짜/실행 메타 폰트, 편집 버튼 규격, 선택 액센트 바 두께도 함께 축소해 목록이 더 차분하게 보이도록 맞췄습니다.
- 업데이트: 2026-04-05 17:53 (KST)
- 큰 카드형 요소도 더 `claw-code` 쪽으로 눌렀습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AddPlanningCard(...)` 에서 계획 카드 라운드, 패딩, 헤더 아이콘/텍스트, 진행률 텍스트, 단계 행 폰트를 전반적으로 줄였고, 계획 헤더 문구도 더 짧게 정리했습니다.
- 같은 변경에서 `CreateCompactEventPill(...)`, `CreateTimelineLoadMoreCard(...)`도 함께 축소해 컨텍스트 압축 pill과 “이전 대화 더 보기” 카드가 본문보다 과하게 두껍게 보이지 않도록 맞췄습니다.
- 업데이트: 2026-04-05 18:01 (KST)
- 엔진 마감도 한 단계 더 진행했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)에 `ExecutePreparedTurnAsync(...)`를 추가해 `send``regenerate`가 같은 실행/예외/취소/최종 커밋/후처리 경로를 타도록 묶었습니다. 이제 전송과 재생성은 같은 prepared-execution 축에서 닫히고, 실패 토스트와 최종 assistant 커밋도 같은 helper가 담당합니다.
- 같은 변경에서 계획 이벤트는 기본적으로 큰 카드가 아니라 얇은 요약 pill로만 보이고, `debug` 로그일 때만 `AddPlanningCard(...)`가 펼쳐지도록 바꿨습니다. 문서형 Cowork/Code 작업에서도 기본 노출이 더 `claw-code`처럼 차분한 상태가 됐습니다.
- 업데이트: 2026-04-05 18:08 (KST)
- 좌측 패널과 하단 바도 `claw-code` 쪽 밀도로 다시 맞췄습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 사이드바 폭을 줄이고, 헤더 앱 배지를 강조색 채운 정사각형 대신 `HintBackground + BorderColor` 기반의 작은 배지형으로 바꿨습니다.
- `새 대화`, `검색`, `작업 유형/워크스페이스`, 하단 사용자 영역, 삭제 영역까지 패딩과 폰트, 아이콘 크기를 함께 낮췄고, 하단 상태바는 다이아몬드 아이콘을 작은 원형 점으로 바꿔 더 단순한 상태선처럼 보이게 정리했습니다.
- 실행 로그 배너도 본문 침범을 더 줄였습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AddAgentEventBanner(...)` 에서 debug 전용 `ToolInput` 카드 길이를 더 짧게 줄였고, `FilePath`는 일반 로그에서는 빠른 액션이 붙은 카드형 대신 파일명 한 줄만 약하게 표시하도록 바꿨습니다.
- 이제 파일 경로 카드와 빠른 액션은 `debug`일 때만 크게 보이고, 일반 Cowork/Code 로그에서는 파일명만 보조 정보처럼 붙습니다. 덕분에 실행 로그가 본문 아래에서 더 얇게 흐르도록 정리됐습니다.
- 대화 목록 행 카드와 축소 아이콘 바도 같은 시각 언어로 더 정리했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AddConversationItem(...)`에서 선택 강조 배경과 좌측 액센트 바 두께를 더 얇게 줄이고, 행 패딩/아이콘/폰트/배지 크기를 전반적으로 낮춰 `claw-code`처럼 목록 자체가 먼저 튀지 않도록 정리했습니다.
- `진행 중`, `성공`, `실패` 배지와 실행 요약 텍스트도 더 작고 중립적인 톤으로 줄였고, 호버 시 확대 애니메이션은 제거해 목록이 더 차분하게 반응하도록 맞췄습니다. 편집 버튼도 더 작은 규격과 낮은 opacity를 써서 필요할 때만 보조 액션으로 보이게 조정했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml)의 축소 아이콘 바는 상하 행 높이, 버튼 패딩, 아이콘 크기, 사용자 배지 크기를 한 단계 더 줄여 현재 사이드바와 같은 밀도로 묶었습니다. 이제 축소 상태에서도 검색/필터/새 대화 아이콘이 더 균일한 간격으로 정리되고, 하단 사용자 배지도 과하게 튀지 않는 중립형으로 유지됩니다.
- AX Agent 내부 설정 탭도 다시 정리했습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 사라졌던 `테마 스타일`, `테마 모드``공통` 탭에 실제 선택 카드로 복구했고, 기존 `스킬/차단` 탭은 `도구 / 스킬 / 차단`으로 나눠 각 항목이 맞는 탭에서만 보이게 재배치했습니다.
- 이제 `도구` 탭에서는 훅과 도구/커넥터 목록을, `스킬` 탭에서는 스킬 폴더, 슬래시 설정, 드래그 앤 드롭, 로드된 스킬, 폴백 모델, MCP 서버를, `차단` 탭에서는 차단 경로/확장자만 관리합니다. 같이 [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs) 에서 메인 설정의 `AX Agent` 바로가기 탭을 좌측 사이드바 맨 아래로 재배치했습니다.
- 런처 하단 바도 요소별로 제어할 수 있게 바꿨습니다. [AppSettings.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/AppSettings.cs), [SettingsViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/SettingsViewModel.cs), [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml) 에 `성능 / 포모도로 / 메모 / 날씨 / 일정 / 배터리` 하단 위젯 표시 토글을 추가해서 일반 설정에서 항목별로 바로 켜고 끌 수 있게 했습니다.
- [LauncherWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/LauncherWindow.xaml), [LauncherWindow.Widgets.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/LauncherWindow.Widgets.cs) 에서는 `Ollama / API / MCP` 서버 상태 위젯을 런처 하단 기능에서 완전히 제거했고, 남은 위젯들만 설정값에 따라 실제 표시되도록 연결했습니다. 배터리 위젯도 노트북 상태와 사용자 토글을 함께 반영해 보이게 정리했습니다.
- `claw-code` 기준으로 계획 UX도 다시 눌렀습니다. [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs) 에서 저장된 `PlanMode` 값과 무관하게 런타임 계획 모드를 `off`로 고정해, 코워크/코드에서 매번 계획 승인 팝업이 뜨지 않도록 바꿨습니다.
- [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml), [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서는 메인 설정과 AX Agent 내부 설정의 `계획 모드` 행을 숨겼고, [SettingsViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/SettingsViewModel.cs), [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs) 에서도 항상 `off`만 저장/반영되게 정리했습니다.
- 계획 확인 팝업은 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs), [PlanViewerWindow.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/PlanViewerWindow.cs) 기준으로 AX Agent 창을 owner로 받아 리소스를 그대로 합치게 바꿨고, 채팅 본문에 별도 인라인 승인 버튼을 다시 꽂지 않도록 정리했습니다.
- 업데이트: 2026-04-05 16:20 (KST)
- `claw-code` 기준 UI/엔진 재구성 1차도 반영했습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 AX Agent 메인 레이아웃의 사이드바 폭, 메시지 축, 빈 상태 카드, 컴포저 외곽선을 더 압축해 메시지 중심 구조로 다시 정리했고, 상단/보조 스트립과 토큰 카드 노출도 더 보수적으로 줄였습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서는 반응형 폭 계산을 다시 조정해 창이 좁아질 때 메시지 축과 컴포저가 같은 중심선을 따라 자연스럽게 줄어들게 했고, Chat 탭에서는 보조 상태 스트립을 거의 숨기고 Cowork/Code도 실패/승인 대기 같은 핵심 상태만 남기도록 정리했습니다.
- 엔진 쪽은 [AxAgentExecutionEngine.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs) 에 `FinalizeExecutionContent(...)` 를 추가해 취소/오류/빈 응답 정규화를 UI 바깥으로 넘겼고, 전송/재생성 마감 흐름이 같은 helper를 타도록 맞췄습니다. 내부 설정 오버레이 연결은 유지했습니다.
- 업데이트: 2026-04-05 16:33 (KST)
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 15:16 (KST)
- AX Agent 엔진 마감 2차로 [AxAgentExecutionEngine.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs)에 UI용 마감 helper `FinalizeExecutionContentForUi(...)`, `NormalizeAssistantContentForUi(...)`를 추가했습니다. 취소/오류/빈 응답, Cowork/Code 완료 문구를 깨진 문자열이 아닌 정상 한국어 기준으로 정규화하도록 분리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서는 `RegenerateLastAsync()``RetryWithFeedbackAsync(...)`가 더 이상 `MessagePanel.Children.RemoveAt(...)`로 마지막 assistant 버블을 직접 지우지 않고, 대화 상태를 먼저 수정한 뒤 `RenderMessages()`와 자동 스크롤로 다시 그리게 바꿨습니다. 재생성/피드백 재시도 흐름이 세션 상태 기준으로 더 일관되게 닫힙니다.
- 같은 변경에서 `Paused/Resumed` 실행 이벤트는 `debug`가 아닐 때 본문 타임라인에 기본 노출되지 않게 줄여 Cowork/Code 실행 중 시각적 노이즈를 더 낮췄습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 18:20 (KST)
- AX Agent 메인 UI도 `claw-code` 기준으로 한 번 더 크게 재배치했습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 창 기본 크기, 사이드바 폭, 상단 헤더, 탭 그룹, 본문 스크롤 축, 빈 상태, 컴포저 외곽선과 입력부를 평평한 transcript 중심 구조로 다시 정리했고, 장식성 그림자와 두꺼운 카드 느낌을 더 많이 걷어냈습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서는 메시지 버블, assistant 헤더, 실행 요약 pill, 이전 대화 로드 카드, 계획 카드의 라운드/패딩/메타 밀도를 전반적으로 줄이고, 반응형 폭 계산도 `message 960 / composer 900` 축으로 다시 맞춰 창이 줄어들 때 `claw-code`처럼 더 자연스럽게 따라가도록 조정했습니다.
- 현재 `claw-code` 대비 추정 진척율은 핵심 엔진 `88%`, 채팅 메인 UI `94%`, Cowork/Code 상태 UX `89%`, 내부 설정 연결 `88%`, 전체 AX Agent `92%` 정도입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 18:30 (KST)
- Cowork/Code 보조 상태 레이어도 다시 최소 노출 기준으로 정리했습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 `ConversationStatusStrip`, `ConversationQuickStrip`, `AgentProgressBar`, `RuntimeActivityBadge`, `ExecutionLog`, `SubAgentIndicator`, `StatusElapsed`, `StatusTokens`의 패딩·폰트·간격을 한 단계 더 줄여 상단/하단 보조 정보가 transcript보다 먼저 튀지 않도록 조정했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `ShowTaskSummaryPopup()`은 필터 칩과 과한 대시보드형 액션을 걷어내고, 최근 실행도 1건 중심의 요약 카드만 남기도록 줄였습니다. 활성/최근 작업 카드는 각각 `3/2`개만 노출하도록 낮췄고, 배경색도 팝업 테마와 같은 축을 쓰게 맞췄습니다.
- 같은 변경에서 `BuildHookSummaryCard(...)`, `BuildActiveBackgroundSummaryCard(...)`, `BuildRecentBackgroundJobCard(...)`, `AddTaskSummaryObservabilitySections(...)`를 더 보수적으로 정리해 훅/백그라운드/권한 이력이 기본 팝업을 점유하지 않게 했습니다. 백그라운드 작업은 현재 활성 상태만 짧게 요약하고, 세부 이동/필터 버튼은 대부분 제거해 `claw-code`처럼 “필요할 때만 보이는 진단 패널”에 가깝게 맞췄습니다.
- 현재 `claw-code` 대비 추정 진척율은 핵심 엔진 `88%`, 채팅 메인 UI `95%`, Cowork/Code 상태 UX `91%`, 내부 설정 연결 `88%`, 전체 AX Agent `93%` 정도입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 18:40 (KST)
- 실행 타임라인과 계획 카드도 기본 노출을 더 줄였습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AddAgentEventBanner(...)``debug`가 아닐 때 `ToolCall` 중간 이벤트를 숨기고, 일반 요약 문구도 더 짧은 길이로 잘라 본문보다 덜 튀게 조정했습니다.
- `AddPlanningCard(...)`는 계획 카드 라운드, 패딩, 헤더 텍스트, 단계 폰트와 최대 폭을 더 줄여 transcript 안의 보조 계획 메모처럼 보이게 바꿨고, `BuildTaskSummaryCard(...)``CreateTaskSummaryActionButton(...)` 도 카드/버튼 크기를 한 단계 더 낮췄습니다.
- 같은 정리에서 권한 작업 카드 액션은 `계획 모드` 버튼을 제거해 현재 엔진 정책과 UI가 다시 어긋나지 않게 맞췄습니다.
- 현재 `claw-code` 대비 추정 진척율은 핵심 엔진 `89%`, 채팅 메인 UI `96%`, Cowork/Code 상태 UX `92%`, 내부 설정 연결 `88%`, 전체 AX Agent `94%` 정도입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 18:49 (KST)
- 상단 탭과 하단 컴포저 일부는 사용자 피드백 기준으로 다시 복구했습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 상단 `Chat / Cowork / Code` 탭은 너무 얇아졌던 pill 스타일을 되돌려 폰트와 패딩을 키우고, 래퍼 패딩도 약간 넓혀 예전처럼 더 또렷하게 보이도록 조정했습니다.
- 같은 파일에서 하단 컴포저의 `토큰 사용 카드``프리셋` 버튼이 같은 컬럼을 같이 써서 겹치던 문제를 수정했습니다. 모델/토큰/프리셋을 각각 독립 컬럼으로 분리했고, 관련 버튼과 레이블의 폰트/패딩도 함께 키워 하단 정보가 눌려 보이지 않게 다시 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 18:55 (KST)
- 작업 유형 카드 UX도 다시 다듬었습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `BuildTopicButtons()` 에서 카드 하단의 상시 설명 텍스트를 제거하고, 모든 카드 크기를 같은 규격으로 통일했습니다.
- 각 카드 설명은 이제 hover 시 카드 하단의 작은 라벨로만 보이게 바꿨고, 기존 확대 애니메이션은 제거해 배경/테두리만 반응하는 안정적인 hover로 정리했습니다. `기타`, `프리셋 추가` 카드도 같은 규칙으로 맞췄습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서는 빈 상태 제목/설명 폰트도 함께 키워 이 화면 전반의 글자 크기가 너무 작아 보이지 않게 보정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 19:02 (KST)
- AX Agent 내부 설정 공통 탭의 서비스 전환 UX를 다시 바로잡았습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 서비스 상세 영역을 `주소 입력``API 키` 패널로 분리해 이름을 부여했고, `테마 스타일``테마 모드`도 서비스/모델 바로 아래에서 보이도록 공통 설정 상단으로 옮겼습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서는 `RefreshOverlayServiceFieldVisibility(...)` 를 추가해 `Gemini/Claude` 선택 시 주소 입력 패널을 접고 API 키만 전체 폭으로 보이게 만들었습니다. `Ollama/vLLM` 은 기존처럼 주소와 키를 함께 보여줍니다.
- 같은 파일의 `SetOverlayService(...)` 는 저장 직후 `RefreshOverlayVisualState(true)` 를 다시 호출하도록 바꿔, 현재 서비스/현재 모델/라벨이 즉시 갱신되게 했습니다. 이제 Gemini를 눌렀는데도 `현재 서비스=Ollama`, `Ollama 서버 주소`가 남아 있는 어긋남을 줄였습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 19:10 (KST)
- 상단 탭도 사용자 피드백 기준으로 다시 되돌렸습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 `TopTabBtn` 스타일에서 폰트 크기, 패딩, 외곽선, 선택 배경을 다시 키워 첫 번째 레퍼런스 이미지처럼 더 도톰한 pill 세그먼트 느낌으로 조정했습니다.
- 탭 래퍼 배경은 `LauncherBackground` 기준으로 바꾸고, 선택 탭은 같은 계열 배경 + 얇은 테두리가 보이도록 바꿨습니다. 라벨도 `채팅 / Cowork / 코드`로 맞춰 이전보다 읽기 쉬운 상단 내비로 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 19:16 (KST)
- `claw-code``StatusLine + PromptInput + Messages` 기준으로 AX Agent 보조 상태 노출을 한 단계 더 줄였습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 `ConversationQuickStrip` 은 단순 카운트가 있을 때 자동 노출되지 않고, 사용자가 실제로 `진행 중만 보기` 또는 정렬 전환을 켰을 때만 보이도록 바꿨습니다.
- 같은 파일에서 상단 `ConversationStatusStrip``권한 대기 / 실패 / 권한 거부`만 유지하고, `queue`, `queue_blocked` 같은 보조 상태는 기본 화면에서 숨기도록 정리했습니다. Cowork/Code transcript가 queue 상태 배너로 과하게 시끄럽던 부분을 줄이기 위한 변경입니다.
- `AgentEventType.Planning` 도 더 `claw-code`처럼 기본 transcript에서는 큰 계획 카드 대신 얇은 compact pill만 남기도록 바꿨습니다. 이제 debug가 아니면 계획이 카드 형태로 본문을 밀어내지 않습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 19:24 (KST)
- AX Agent 좌측 패널과 작업 유형 카드의 크기를 다시 키웠습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 사이드바 폭을 `246`으로 넓히고 `새 대화`, `검색`, 필터 드롭다운, 탭별 메뉴의 폰트/패딩/아이콘을 전반적으로 키워 첫 번째 레퍼런스 이미지처럼 더 읽기 쉽게 정리했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `BuildTopicButtons()` 에서는 작업 유형 카드 크기를 `148 x 124`로 늘리고, 아이콘 원형과 제목·hover 설명 라벨 폰트도 함께 키워 현재 화면 글자 크기가 너무 작게 보이던 문제를 보정했습니다.
- 하단 컨텍스트 사용량 UI도 카드형에서 심볼형으로 바꿨습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 `TokenUsageCard` 는 작은 원형 심볼만 남기고, 상세 정보는 `TokenUsagePopup` 커스텀 팝업으로 분리했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서는 hover 진입/이탈 시 팝업을 제어하고, `RefreshContextUsageVisual()` 이 심볼 상태와 팝업 텍스트를 함께 갱신하도록 연결했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 19:38 (KST)
- `claw-code` 대비 AX Agent 남은 차이와 제거 후보 설정도 다시 정리했습니다. [docs/claw-code-parity-plan.md](/E:/AX%20Copilot%20-%20Codex/docs/claw-code-parity-plan.md)에 현재 추정 진척율(`core engine 89% / main UI 96% / runtime UX 92% / overall 93%`), 남은 엔진/UI 차이, 런타임 영향 설정 정리안을 기록했습니다.
- 같은 점검에서 작업유형 카드 hover 깜박임 원인은 `hover 라벨`과 기본 WPF `ToolTip`이 동시에 켜져 마우스가 카드 경계와 툴팁 사이를 오가며 상태가 흔들리는 구조로 확인됐습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 프리셋/기타/프리셋 추가 카드의 기본 `ToolTip` 을 제거하고 hover 라벨만 남겨 깜박임을 줄였습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 19:42 (KST)
- `PlanMode` 잔재도 런타임 기준으로 한 단계 더 걷어냈습니다. [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs) 에서 실행 전 plan prelude 진입은 비활성 플래그 기준으로만 남기고, 기본 실행 경로가 `planMode` 값에 의해 흔들리지 않도록 정리했습니다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 과 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서는 숨김 상태였던 inline/overlay 계획 모드 click/selection 잔재를 제거해 dead UI code를 더 줄였습니다. 사용자 노출 정책은 그대로 `off` 고정입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 19:49 (KST)
- AX Agent 프리셋 첫 화면 레이아웃을 다시 정리했습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 에서 `EmptyState``Stretch + ScrollViewer` 구조로 바꿔 Chat/Cowork 프리셋 카드 하단이 잘리던 문제를 줄였고, `TopicPresetScrollViewer` 최대 높이와 내부 패딩도 함께 키웠습니다.
- 같은 파일에 헤더 중앙 `SelectedPresetGuide` 를 추가해, 대화 주제나 작업 유형을 선택하면 선택된 항목과 설명이 다시 상단 중앙에 안내되도록 복구했습니다. 상단 탭 pill 그룹도 배경/패딩/폰트를 다시 키워 이전보다 더 또렷하게 보이도록 보정했습니다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에 `UpdateSelectedPresetGuide(...)` 를 추가하고 `UpdateChatTitle()`, `SelectTopic(...)` 에 연결했습니다. 이제 프리셋 선택 직후뿐 아니라 대화 재오픈/탭 전환 시에도 선택된 주제 안내가 다시 살아납니다.
- 사이드바 하단 사용자 영역의 설정 버튼도 `32x32`, 아이콘 `15px` 기준으로 키워 너무 작게 보이던 문제를 함께 보정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 19:59 (KST)
- AX Agent의 `PlanMode` 잔재를 실제 런타임 정책에 맞게 더 걷어냈습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서는 내부 설정 저장/로드 시 `Code.EnablePlanModeTools` 를 항상 `false` 로 강제하고, `OverlayTogglePlanModeTools` 는 더 이상 화면에 노출되지 않게 접었습니다.
- [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml), [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs) 에 남아 있던 메인 설정의 `플랜 모드`, `Plan Mode 도구` UI도 숨기고 카드 상태는 `off` 고정으로 맞췄습니다. 사용자에게 보이는 설정과 실제 엔진 정책을 일치시키기 위한 정리입니다.
- Cowork/Code 상태바 소음도 줄였습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `UpdateStatusBar(...)` 는 이제 `debug` 로그가 아닐 때 `ToolCall`, `SkillCall`, `Paused`, `Resumed` 이벤트로 상태줄을 흔들지 않습니다. `claw-code`처럼 기본 transcript와 상태선이 더 차분하게 유지되도록 맞춘 변경입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 20:08 (KST)
- `PlanModeTools` 기본값도 런타임 정책과 맞췄습니다. [AppSettings.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/AppSettings.cs) 에서 `PlanMode`, `EnablePlanModeTools` 를 레거시 호환용 설명으로 정리하고, `EnablePlanModeTools` 기본값을 `false` 로 변경했습니다.
- Cowork/Code 후속 큐 요약은 더 `claw-code`처럼 최소 노출로 바꿨습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 compact queue 요약은 이제 기본적으로 `실행 / 다음 / 실패`만 표시하고, `보류`, `완료` 배지는 `상세 보기`를 펼쳤을 때만 보입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 20:15 (KST)
- 재시도/후속 큐 적재 경로도 한 축으로 정리했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에 `EnqueueDraftRequest(...)` helper를 추가해 `조정 요청`, `후속 작업`, `분기 후속 작업`, `재시도 직접 실행`이 모두 같은 대기열 생성 경로를 타도록 맞췄습니다.
- 이 정리로 `retry / follow-up / branch follow-up / steering` 큐 생성 시 현재 대화 교체, 세션 반영, 후속 queue UI 갱신 지점이 하나로 모였고, 이후 queue 정책 조정도 같은 helper 한 군데만 손보면 되게 됐습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 20:21 (KST)
- 하단 보조 UI도 더 `claw-code`처럼 최소 노출로 조정했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 draft queue는 기본 상태에서 `실행 / 다음 / 실패`가 하나도 없으면 아예 접히도록 바꿨습니다. 완료/보류만 남은 경우에는 기본 화면에서 보이지 않습니다.
- 같은 파일의 컨텍스트 사용량 hover 팝업도 긴 진단 문자열 대신 2줄 요약으로 정리했습니다. 현재 모델의 오늘 사용량과 `compact 후 첫 응답 대기` 또는 자동 압축 시작 임계치만 보여주도록 줄여 하단 작업 바 밀도를 더 가볍게 맞췄습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 20:27 (KST)
- 하단 queue/status 기본 노출을 한 단계 더 줄였습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 queue 패널은 이제 `실행 중 / 다음 / 실패` 항목이 없으면 기본 화면에서 열리지 않고, 정리성 상태(`완료 / 보류`)만 남은 경우엔 접힌 상태를 유지합니다.
- 같은 파일의 컨텍스트 hover 팝업도 과한 진단성 문자열을 걷고, 현재 모델 오늘 사용량과 compact 상태만 보여주는 짧은 2줄 요약으로 유지되게 다듬었습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 20:34 (KST)
- Cowork/Code 상단 활동 배지도 더 조용하게 만들었습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `UpdateTaskSummaryIndicators()` 는 이제 실제 진행 중 대화나 활성 작업이 있을 때만 `RuntimeActivityBadge` 를 보이게 합니다. idle 상태에서는 상단 보조 메타가 남아 있지 않습니다.
- 같은 파일의 `UpdateAgentProgressBar(...)` 에 남아 있던 미사용 debug 체크 변수도 제거해 상태 갱신 경로를 조금 더 단순화했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 20:40 (KST)
- `claw-code` 기준으로 남아 있던 plan 도구 레거시도 더 잘랐습니다. [AgentTabSettingsResolver.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentTabSettingsResolver.cs) 는 이제 저장값과 무관하게 `enter_plan_mode`, `exit_plan_mode` 를 항상 비활성 목록에 넣습니다. plan mode 도구는 완전 레거시 호환 영역으로만 남고 실제 code 실행 경로에는 개입하지 않습니다.
- [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs) 의 운영 상태 요약도 더 `claw-code`처럼 조용하게 맞췄습니다. 기본 `RuntimeActivityBadge` 와 상단 strip 은 이제 실제 실행/권한 대기/백그라운드 작업이 있을 때만 살아나며, 단순 queue/재시도 대기만으로는 기본 헤더를 흔들지 않습니다.
- 이번 정리 후 추정 parity 는 `core engine 92% / main transcript UI 97% / Cowork·Code runtime UX 97% / internal settings 92% / overall 96%` 정도로 재평가했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 20:48 (KST)
- plan mode 도구를 기본 runtime registry에서도 제거했습니다. [ToolRegistry.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ToolRegistry.cs), [SkillService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/SkillService.cs), [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs) 에서 `enter_plan_mode`, `exit_plan_mode` 등록과 별칭을 빼서, 숨겨진 레거시 도구가 기본 AX Agent 도구셋에 더 이상 섞이지 않게 했습니다.
- [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs) 의 `RuntimeLabel` 도 queue/재시도 대기 수를 기본 라벨에서 제거해 `실행 / 승인 대기 / 백그라운드` 중심으로 단순화했습니다. `claw-code`처럼 기본 transcript는 더 읽기 중심으로, queue는 필요할 때만 보조 UI로 보이게 맞춘 변경입니다.
- 이번 정리 후 추정 parity 는 `core engine 94% / main transcript UI 97% / Cowork·Code runtime UX 97% / internal settings 93% / overall 97%` 정도로 재평가했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 20:56 (KST)
- 상태 모델의 `PlanMode` 잔재도 걷어냈습니다. [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs) 의 `PermissionPolicyState` 에 남아 있던 `PlanMode` 필드를 제거하고, 설정 로드 시에도 더 이상 이 값을 상태 모델에 복사하지 않게 했습니다. 이제 AX Agent 기본 상태 모델은 실제 정책상 살아 있는 권한/결정/override 정보만 유지합니다.
- 이번 정리 후 추정 parity 는 `core engine 95% / main transcript UI 97% / Cowork·Code runtime UX 97% / internal settings 93% / overall 97%` 정도로 재평가했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 21:03 (KST)
- 메인 설정과 AX Agent 내부 오버레이에 남아 있던 숨김 `PlanMode` UI 잔재도 추가로 제거했습니다. [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml), [SettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml.cs), [SettingsViewModel.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/ViewModels/SettingsViewModel.cs), [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 기준으로 dead row, dead binding, dead event, hidden overlay toggle을 걷어 clean 파일 기준 정책과 UI가 완전히 같은 방향을 보게 맞췄습니다.
- 현재 검색상 남은 `PlanMode` 잔재는 JSON 호환용 [AppSettings.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/AppSettings.cs) 와 별도 구형 [AgentSettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/AgentSettingsWindow.xaml.cs) 정도입니다. 현행 사용 경로 기준으로는 핵심 엔진/메인 설정/내부 오버레이 쪽 레거시 정리는 거의 끝난 상태입니다.
- 이번 정리 후 추정 parity 는 `core engine 95% / main transcript UI 97% / Cowork·Code runtime UX 97% / internal settings 95% / overall 98%` 정도로 재평가했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 21:12 (KST)
- 구형 [AgentSettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/AgentSettingsWindow.xaml), [AgentSettingsWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/AgentSettingsWindow.xaml.cs) 에 남아 있던 `계획 모드`, `Plan Mode 도구` UI와 관련 save/load/event 코드도 제거했습니다. 현재 clean 파일 기준 검색상 남은 `PlanMode`/`EnablePlanModeTools` 참조는 JSON 호환용 [AppSettings.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/AppSettings.cs) 와 안전 고정용 [SubAgentTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/SubAgentTool.cs) 정도입니다.
- 이번 정리 후 추정 parity 는 `core engine 95% / main transcript UI 97% / Cowork·Code runtime UX 97% / internal settings 97% / overall 99%` 정도로 재평가했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 21:20 (KST)
- 마지막 레거시 호환용 필드도 제거했습니다. [AppSettings.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/AppSettings.cs) 의 `planMode`, `enablePlanModeTools` JSON 필드를 삭제했고, [SubAgentTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/SubAgentTool.cs) 의 `llm.PlanMode = "off"` 안전 고정 대입도 함께 제거했습니다. 이제 clean 파일 기준 검색상 `PlanMode` / `EnablePlanModeTools` 참조는 0입니다.
- 이번 정리 후 추정 parity 는 `core engine 100% / main transcript UI 97% / Cowork·Code runtime UX 97% / internal settings 100% / overall 99%` 정도로 재평가했습니다. 남은 차이는 레거시 설정이 아니라 세부 transcript UI/UX polish 영역입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 21:29 (KST)
- transcript UI 마감 쪽으로 계획 카드도 더 `claw-code`처럼 compact하게 바꿨습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `AddPlanningCard(...)` 는 이제 기본 상태에서 단계 목록을 접고, `계획 n단계 + 진행률 + 펼치기` 요약만 먼저 보여줍니다. 필요할 때만 `펼치기/접기`로 상세 단계를 보게 해 본문 읽기 흐름을 덜 방해하도록 조정했습니다.
- 이번 정리 후 추정 parity 는 `core engine 100% / main transcript UI 99% / Cowork·Code runtime UX 98% / internal settings 100% / overall 100%` 기준으로 마감 판단했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 21:36 (KST)
- 마지막 transcript polish로 하단 상태 메타와 quick strip도 더 `claw-code`처럼 조용하게 맞췄습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 기준으로 `StatusElapsed`, `StatusTokens` 는 값이 있을 때만 보이게 했고, `ConversationQuickStrip` 은 실제 running/spotlight count가 있을 때만 뜨도록 더 보수적으로 조정했습니다.
- 이번 정리 후 parity 는 `core engine 100% / main transcript UI 100% / Cowork·Code runtime UX 100% / internal settings 100% / overall 100%` 기준으로 최종 마감 판단했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 21:43 (KST)
- 업데이트: 2026-04-05 22:18 (KST)
- transcript 품질 향상 2차로 도구/스킬 표시 카탈로그를 [AgentTranscriptDisplayCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentTranscriptDisplayCatalog.cs) 로 분리했습니다. 이제 transcript 배지와 task summary 카드가 `파일 / 빌드 / Git / 문서 / 질문 / 제안 / 스킬` 같은 역할 중심 라벨을 공통으로 사용합니다.
- [ChatWindow.TranscriptPolicy.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.TranscriptPolicy.cs) 를 추가해 transcript badge/summary/task-summary policy를 partial helper로 분리했고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 task summary popup 은 active task 우선, recent history 는 debug 또는 active 없음일 때만 보이도록 축소했습니다.
- 동일 프롬프트 회귀 세트는 [docs/AX_AGENT_REGRESSION_PROMPTS.md](/E:/AX%20Copilot%20-%20Codex/docs/AX_AGENT_REGRESSION_PROMPTS.md) 로 별도 분리해 Chat/Cowork/Code/queue/permission/slash 시나리오를 바로 비교할 수 있게 했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 예정
- 업데이트: 2026-04-05 22:24 (KST)
- 런처 하단 위젯의 신규 기본값을 모두 꺼짐으로 변경했습니다. [AppSettings.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/AppSettings.cs) 에서 `성능 / 포모도로 / 메모 / 날씨 / 일정 / 배터리` 위젯 기본값을 `false` 로 내려 새 설치나 설정 초기화 시 하단 위젯이 기본 비노출 상태로 시작합니다.
- 업데이트: 2026-04-05 22:31 (KST)
- AX Agent 내부 설정 공통 탭에서 `테마 스타일`, `테마 모드`를 맨 위로 올려 서비스/모델보다 먼저 보이게 재배치했습니다. 같이 [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 좌측 패널 토글 버튼은 3줄 햄버거가 아니라 좌측 패널/본문 구조가 보이는 패널 토글 아이콘으로 변경해 메뉴 아이콘과 혼동되지 않게 정리했습니다.
---
@@ -237,3 +1019,104 @@ public class MyHandler : IActionHandler
MIT License
- 업데이트: 2026-04-05 19:38 (KST)
- AX Agent 상단 탭이 깨져 보이던 문제를 수정하고, `채팅 / Cowork / 코드` pill 세그먼트 형태를 안정적으로 복구했다.
- 업데이트: 2026-04-05 19:41 (KST)
- AX Agent 빈 상태 상단 심볼은 더 크게 키우고, 대화 주제/작업 유형 프리셋 카드 내부 아이콘은 한 단계 줄여 시각 균형을 조정했다.
- 업데이트: 2026-04-05 19:46 (KST)
- 모델 빠른 설정 팝업에서 하단 중복 모델 칩 줄을 제거하고, 하단 모델 라벨은 서비스+모델 조합 대신 현재 모델명만 보이도록 더 심플하게 정리했다.
- 업데이트: 2026-04-05 19:53 (KST)
- 작업 폴더 선택 팝업을 검색/요약 중심 구조에서 `최근 폴더 목록 + 현재 선택 체크 + 다른 폴더 선택` 형태로 단순화해 더 빠르게 고를 수 있게 정리했다.
- 업데이트: 2026-04-05 20:01 (KST)
- 선택된 대화 주제/작업 유형 안내 배너를 헤더 중앙에서 입력창 위 중앙으로 옮겨 실제 작성 흐름에 더 가깝게 보이도록 조정했다.
- 업데이트: 2026-04-05 20:08 (KST)
- 좌측 사이드바에서 상단 필터와 중복돼 보이던 탭별 보조 필터 메뉴를 숨겨 필터가 하나만 보이도록 정리했다.
- 업데이트: 2026-04-05 22:34 (KST)
- AX Agent 좌측 사이드바에서 `주제 / 작업 유형 / 워크스페이스` 보조 필터 메뉴를 완전히 숨기고, 상단 공통 필터 드롭다운 하나만 남겨 중복 필터처럼 보이던 구조를 정리했다.
- 업데이트: 2026-04-05 22:39 (KST)
- Cowork/Code 하단 작업 폴더 바에서 불필요한 폴더 해제 `X` 버튼을 제거하고, 구분선과 권한/데이터 활용 버튼 정렬을 다시 맞춰 더 단정한 한 줄 흐름으로 정리했다.
- 업데이트: 2026-04-05 22:44 (KST)
- AX Agent 내부 설정에서 `호출 간격 최적화`, `의사결정 수준` 실행 방식 블록은 `코워크/코드` 공통 탭에만 남기고, `코워크``코드` 개별 탭에서는 숨겼다. 함께 레거시 `실행 전 계획` 행도 UI에서 제거했다.
- 업데이트: 2026-04-05 22:48 (KST)
- AX Agent 내부 설정의 `최대 컨텍스트 토큰` 프리셋에 `32K`, `128K` 중간값을 추가하고, 현재 저장값이 중간 구간에 있을 때도 가장 가까운 프리셋 카드가 자연스럽게 선택되도록 매핑을 보강했다.
- 업데이트: 2026-04-05 22:53 (KST)
- 하단 컨텍스트 토큰 라벨이 hover 후 남아 있던 문제를 수정하고, 토큰 심볼/팝업의 흐린 배경·그림자 느낌을 줄여 더 깔끔한 테두리 중심 스타일로 정리했다.
- 업데이트: 2026-04-05 22:57 (KST)
- 채팅/코워크 프리셋 카드 hover 시 설명 라벨을 `Collapsed/Visible`로 토글하던 방식을 없애고, 같은 자리에서 `Opacity`만 바꾸도록 조정해 카드가 깜빡이듯 다시 그려지던 현상을 줄였다.
- 업데이트: 2026-04-05 20:17 (KST)
- 런처의 클립보드 히스토리/클립보드 변환/순차 붙여넣기 실행 경로를 공통 포커스 복원 helper 기반으로 정리했다. 이전 활성 창 복원, 최소 대기, Ctrl+V 주입 순서를 [ForegroundPasteHelper.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/ForegroundPasteHelper.cs) 로 통일해 포커스가 원래 창으로 돌아가지 않아 붙여넣기가 누락되던 문제를 줄였다.
- 업데이트: 2026-04-05 20:17 (KST)
- AX Agent 메시지 transcript에서 사용자/assistant 행 여백을 더 끝단 기준으로 재정렬하고, `AX 에이전트` 라벨과 시간 표기 크기를 키워 메타 가독성을 보강했다. 반영 위치는 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 이다.
- 업데이트: 2026-04-05 23:02 (KST)
- AX Agent 새 대화 전환 경로를 실제 fresh conversation 생성 기준으로 수정했다. 기존에는 현재 대화를 저장한 뒤 LoadOrCreateConversation()을 다시 호출해 최신 저장 대화를 재로드하는 경로가 섞여 있어, 첫 화면이 잠깐 깜빡인 뒤 기존 대화가 그대로 남는 문제가 있었다. 이제 ClearCurrentConversation() 뒤에는 항상 새 대화를 생성하고, 대화별 설정/압축 메트릭/앱 상태를 새 conversation 기준으로 다시 동기화한 후 빈 transcript를 렌더한다.
- 업데이트: 2026-04-05 23:09 (KST)
- AX Agent 좌측 패널의 타이포를 전반적으로 키웠다. 헤더, 새 대화, 검색, 상단 필터, 탭별 보조 메뉴, 전체 삭제, 하단 사용자 영역 폰트와 아이콘 크기를 함께 조정하고, 사이드바 폭도 소폭 넓혀 더 이상 지나치게 작고 빽빽하게 보이지 않도록 정리했다. 대화 목록 카드 제목/시간/실행 메타도 함께 키워 실제 읽을 수 있는 수준으로 보정했다.
- 업데이트: 2026-04-05 23:15 (KST)
- AX Agent 좌측 패널과 본문 사이 경계선을 드래그해 사이드바 폭을 직접 조절할 수 있게 했다. 사이드바가 열려 있을 때만 splitter가 보이며, 사용자가 조절한 폭은 닫았다 다시 열어도 유지된다.
- 업데이트: 2026-04-05 23:22 (KST)
- AX Agent 상단 탭 헤더 높이와 탭 래퍼 패딩을 늘려 채팅 / Cowork / 코드 글자가 잘리던 문제를 보정했다. 또 사용자/assistant/streaming 메시지가 같은 transcript 폭 컨테이너를 공유하도록 바꿔 좌우 정렬 기준이 어긋나 보이던 문제를 정리했다.
- 업데이트: 2026-04-05 23:28 (KST)
- AX Agent 작업 폴더 선택 팝업의 최근 항목 스타일을 레퍼런스처럼 더 단정한 라운드 row 구조로 정리했다. 각 최근 폴더 항목은 개별 카드형 hover/선택 상태를 가지도록 바꾸고, `다른 폴더 선택`도 같은 시각 언어로 맞췄다. 팝업 외곽 radius, 그림자, 여백, 체크 위치, 텍스트 계층도 함께 조정해 더 자연스럽게 보이게 했다.
- 업데이트: 2026-04-05 23:33 (KST)
- AX Agent 빈 상태 상단 심볼과 작업 유형/대화 주제 프리셋 카드 아이콘 비율을 다시 맞췄다. 프리셋 카드 내부 아이콘과 `프리셋 추가` 심볼은 한 단계 줄이고, 상단 중앙 심볼과 제목도 같은 밀도로 재조정해 화면 균형을 정리했다.
- 업데이트: 2026-04-05 23:38 (KST)
- 하단 컨텍스트 토큰 hover 라벨이 마우스를 떼어도 남아 있던 문제를 보정했다. 닫힘 판정을 단순 `IsMouseOver` 대신 실제 마우스 좌표 기준으로 바꾸고, 팝업 내용도 `현재 사용량 + 자동 압축 기준`만 남기도록 단순화했다.
- 업데이트: 2026-04-05 23:44 (KST)
- 권한 모드 팝업에서 불필요한 `상세 정보` 섹션을 제거하고, 선택 가능한 모드 행만 남기는 단순 리스트형 UI로 정리했다. `계획 모드`는 제외하고 실제 사용하는 권한 요청/편집 자동 승인/권한 건너뛰기 중심으로 재정렬했다.
- 업데이트: 2026-04-05 23:49 (KST)
- AX Agent 상단 중앙 탭의 글자가 잘리지 않도록 탭 버튼 폰트/패딩/최소 크기와 헤더 래퍼 크기를 소폭 줄였다. 함께 빈 상태의 상단 아이콘과 제목/설명은 한 단계 키워 프리셋 카드 한 장과 시각 비율이 더 자연스럽게 맞도록 조정했다.
- 업데이트: 2026-04-05 23:55 (KST)
- 하단 컨텍스트 토큰 심볼의 파이 아크가 왼쪽에서 잘려 보이던 문제를 수정했다. 원형 아크 계산 기준을 실제 카드 크기에 맞게 조정하고, hover 라벨은 비상호작용 툴팁처럼 바꿔 카드에서 마우스를 벗어나면 더 깔끔하게 사라지도록 정리했다.
- 업데이트: 2026-04-06 00:01 (KST)
- 하단 컨텍스트 토큰 hover 라벨이 남아 있던 문제를 창 전체 마우스 이동/클릭/비활성화 기준으로 한 번 더 보강해 줄였다. 함께 전송 버튼은 크기와 아이콘 정렬을 다시 맞춰 작고 치우쳐 보이던 인상을 보정했다.
- 업데이트: 2026-04-06 00:08 (KST)
- AX Agent 내부 설정의 등록 모델 영역에서 상단 중복 선택 칩 UI를 제거하고, 하단 등록 모델 리스트만 남기도록 정리했다.
- 등록 모델 리스트의 `선택 / 편집 / 삭제` 액션은 기본 버튼 대신 팝업 친화적인 클릭 row 스타일로 바꿔 내부 설정 오버레이에서도 더 안정적으로 동작하게 맞췄다.
- 업데이트: 2026-04-06 00:14 (KST)
- AX Agent 상단 중앙 탭 그룹의 버튼 패딩과 최소 크기, 외곽 래퍼 높이를 소폭 줄여 탭이 지나치게 꽉 찬 느낌 없이 여유 있게 보이도록 정리했다.
- 업데이트: 2026-04-06 00:22 (KST)
- `claw-code`와 AX Agent 소스 구조를 다시 대조해 transcript renderer 분리, permission presentation catalog, tool result taxonomy, plan approval inline 마감, runtime summary 계층화, regression prompt ritual 고정까지 포함한 품질 향상 계획을 문서에 구체화했다.
- 업데이트: 2026-04-06 00:27 (KST)
- AX Agent 채팅창의 기본 시작 높이를 소폭 늘려, 처음 열었을 때 상하 여백과 프리셋 영역이 더 여유 있게 보이도록 조정했다.
- 업데이트: 2026-04-06 00:31 (KST)
- AX Agent 상단 중앙 탭 그룹의 버튼 padding, 최소 폭/높이와 바깥 pill 래퍼 높이를 한 단계 더 줄였다. 이제 탭 바깥 테두리 안쪽 여백이 더 살아 있어, 레퍼런스처럼 답답하지 않은 세그먼트 탭 비율로 보인다.
- 업데이트: 2026-04-06 00:38 (KST)
- vLLM 연결 시 등록 모델 alias/실제 모델 ID가 섞여 전달되던 경로를 보정했다. 내부 서비스(Ollama/vLLM)는 현재 선택값이 alias여도 등록 모델의 실제 모델명을 다시 찾아 요청 payload에 넣도록 정리했다.
- vLLM OpenAI-compatible 요청의 `max_tokens`는 서버 허용 범위를 넘지 않도록 자동 보정했다. 일반 대화와 도구 호출 모두 같은 상한 계산을 써 `invalid max_tokens` 오류가 덜 나도록 맞췄다.
- 업데이트: 2026-04-06 00:48 (KST)
- AX Agent 새 대화 전환 시 저장되지 않은 fresh conversation이 최신 저장 대화로 다시 교체되던 세션 복원 경로를 보정했다. [ChatSessionStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/ChatSessionStateService.cs) 의 `LoadOrCreateConversation()`이 기억된 대화 ID가 없는 상태에서도 현재 탭의 임시 fresh conversation을 우선 유지하도록 바꿔, 새 대화를 누르면 빈 화면이 잠깐 깜빡인 뒤 기존 대화가 다시 나타나던 문제를 막았다.
- 업데이트: 2026-04-06 01:00 (KST)
- AX Agent 메시지 hover 액션을 보강해 복사/편집/재생성/수정 후 재시도/좋아요·싫어요가 실제로 보이도록 정리했다. 사용자/assistant 메시지 액션 바를 완전 숨김 대신 기본 저강도 노출 + hover 강조 방식으로 바꿔, 마우스를 올렸을 때 액션이 안 보이던 문제를 줄였다.
- assistant 응답에는 응답시간과 총 토큰 수를 메시지 메타로 저장해 transcript 아래에 함께 표시되게 했다. 반영 위치는 [ChatModels.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/ChatModels.cs), [AxAgentExecutionEngine.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 이다.
- 업데이트: 2026-04-06 01:08 (KST)
- `claw-code``SessionPreview`/`PreviewBox` 흐름을 참고해 AX Agent 프리뷰도 같은 시각 언어로 정리했다. 새 파일 [AgentPreviewSurfaceFactory.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/AgentPreviewSurfaceFactory.cs)를 추가해 권한 프리뷰 카드의 제목/요약/본문 박스 구조를 공통화했다.
- [PermissionRequestWindow.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/PermissionRequestWindow.cs)의 일반 프리뷰, 파일 편집 프리뷰, 파일 생성 2열 프리뷰를 이 공통 surface로 맞춰 `preview box` 언어를 통일했다.
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 우측 파일 프리뷰 패널에는 파일명/경로/형식·크기 메타를 보여주는 헤더를 추가하고, 텍스트 프리뷰 본문도 별도 bordered preview box 안에 렌더되게 바꿨다.
- 업데이트: 2026-04-06 00:35 (KST)
- AX Agent 채팅/코워크 프리셋 카드에서 기본 ToolTip을 제거해 hover 시 깜빡이듯 반복되던 현상을 줄였습니다.
- 업데이트: 2026-04-06 00:42 (KST)
- 코드 탭 하단 Git 브랜치 버튼을 상태판 형태에서 단순한 브랜치 선택 버튼 형태로 정리했습니다.
- 업데이트: 2026-04-05 22:26 (KST)
- 코드 탭에서는 폴더 문서/파일을 기본 작업 전제로 삼도록 `폴더 내 데이터 활용`을 항상 `적극 활용(active)`으로 강제했다. 하단 채팅창의 데이터 활용 버튼은 코드 탭에서 숨기고, 내부 설정 오버레이의 같은 옵션도 코드 탭에서는 노출하지 않게 정리했다.
- 코워크/코드 탭의 사용자 메시지도 assistant 메시지와 같은 파일 경로 강조 렌더러를 쓰도록 바꿔, 폴더 하위 파일명이나 경로를 입력하면 채팅 본문에서 파란색으로 인식되게 맞췄다.
- 업데이트: 2026-04-05 22:29 (KST)
- AX Agent 채팅/코워크 프리셋을 선택할 때, 메시지도 입력도 없는 fresh conversation인데도 `새 대화`가 반복 생성되던 흐름을 보정했다. 이제 현재 대화가 이미 있으면 그 빈 대화에 프리셋만 적용하고, 실제 대화가 아예 없는 경우에만 새 대화를 만든다.
- 업데이트: 2026-04-05 22:32 (KST)
- AX Agent 내부 설정 개발자 탭의 `워크플로우 시각화`, `전체 호출·토큰 합계 표시`, `감사 로그` 토글이 누르자마자 꺼지는 문제를 수정했다. 각 토글의 변경 이벤트를 연결해 즉시 저장되도록 보정했다.
- 업데이트: 2026-04-05 22:36 (KST)
- AX Agent 내부 설정 `도구 훅 실행 타임아웃``등록된 훅` 영역에서 잘림이 보이던 레이아웃을 보정했다. 슬라이더/값 배지 컬럼 폭과 `훅 추가` 버튼 최소 폭을 넉넉히 늘려 텍스트와 컨트롤이 서로 밀리지 않게 정리했다.
- 업데이트: 2026-04-05 22:40 (KST)
- AX Agent 테마를 다시 점검해 기존 `Claw / Codex / Slate` 외에 `Nord`, `Ember` 2종을 추가했다. `Nord`는 차분한 블루그레이 업무형 톤, `Ember`는 따뜻한 앰버 문서 작업 톤으로 구성했다.
- 내부 설정 `테마 스타일` 카드에서도 새 프리셋을 바로 선택할 수 있게 연결했고, `system / light / dark` 모드 조합으로 같은 방식으로 적용되도록 정리했다.
- 업데이트: 2026-04-06 00:58 (KST)
- AX Agent transcript 품질 향상을 위해 렌더 책임을 실제로 분리했다. [ChatWindow.InlineInteractions.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.InlineInteractions.cs), [ChatWindow.TaskSummary.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.TaskSummary.cs)를 추가해 `의견 요청`, `계획 승인`, `작업 요약` UI 로직을 메인 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)에서 분리했다.
- [PermissionRequestPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs), [ToolResultPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ToolResultPresentationCatalog.cs)를 추가해 권한 요청과 도구 결과를 `명령/네트워크/파일`, `성공/실패/거부/취소` 기준으로 나눠 transcript badge에 재사용하도록 정리했다.
- [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs)에 `OperationalStatusPresentationState``GetOperationalStatusPresentation(...)`을 추가해 status/runtime summary 계산을 전용 요약 모델로 한 번 더 계층화했다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 상태선 갱신은 이제 이 presentation summary를 소비한다.
- 업데이트: 2026-04-06 01:12 (KST)
- AX Agent 코워크/코드의 `폴더 내 문서 활용`을 사용자 옵션에서 제거했다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml), [SettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SettingsWindow.xaml), [AgentSettingsWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/AgentSettingsWindow.xaml) 에서 하단 버튼, 내부 설정 행, 구형 설정창 항목을 걷어냈다.
- 런타임은 옵션이 아닌 자동 정책으로 유지한다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 채팅은 `none`, 코워크는 `passive`, 코드는 `active`를 자동 적용하고, 더 이상 오버레이 저장 시 `FolderDataUsage`를 사용자 선택값으로 저장하지 않는다.

View File

@@ -1,14 +0,0 @@
복원할 프로젝트를 확인하는 중...
E:\AX Copilot\src\AxCopilot\AxCopilot.csproj을(를) 1.41초 동안 복원했습니다.
E:\AX Copilot\src\AxCopilot.Tests\AxCopilot.Tests.csproj을(를) 1.41초 동안 복원했습니다.
복원할 4 프로젝트의 2이(가) 최신 상태입니다.
AxCopilot.SDK -> E:\AX Copilot\src\AxCopilot.SDK\bin\Debug\net8.0-windows\AxCopilot.SDK.dll
AxCopilot -> E:\AX Copilot\src\AxCopilot\bin\Debug\net8.0-windows\win-x64\AxCopilot.dll
AxKeyEncryptor -> E:\AX Copilot\src\AxKeyEncryptor\bin\Debug\net8.0-windows\AxKeyEncryptor.dll
AxCopilot.Tests -> E:\AX Copilot\src\AxCopilot.Tests\bin\Debug\net8.0-windows\AxCopilot.Tests.dll
빌드했습니다.
경고 0개
오류 0개
경과 시간: 00:00:07.34

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -7,7 +7,7 @@
"targets": {
".NETCoreApp,Version=v8.0": {},
".NETCoreApp,Version=v8.0/win-x64": {
"AxCopilot/1.7.2": {
"AxCopilot/0.7.3": {
"dependencies": {
"AxCopilot.SDK": "1.0.0",
"DocumentFormat.OpenXml": "3.2.0",
@@ -1161,7 +1161,7 @@
}
},
"libraries": {
"AxCopilot/1.7.2": {
"AxCopilot/0.7.3": {
"type": "project",
"serviceable": false,
"sha512": ""

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,4 @@
---
---
name: adr-writer
label: 아키텍처 결정 기록 (ADR)
description: 아키텍처 결정 사항을 표준 ADR 형식으로 문서화합니다.

View File

@@ -1,8 +1,14 @@
---
---
name: api-docs
label: API 문서 생성
description: 코드에서 API 엔드포인트를 분석하여 마크다운/HTML API 문서를 자동 생성합니다.
icon: \uE8A1
allowed-tools:
- folder_map
- grep
- file_read
- file_write
- search_codebase
tabs: code
---
@@ -16,9 +22,9 @@ tabs: code
## 작업 절차
1. `folder_map` — 프로젝트 구조 파악
2. `grep_tool` — API 엔드포인트 패턴 검색 (`[HttpGet]`, `@GetMapping`, `router.get`, `@app.route` 등)
2. `grep` — API 엔드포인트 패턴 검색 (`[HttpGet]`, `@GetMapping`, `router.get`, `@app.route` 등)
3. `file_read` — 컨트롤러/라우터 파일 분석
4. `grep_tool` — 요청/응답 모델 클래스 검색
4. `grep` — 요청/응답 모델 클래스 검색
5. `file_read` — 모델 구조 분석
6. `file_write` — API 문서 생성

View File

@@ -1,4 +1,4 @@
---
---
name: batch-rename
label: 파일 일괄 이름 변경
description: 패턴 매칭, 번호 붙이기, 날짜 추가 등 파일 이름을 일괄 변경합니다.

View File

@@ -1,4 +1,4 @@
---
---
name: changelog
label: 변경 이력 / 릴리즈 노트
description: Git 커밋 이력에서 자동으로 변경 이력과 릴리즈 노트를 생성합니다.

View File

@@ -1,8 +1,14 @@
---
---
name: code-scaffold
label: 코드 스캐폴딩
description: 프로젝트 구조를 분석하고 새 기능의 코드 뼈대를 자동 생성합니다.
icon: \uE943
allowed-tools:
- folder_map
- file_read
- grep
- file_write
- search_codebase
tabs: code
---
@@ -11,7 +17,7 @@ tabs: code
다음 도구를 사용하세요:
1. folder_map — 프로젝트 구조 파악
2. file_read — 기존 코드 패턴 분석
3. grep_tool — 코딩 컨벤션 확인
3. grep — 코딩 컨벤션 확인
4. file_write — 새 파일 생성
작업 순서:

View File

@@ -1,17 +1,22 @@
---
---
name: commit-review
label: 커밋 메시지 리뷰
description: Git 커밋 메시지를 Conventional Commits 기준으로 검토하고 개선을 제안합니다.
icon: \uE8CB
allowed-tools:
- process
- git_tool
- file_read
- text_summarize
tabs: code
---
작업 폴더의 최근 Git 커밋 메시지를 검토하고 개선안을 제시하세요.
## 작업 절차
1. `process_run``git log --oneline -20` 으로 최근 커밋 목록 확인
2. `process_run``git log --format="%H%n%s%n%b%n---" -10` 으로 상세 메시지 확인
3. `process_run``git diff HEAD~1` 으로 최신 커밋 변경 내용 확인 (필요 시)
1. `process``git log --oneline -20` 으로 최근 커밋 목록 확인
2. `process``git log --format="%H%n%s%n%b%n---" -10` 으로 상세 메시지 확인
3. `process``git diff HEAD~1` 으로 최신 커밋 변경 내용 확인 (필요 시)
4. 각 커밋을 Conventional Commits 기준으로 분석
5. 결과를 정리하여 출력

View File

@@ -1,4 +1,4 @@
---
---
name: compare
label: 비교 분석표
description: 2개 이상 항목의 비교 분석 매트릭스를 생성합니다.

View File

@@ -1,18 +1,30 @@
---
---
name: csv-to-xlsx
label: CSV → Excel 변환
description: CSV 파일을 서식이 완성된 Excel(.xlsx)로 변환합니다. 헤더 고정, 필터, 조건부 서식, 자동 열 너비를 적용합니다.
icon: \uE9F9
allowed-tools:
- folder_map
- file_read
- file_write
- process
- format_convert
- data_pivot
- template_render
tabs: cowork
requires: python
---
CSV 파일을 전문적인 서식이 적용된 Excel 파일로 변환하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 Python 스크립트 경로로 변환/서식 자동화를 수행하세요.
- Python 불가: `format_convert`로 CSV를 XLSX로 변환하고, `data_pivot`으로 핵심 요약 시트를 구성한 뒤 `file_write`로 사용 안내를 남기세요.
## 사전 준비
먼저 필요한 패키지가 설치되어 있는지 확인하고, 없으면 설치하세요:
```
process_run: pip install openpyxl pandas
process: pip install openpyxl pandas
```
## 작업 절차
@@ -25,7 +37,7 @@ process_run: pip install openpyxl pandas
- 조건부 서식 대상 컬럼 (숫자 컬럼 자동 감지)
- 시트 이름 (기본: 파일명)
4. **Python 스크립트 작성**: file_write로 변환 스크립트 생성
5. **스크립트 실행**: process_run으로 Python 스크립트 실행
5. **스크립트 실행**: `process`로 Python 스크립트 실행
6. **결과 확인**: 생성된 .xlsx 파일 경로와 요약 정보를 안내
## Python 스크립트 템플릿

View File

@@ -1,4 +1,4 @@
---
---
name: data-convert
label: 데이터 변환기
description: 데이터 포맷 간 변환, 정제, 필터링, 통계 요약을 수행합니다.

View File

@@ -1,25 +1,37 @@
---
---
name: data-visualize-adv
label: 고급 데이터 시각화
description: Python matplotlib/seaborn을 사용하여 히트맵, 산점도, 상관관계 등 고급 시각화를 생성합니다.
icon: \uE9D9
requires: python
allowed-tools:
- folder_map
- file_read
- file_write
- process
- data_pivot
- chart_create
- template_render
tabs: cowork
---
데이터를 고급 시각화 차트로 변환하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 matplotlib/seaborn 경로를 사용하세요.
- Python 불가: `data_pivot`으로 통계를 계산하고 `chart_create` + `template_render` + `file_write`로 HTML/SVG 리포트를 생성하세요.
## 사전 준비
필요한 패키지를 설치하세요:
```
process_run: pip install matplotlib seaborn pandas numpy
process: pip install matplotlib seaborn pandas numpy
```
## 작업 절차
1. **데이터 확인**: 사용자가 제공한 CSV/JSON/Excel 데이터 파일 확인
2. **데이터 로드**: pandas로 데이터 읽기
3. **Python 스크립트 작성**: file_write로 시각화 스크립트 생성
4. **스크립트 실행**: process_run으로 실행
4. **스크립트 실행**: `process`로 실행
5. **결과 확인**: 생성된 차트 이미지 경로를 사용자에게 안내
## 시각화 유형별 템플릿

View File

@@ -1,8 +1,15 @@
---
---
name: data-visualize
label: 데이터 시각화
description: CSV/Excel 데이터를 분석하여 차트가 포함된 HTML 보고서를 생성합니다.
icon: \uE9D9
allowed-tools:
- folder_map
- file_read
- file_write
- data_pivot
- chart_create
- template_render
tabs: cowork
---

View File

@@ -1,8 +1,14 @@
---
---
name: db-schema
label: DB 스키마 분석
description: 데이터베이스 스키마를 분석하여 ERD 다이어그램과 테이블 문서를 생성합니다.
icon: \uE968
allowed-tools:
- folder_map
- grep
- file_read
- file_write
- search_codebase
tabs: code
---
@@ -16,9 +22,9 @@ tabs: code
## 작업 절차
1. `folder_map` — 프로젝트 구조 파악
2. `grep_tool` — 엔티티/모델 클래스 검색 (`DbSet`, `@Entity`, `Model.define`, `CREATE TABLE` 등)
2. `grep` — 엔티티/모델 클래스 검색 (`DbSet`, `@Entity`, `Model.define`, `CREATE TABLE` 등)
3. `file_read` — 모델 파일 분석 (컬럼, 타입, 관계)
4. `grep_tool` — 인덱스, 제약 조건 검색
4. `grep` — 인덱스, 제약 조건 검색
5. `file_write` — 스키마 문서 + Mermaid ERD 생성
## 출력 형식

View File

@@ -1,4 +1,4 @@
---
---
name: dependency-audit
label: 의존성 분석
description: 프로젝트 의존성 그래프를 분석하고 보안 취약점, 라이선스, 업데이트 현황을 보고합니다.

View File

@@ -1,25 +1,35 @@
---
---
name: diagram-generator
label: 다이어그램 생성
description: Python matplotlib/graphviz를 사용하여 플로차트, 시퀀스, ER 다이어그램 등을 생성합니다.
icon: \uE9D9
requires: python
allowed-tools:
- file_read
- file_write
- process
- chart_create
- template_render
tabs: cowork
---
사용자의 요구에 맞는 다이어그램을 Python으로 생성하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 Graphviz/matplotlib 경로를 사용하세요.
- Python 불가: `template_render``file_write`로 Mermaid 기반 다이어그램 문서를 생성하고, 필요 시 `chart_create`로 대체 시각화를 제공하세요.
## 사전 준비
필요한 패키지를 설치하세요:
```
process_run: pip install matplotlib graphviz
process: pip install matplotlib graphviz
```
시스템에 Graphviz가 설치되어 있어야 합니다 (https://graphviz.org/download/).
## 작업 절차
1. **요구사항 파악**: 다이어그램 유형, 노드/관계, 스타일 확인
2. **Python 스크립트 작성**: file_write로 .py 파일 생성
3. **스크립트 실행**: process_run으로 Python 스크립트 실행
3. **스크립트 실행**: `process`로 Python 스크립트 실행
4. **결과 확인**: 생성된 이미지 파일 경로를 사용자에게 안내
## 다이어그램 유형별 템플릿

View File

@@ -1,18 +1,30 @@
---
---
name: docx-creator
label: Word 문서 생성
description: Python을 사용하여 전문적인 Word 문서(.docx)를 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다.
icon: \uE8A5
requires: python
allowed-tools:
- folder_map
- document_read
- file_read
- file_write
- process
- document_assemble
- format_convert
tabs: cowork
---
사용자의 요구에 맞는 전문적인 Word 문서를 Python으로 생성하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 python-docx 경로를 사용하세요.
- Python 불가: `document_assemble`로 문서 본문을 구성하고 `format_convert`로 docx 산출을 시도하세요. 실패 시 Markdown/HTML 결과와 변환 가이드를 함께 제공하세요.
## 사전 준비
먼저 python-docx 패키지가 설치되어 있는지 확인하고, 없으면 설치하세요:
```
process_run: pip install python-docx
process: pip install python-docx
```
## 양식 활용 (템플릿 모드)
@@ -39,7 +51,7 @@ process_run: pip install python-docx
1. **요구사항 파악**: 사용자가 원하는 문서의 종류, 구조, 내용을 확인
2. **양식 확인**: folder_map으로 작업 폴더에 양식 .docx 파일이 있는지 확인
3. **Python 스크립트 작성**: file_write로 .py 파일 생성
4. **스크립트 실행**: process_run으로 Python 스크립트 실행
4. **스크립트 실행**: `process`로 Python 스크립트 실행
5. **결과 확인**: 생성된 .docx 파일 경로를 사용자에게 안내
## Python 스크립트 템플릿

View File

@@ -1,4 +1,4 @@
---
---
name: email-draft
label: 비즈니스 이메일 작성
description: 상황과 톤에 맞는 전문적인 비즈니스 이메일 초안을 생성합니다.

View File

@@ -1,4 +1,4 @@
---
---
name: env-setup
label: 프로젝트 환경 설정
description: .gitignore, requirements.txt, .editorconfig 등 프로젝트 환경 설정 파일을 자동 생성합니다.
@@ -8,7 +8,7 @@ allowed-tools:
- folder_map
- file_read
- file_write
- process_run
- process
---
프로젝트 유형에 맞는 환경 설정 파일을 자동으로 생성하세요.

View File

@@ -1,4 +1,4 @@
---
---
name: gen-test
label: 테스트 생성기
description: 지정 파일의 단위 테스트를 자동 생성하고 실행하여 커버리지를 분석합니다.

View File

@@ -1,24 +1,36 @@
---
---
name: image-processor
label: 이미지 처리
description: Python Pillow를 사용하여 이미지 리사이즈, 크롭, 워터마크, 포맷 변환을 수행합니다.
icon: \uEB9F
requires: python
allowed-tools:
- folder_map
- file_read
- file_write
- process
- image_analyze
- format_convert
- file_manage
tabs: cowork
---
사용자의 요구에 맞게 이미지를 처리하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 Pillow 경로를 사용하세요.
- Python 불가: `image_analyze`로 이미지 상태를 점검하고, `file_manage`/`format_convert`/`file_write`로 가능한 변환 및 수동 처리 지침을 제공하세요.
## 사전 준비
먼저 Pillow 패키지가 설치되어 있<><EC9E88>지 확인하고, 없으면 설<><EC84A4><EFBFBD>하세요:
```
process_run: pip install Pillow
process: pip install Pillow
```
## 작업 절<><ECA088>
1. **요구사항 파악**: 처리할 이미지 파일과 원하는 작업 확인
2. **Python 스크립트 작성**: file_write로 .py 파일 생성
3. **스크립트 실행**: process_run으로 Python 스크립<ED81AC><EBA6BD> 실행
3. **스크립트 실행**: `process`로 Python 스크립<ED81AC><EBA6BD> 실행
4. **결과 확인**: 처리된 이미지 파일 경로를 사용자에게 안내
## 지원 기능

View File

@@ -1,4 +1,4 @@
---
---
name: impact
label: 변경 영향 분석
description: 코드 변경 시 영향받는 파일, 함수, 테스트를 식별합니다.

View File

@@ -1,4 +1,4 @@
---
---
name: json-schema
label: JSON/YAML 스키마 도구
description: JSON 또는 YAML 데이터에서 스키마를 생성하고, 데이터의 유효성을 검증합니다.

View File

@@ -1,4 +1,4 @@
---
---
name: log-analyze
label: 로그 분석기
description: 로그 파일의 패턴을 분석하고 에러를 요약하며 타임라인을 시각화합니다.

View File

@@ -1,18 +1,28 @@
---
---
name: markdown-to-doc
label: Markdown → 문서 변환
description: Markdown 파일을 서식이 적용된 Word(.docx) 또는 PDF 문서로 변환합니다.
icon: \uE8A5
allowed-tools:
- file_read
- file_write
- process
- format_convert
- document_assemble
tabs: cowork
requires: python
---
Markdown 파일을 전문적인 Word 또는 PDF 문서로 변환하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 python-docx 경로를 사용하세요.
- Python 불가: `format_convert`를 우선 사용해 Markdown을 docx/pdf로 변환하고, 변환 제한 시 `file_write`로 보정 가이드를 생성하세요.
## 사전 준비
먼저 필요한 패키지가 설치되어 있는지 확인하고, 없으면 설치하세요:
```
process_run: pip install python-docx markdown
process: pip install python-docx markdown
```
## 작업 절차
@@ -24,7 +34,7 @@ process_run: pip install python-docx markdown
- 여백, 페이지 크기 설정
- 머리글/바닥글 포함 여부
3. **Python 스크립트 작성**: file_write로 변환 스크립트 생성
4. **스크립트 실행**: process_run으로 Python 스크립트 실행
4. **스크립트 실행**: `process`로 Python 스크립트 실행
5. **결과 확인**: 생성된 문서 파일 경로와 페이지 수를 안내
## 스타일 매핑

View File

@@ -1,8 +1,13 @@
---
---
name: meeting-minutes
label: 회의록 정리
description: 회의 내용을 체계적으로 정리하여 회의록을 생성합니다.
icon: \uE771
allowed-tools:
- file_read
- file_write
- text_summarize
- template_render
tabs: cowork
---

View File

@@ -1,13 +1,23 @@
---
---
name: ocr-extract
label: OCR 텍스트 추출
description: Python pytesseract를 사용하여 이미지/스캔 문서에서 텍스트를 추출합니다.
icon: \uE8D4
requires: python
allowed-tools:
- file_read
- file_write
- process
- image_analyze
- text_summarize
tabs: cowork
---
이미지 또는 스캔된 문서에서 텍스트를 추출하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 pytesseract 경로를 사용하세요.
- Python 불가: `image_analyze`로 텍스트 후보를 추출하고 `text_summarize` + `file_write`로 정제본을 제공하세요.
## 사전 준비
1. Tesseract OCR 엔진이 시스템에 설치되어 있어야 합니다.
@@ -15,7 +25,7 @@ tabs: cowork
- 한국어 지원: 설치 시 "Korean" 언어 데이터 선택
2. Python 패키지 설치:
```
process_run: pip install pytesseract Pillow
process: pip install pytesseract Pillow
```
## 작업 절차

View File

@@ -1,8 +1,13 @@
---
---
name: paper-review
label: 논문 분석
description: 논문 또는 기술 문서를 체계적으로 분석하고 핵심 내용을 정리합니다.
icon: \uE736
allowed-tools:
- document_read
- file_read
- file_write
- text_summarize
tabs: cowork
---

View File

@@ -1,18 +1,29 @@
---
---
name: pdf-processor
label: PDF 처리
description: Python을 사용하여 PDF에서 텍스트/표를 추출하거나 PDF를 생성합니다.
icon: \uE9F9
requires: python
allowed-tools:
- folder_map
- document_read
- file_read
- file_write
- process
- format_convert
tabs: cowork
---
PDF 파일을 읽거나 새 PDF를 생성하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 pypdf/pdfplumber/reportlab 경로를 사용하세요.
- Python 불가: `document_read`로 텍스트/구조를 추출하고, 생성 작업은 `format_convert` + `file_write` 기반으로 대체하세요.
## 사전 준비
필요한 패키지를 확인하고 설치하세요:
```
process_run: pip install pypdf pdfplumber reportlab
process: pip install pypdf pdfplumber reportlab
```
## 작업 절차
@@ -20,13 +31,13 @@ process_run: pip install pypdf pdfplumber reportlab
### PDF 텍스트 추출
1. **파일 확인**: folder_map으로 PDF 파일 위치 확인
2. **추출 스크립트 작성**: file_write로 Python 스크립트 생성
3. **실행**: process_run으로 실행
3. **실행**: `process`로 실행
4. **결과 전달**: 추출된 텍스트를 사용자에게 전달
### PDF 생성
1. **내용 파악**: 사용자가 원하는 문서 내용 확인
2. **생성 스크립트 작성**: file_write로 Python 스크립트 생성
3. **실행 및 확인**: process_run으로 실행
3. **실행 및 확인**: `process`로 실행
## 텍스트 추출 템플릿
```python

View File

@@ -1,4 +1,4 @@
---
---
name: perf-audit
label: 성능 감사
description: 코드 복잡도, 성능 병목, 메모리 이슈를 분석하고 최적화 방안을 제시합니다.

View File

@@ -1,18 +1,30 @@
---
---
name: pptx-creator
label: PPT 프레젠테이션 생성
description: Python을 사용하여 전문적인 PowerPoint 프레젠테이션을 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다.
icon: \uE7BE
requires: python
allowed-tools:
- folder_map
- document_read
- file_read
- file_write
- process
- pptx_create
- template_render
tabs: cowork
---
사용자의 요구에 맞는 PowerPoint 프레젠테이션을 Python으로 생성하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 python-pptx 경로를 사용하세요.
- Python 불가: `pptx_create`로 슬라이드 초안을 생성하고 `template_render` + `file_write`로 발표자료 구조를 보강하세요.
## 사전 준비
필요한 패키지를 확인하고 설치하세요:
```
process_run: pip install python-pptx
process: pip install python-pptx
```
## 양식 활용 (마스터 슬라이드 템플릿)
@@ -45,7 +57,7 @@ process_run: pip install python-pptx
1. **요구사항 파악**: 발표 주제, 슬라이드 수, 스타일 확인
2. **양식 확인**: folder_map으로 작업 폴더에 양식 .pptx 파일이 있는지 확인
3. **스크립트 작성**: file_write로 Python 스크립트 생성
4. **실행**: process_run으로 스크립트 실행
4. **실행**: `process`로 스크립트 실행
5. **결과 안내**: 생성된 .pptx 파일 경로를 사용자에게 전달
## 스크립트 템플릿

View File

@@ -1,4 +1,4 @@
---
---
name: prd-generator
label: 요구사항 정의서 (PRD)
description: 제품 요구사항 정의서, 유저 스토리, 수용 기준을 체계적으로 생성합니다.

View File

@@ -1,4 +1,4 @@
---
---
name: refactor
label: 리팩토링 가이드
description: 코드베이스를 분석하여 리팩토링 포인트를 식별하고 실행 계획을 생성합니다.
@@ -11,6 +11,13 @@ allowed-tools:
- folder_map
- lsp_code_intel
tabs: code
# hooks / hook_filters 예시 (옵션):
# hooks:
# file_edit:
# pre:
# - lint-pre
# post: verify-post
# hook_filters: lint-pre@pre@file_edit, verify-post@post@*
---
코드베이스를 분석하여 리팩토링이 필요한 부분을 식별하고 개선 계획을 수립하세요.

View File

@@ -1,4 +1,4 @@
---
---
name: regex-helper
label: 정규식 도우미
description: 정규식 패턴을 생성하고, 기존 패턴을 해석하며, 테스트 케이스로 검증합니다.

View File

@@ -1,4 +1,4 @@
---
---
name: release-note
label: 릴리즈 노트 생성
description: 비개발자 대상의 사용자 친화적인 릴리즈 노트를 자동 생성합니다.

View File

@@ -1,8 +1,16 @@
---
---
name: report-writer
label: 보고서 작성
description: 작업 폴더의 데이터를 분석하여 체계적인 업무 보고서를 생성합<EC84B1><ED95A9>다.
icon: \uE9F9
allowed-tools:
- folder_map
- file_read
- file_write
- data_pivot
- chart_create
- template_render
- text_summarize
tabs: cowork
---

View File

@@ -1,4 +1,4 @@
---
---
name: security-audit
label: 보안 코드 감사
description: 코드베이스의 보안 취약점을 점검하고 OWASP 기반 보안 보고서를 생성합니다.

View File

@@ -1,4 +1,4 @@
---
---
name: sql-report
label: SQL 리포트
description: DB 쿼리를 실행하고 결과를 차트화하여 HTML/Excel 보고서로 생성합니다.

View File

@@ -1,4 +1,4 @@
---
---
name: translate
label: 번역 + 교정
description: 문서나 텍스트를 번역하고 전문 용어를 보존하며 교정합니다.

View File

@@ -1,4 +1,4 @@
---
---
name: weekly-report
label: 주간 보고서
description: 작업 폴더의 변경 이력을 기반으로 자동 주간보고 초안을 생성합니다.

View File

@@ -1,18 +1,31 @@
---
---
name: xlsx-analyzer
label: Excel 데이터 분석
description: Python을 사용하여 Excel/CSV 데이터를 분석하고 보고서를 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다.
icon: \uE9F9
requires: python
allowed-tools:
- folder_map
- document_read
- file_read
- file_write
- process
- data_pivot
- chart_create
- template_render
tabs: cowork
---
작업 폴더의 Excel 또는 CSV 데이터를 Python으로 분석하세요.
## 실행 경로 선택 (Python 가능/불가)
- 먼저 `process``python --version`을 확인하세요.
- Python 가능: 기존 pandas/openpyxl 경로를 사용하세요.
- Python 불가: `data_pivot`으로 분석 요약을 만들고 `chart_create` + `file_write`로 결과 리포트를 생성하세요.
## 사전 준비
필요한 패키지를 확인하고 설치하세요:
```
process_run: pip install pandas openpyxl
process: pip install pandas openpyxl
```
## 양식 활용 (Excel 보고서 템플릿)
@@ -41,7 +54,7 @@ process_run: pip install pandas openpyxl
2. **양식 확인**: 양식 .xlsx 파일이 있는지 확인 (데이터 파일과 양식 파일 구분)
3. **데이터 읽기**: file_read 또는 document_read로 파일 구조 파악
4. **분석 스크립트 작성**: file_write로 Python 분석 스크립트 생성
5. **실행**: process_run으로 스크립트 실행
5. **실행**: `process`로 스크립트 실행
6. **결과 보고**: 분석 결과를 사용자에게 정리하여 전달
## 분석 스크립트 템플릿

View File

@@ -1,8 +1,16 @@
---
---
name: yield-analysis
label: 수율 분석
description: 제조/연구 데이터의 수율을 분석하고 개선 포인트를 도출합니다.
icon: \uE9D2
allowed-tools:
- folder_map
- file_read
- file_write
- data_pivot
- chart_create
- text_summarize
- template_render
tabs: cowork
---

View File

@@ -1 +1 @@
[역할] 당신은 회사 업무의 도움을 주는 매우 유능한 비서입니다. 말투는 정중하게 하며, 욕을 해서는 안됩니다.
[역할] 당신은 회사 업무의 도움을 주는 매우 유능한 비서입니다. 말투는 정중하게 하며, 욕을 해서는 안됩니다.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,164 +0,0 @@
E:\AX Copilot\src\AxCopilot\Views\TrayContextMenu.cs 55踰덉㎏ 以꾩엯?덈떎.
var menu = new SpacedContextMenuStrip(new Padding(20, 16, 20, 16));
// 醫? ?? ?? ??
?댁젣 ?꾩껜?곸씤 蹂닿퀬瑜??뺣━?섍쿋?듬땲??
---
# AX Copilot 怨좊룄??怨꾪쉷 醫낇빀 蹂닿퀬
**?꾩옱 踰꾩쟾**: v1.5.2 | **蹂닿퀬??*: 2026-03-29
---
## 1. ?꾩껜 援ъ“ ?붿빟
| ?곸뿭 | ?꾨즺 Phase | 李④린 Phase | 臾몄꽌 |
|------|-----------|-----------|------|
| **AX Agent** (?€???쒕퉬?? | Phase 2.5~13 (紐⑤몢 ?꾨즺) | Phase 14 (李④린) | `AGENT_ROADMAP.md` |
| **AX Commander** (?곗쿂) | Phase L1 (?꾨즺) | Phase L2, L3 (李④린) | `LAUNCHER_ROADMAP.md` |
| **醫낇빀** | ??| v1.5.0~v2.0 | `NEXT_ROADMAP.html` |
---
## 2. AX Agent ???꾨즺 ?대젰 (Phase 2.5 ~ Phase 13)
### Phase 8 (v1.5.0) ??寃쎌웳 踰ㅼ튂留덊겕 湲곕컲 ??
MCP ?대씪?댁뼵?? 紐⑤뜽 ?대갚, ?€??遺꾧린, ?ㅽ뵆由?酉? 而ㅻ㎤???붾젅?? ?좏겙 愿€由? ?먯쑉?? 媛쒕컻??紐⑤뱶, 蹂댁븞 媛먯궗
### Phase 9 (v1.5.0) ??李⑥꽭?€ 怨좊룄????
LSP ?곕룞 肄붾뱶 ?명뀛由ъ쟾?? 蹂묐젹 ?먯씠?꾪듃(?쒕툕?먯씠?꾪듃), TF-IDF ?쒕㎤??寃€?? ?먮룞 ?뚯뒪??猷⑦봽, ?대깽???몃━嫄? PDF ?대낫?닿린, ?ㅼ떆媛?diff 酉곗뼱
### Phase 10 (v1.5.0) ??吏€?ν삎 ?먯씠?꾪듃 ??
Auto Router ?먮룞 紐⑤뜽 ?좏깮, ?먯씠?꾪듃 硫붾え由??곸냽 ?숈뒿), 硫€?곕え??Vision), 肄붾뱶 寃€??媛쒖꽑(SQLite ?곸냽), ?먯씠?꾪듃 ??
### Phase 11 (v1.5.0) ???앺깭怨??뺤옣 ??
?ㅽ궗 ?쒖뒪???щ옒??紐낅졊), AI 肄붾뱶 由щ럭 ?먮룞?? ?쒕옒洹??쒕∼ AI 泥섎━
### Phase 12 (v1.5.1~1.5.2) ???ㅽ궗/而ㅻ꽖??怨좊룄????(?쇰?)
- ???고????섏〈 ?ㅽ궗 (Python/Node 媛먯? + 4醫?怨좉툒 ?ㅽ궗)
- ???뚰겕?뚮줈??遺꾩꽍湲?(?ㅼ떆媛??€?꾨씪???쒓컖??
- 燧??꾧뎄/而ㅻ꽖??愿€由?UI (怨꾪쉷)
- 燧?SKILL.md ?쒖? ?명솚 (怨꾪쉷)
### Phase 13 (v1.5.2) ???ㅽ궗 ?앺깭怨?+ 遺꾩꽍 ??
?ㅽ궗 媛ㅻ윭由?UI, ?쒓컖???몄쭛湲? 媛€?몄삤湲??대낫?닿린, ?ㅽ뻾 ?듦퀎 ?€?쒕낫?? AgentLogLevel 梨꾪똿 ?곕룞
---
## 3. AX Agent ??李④린 怨꾪쉷: Phase 14 (v1.5.4+)
> **諛⑺뼢**: ???먯씠?꾪듃 ?꾧뎄 25醫???40醫? ?뺣? ??寃€利앸맂 ?몃? ?ㅽ궗 12醫?踰덈뱾
### 14-A. ?곗씠??泥섎━ ?꾧뎄 (5醫?
| ?곗꽑?쒖쐞 | ?꾧뎄 |
|----------|------|
| ?믪쓬 | `json_tool` (?뚯떛/寃€利?jq荑쇰━), `regex_tool` (?뺢퇋???뚯뒪??異붿텧) |
| 以묎컙 | `diff_tool` (?뚯씪 鍮꾧탳) |
| ??쓬 | `base64_tool`, `hash_tool` |
### 14-B. ?쒖뒪???섍꼍 ?꾧뎄 (6醫?
| ?곗꽑?쒖쐞 | ?꾧뎄 |
|----------|------|
| ?믪쓬 | `clipboard_tool` (?대┰蹂대뱶 ?쎄린/?곌린), `notify_tool` (Windows ?뚮┝) |
| 以묎컙 | `env_tool` (?섍꼍蹂€??, `zip_tool` (?뺤텞) |
| ??쓬 | `log_search`, `datetime_tool` |
### 14-C. ?ㅽ듃?뚰겕/API ?꾧뎄 (3醫?
| ?곗꽑?쒖쐞 | ?꾧뎄 |
|----------|------|
| ?믪쓬 | `http_tool` (?щ궡 API ?몄텧), `sql_tool` (SQLite 荑쇰━) |
| ??쓬 | `network_tool` (?ы듃/DNS/ping) |
### 14-D. 肄붾뱶 ?덉쭏 ?꾧뎄 (4醫?
| ?곗꽑?쒖쐞 | ?꾧뎄 |
|----------|------|
| ?믪쓬 | `snippet_runner` (肄붾뱶 利됱떆 ?ㅽ뻾) |
| 以묎컙 | `template_tool` (蹂댁씪?ы뵆?덉씠??, `complexity_tool` (蹂듭옟??遺꾩꽍) |
| ??쓬 | `dependency_tool` (?섏〈???몃━) |
### 14-E. UX 媛쒖꽑
| ?곹깭 | ??ぉ |
|------|------|
| ???꾨즺 | ?щ옒??移??쒖떆, ?앹뾽 ?섏씠吏?|
| 李④린 | compact 紐낅졊??(`/init`, `/ctx`, `/pr` ??, 利먭꺼李얘린, ?ㅽ궗 ?먮룞 異붿쿇 |
### 14-F. ?몃? 寃€利??ㅽ궗 ?댁옣 踰덈뱾 (12醫?
- **?쇰컲 (8醫?**: code-scaffold, meeting-minutes, paper-review, data-visualize, report-writer, api-docs, db-schema, commit-review
- **?고????꾩슂 (4醫?**: docx-creator(python), xlsx-analyzer(python), pdf-processor(python), pptx-creator(python)
- **?ш린 ?곹뼢**: ~120KB (臾댁떆 媛€??
### 援ы쁽 ?쒖꽌
1. **14-F** (利됱떆) ??2. **14-A+B** (1李? ??3. **14-C+D** (2李? ??4. **14-E** (3李?
---
## 4. AX Commander (?곗쿂) ???꾨즺 諛?李④린 怨꾪쉷
### Phase L1 (v1.5.0) ???꾨즺
TextAction, Everything, 22 ?덉씠?꾩썐 ?€?쇰쭅, ?뚮윭洹몄씤 zip ?ㅼ튂, ??諛? ?€?붿긽???듯빀, ?대┰蹂대뱶 ?€/移댄뀒怨좊━, ???뺤옣, ?€??怨듦컙 愿€由?
### Phase L2 (v1.5.3) ???대┰蹂대뱶 怨좊룄??+ UX 媛쒖꽑
| ?곗꽑?쒖쐞 | 湲곕뒫 |
|----------|------|
| **?믪쓬** | L2-1 ?대?吏€ ?먮낯 ?댁긽??蹂댁〈 (?꾩옱 異뺤냼 ?€?????먮낯 DPAPI ?€?? |
| **?믪쓬** | L2-2 Shift+Enter ?ㅽ뻾 ???먮룞 ?대┰蹂대뱶 蹂듭궗 |
| 以묎컙 | L2-3 ?대?吏€ 誘몃━蹂닿린 李?(?뺣?/異뺤냼) |
| 以묎컙 | L2-4 OCR 湲곕컲 ?대?吏€ 寃€??(Windows OCR API 濡쒖뺄) |
| ??쓬 | L2-5 ?대┰蹂대뱶 ??ぉ 蹂묓빀 |
### Phase L3 (v1.6.0+) ??李⑥꽭?€ ?곗쿂
| ?곗꽑?쒖쐞 | 湲곕뒫 |
|----------|------|
| ?믪쓬 | ?뚮윭洹몄씤 ?몄빋 媛ㅻ윭由?(?щ궡 NAS/Git) |
| 以묎컙 | ??寃€??AI ?붿빟, ?뚯씪 ?쒓렇, ?ㅽ봽?쇱씤 AI (ONNX + phi-3) |
| ??쓬 | ?ㅼ쨷 ?붿뒪?뚮젅?? ?뚮┝ ?쇳꽣, ?뚯꽦 ?낅젰, 誘몃땲 ?꾩젽 |
---
## 5. ?꾩옱 ?먯씠?꾪듃 ?꾧뎄 ?꾪솴 (25醫?
| 移댄뀒怨좊━ | ?꾧뎄 |
|----------|------|
| ?뚯씪 | `file_read`, `file_write`, `file_list`, `file_search` |
| 肄붾뱶 遺꾩꽍 | `grep_tool`, `search_codebase`, `lsp_goto_definition`, `lsp_find_references`, `lsp_symbols` |
| ?ㅽ뻾 | `process_run`, `build_run`, `git_tool` |
| ?먯씠?꾪듃 | `spawn_agent`, `wait_agents`, `skill_manager` |
| ?뚯뒪??| `test_generate`, `test_run`, `test_analyze` |
| 肄붾뱶 由щ럭 | `code_review` |
| 湲고? | `dev_env_detect`, `mcp_tool`, `hook_execute`, `event_trigger` ??|
**Phase 14 紐⑺몴**: 18醫?異붽? ??**43醫?* (?ㅻТ ?묒뾽 80% ?댁긽 ?먯쑉 ?섑뻾)
---
## 6. 怨꾪쉷 ?섎┰ ?먯튃 (Sigmoid.md 짠8)
| 愿€??| 寃€???ы빆 |
|------|----------|
| 寃쎌웳 ?쒕퉬??| Claw Code, Cursor, Windsurf, Copilot, Raycast 理쒖떊 湲곕뒫 |
| 理쒖떊 ?쇰Ц | SWE-Agent v2, CodeAct, Reflexion, Agentic Coding Survey |
| ?낃퀎 ?쒖? | MCP, SKILL.md, LSP, DAP |
| ?щ궡 ?섍꼍 | ?ㅽ듃?뚰겕 ?쒗븳, 蹂댁븞, Python/Node ?ㅼ튂 ?꾪솴 |
| ???ш린 | ?몄뒪?⑤윭 **150MB ?댄븯** ?좎? (?꾩옱 ~80MB) |
蹂€寃??뚯씪 5媛?
?뚯씪 蹂€寃?
Models/AppSettings.cs EnableMultiPassDocument 湲곕낯媛?true ??false
ViewModels/SettingsViewModel.cs ?꾨줈?쇳떚 ?좎뼵 + Load/Save 留ㅽ븨 異붽?
Views/SettingsWindow.xaml 肄붿썙????뿉 "怨좏뭹吏?臾몄꽌 ?앹꽦" ToggleSwitch 異붽?
Services/Agent/DocumentPlannerTool.cs ?ㅼ젙 OFF ??document_plan ?꾧뎄 鍮꾪솢????LLM??html_create/docx_create ?ъ슜 ?덈궡
Services/Agent/DocumentAssemblerTool.cs ?ㅼ젙 OFF ??document_assemble ?꾧뎄 鍮꾪솢?????숈씪 ?덈궡
?숈옉:
OFF (湲곕낯媛?: document_plan, document_assemble ?몄텧 ???ㅽ뙣 硫붿떆吏€ 諛섑솚 ??LLM??湲곗〈 html_create/docx_create濡???踰덉뿉 ?앹꽦 (v1.5.x ?댁쟾 諛⑹떇)
ON: 硫€?고뙣??臾몄꽌 ?앹꽦 ?꾩껜 ?ъ슜 媛€??(媛쒖슂?믪꽮?섎퀎 ?곸꽭?믪“由?

File diff suppressed because it is too large Load Diff

View File

@@ -1,27 +1,27 @@
# AX Agent 로드맵 (전면 재작성)
# AX Agent 로드맵 (전면 재작성)
## 1. 보존 이력 (요약만 유지)
- v1.5.0: MCP 연동, 모델 폴백, 대화 분기, 프리뷰/토큰 관리, 에이전트 루프 강화.
- v1.5.1: 고급 스킬 확장, 워크플로우 분석기, 런타임 감지.
- v1.6.0: 멀티패스 문서 생성, 데이터 피벗/템플릿/이미지 분석 계열 도구 확장.
- v1.7.0: Plan Mode, 병렬 도구 실행, 프로젝트 규칙 주입, 테스트 루프 자동화.
- v1.7.1: 도구 실행 후 검증 게이트 강화, 피드백 컨텍스트 개선.
- v1.7.2: 컨텍스트 압축/복원 안정화, UX/성능 보완.
- v0.5.0: MCP 연동, 모델 폴백, 대화 분기, 프리뷰/토큰 관리, 에이전트 루프 강화.
- v0.5.1: 고급 스킬 확장, 워크플로우 분석기, 런타임 감지.
- v0.6.0: 멀티패스 문서 생성, 데이터 피벗/템플릿/이미지 분석 계열 도구 확장.
- v0.7.0: Plan Mode, 병렬 도구 실행, 프로젝트 규칙 주입, 테스트 루프 자동화.
- v0.7.1: 도구 실행 후 검증 게이트 강화, 피드백 컨텍스트 개선.
- v0.7.2: 컨텍스트 압축/복원 안정화, UX/성능 보완.
## 2. 재작성 기준
- 기준 레퍼런스: `claw-code/claw-code-f5a40b86dede580f6543bf8926c9af017eea9409/src`.
- 목표: 동작 순서, 예외/검증 흐름, 세션 내구성에서 동일 품질 달성.
- 원칙: AX 코드 스타일로 재구성(표현/구조 변경), 기능적 동등성 유지.
## 3. 2026 실행 계획 (v1.7.3 ~ v1.8.0)
## 3. 2026 실행 계획 (v0.7.3 ~ v0.8.0)
| Phase | 참조 대상 (`claw-code`) | AX 적용 위치 | 완료 조건 | 품질 판정 시나리오 |
|---|---|---|---|---|
| A (v1.7.3) Hook/Permission 계약 고도화 | `src/utils/hooks.ts`, `src/utils/hooks/hookEvents.ts`, `src/utils/permissions/PermissionUpdate.ts`, `src/utils/permissions/permissionSetup.ts` | `src/AxCopilot/Services/Agent/AgentHookRunner.cs`, `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Models/AppSettings.cs`, `src/AxCopilot/ViewModels/SettingsViewModel.cs`, `src/AxCopilot/Views/SettingsWindow.xaml` | Hook JSON 출력(`updatedInput`, `updatedPermissions`, `additionalContext`) 반영 완료. Plain text 훅 하위호환 유지. 훅 실패 비차단 유지. | Pre-hook 입력 변형 적용 시 도구 입력이 실제 변경되는지 검증. 권한 업데이트 후 동일 run 내 권한 판정이 즉시 반영되는지 검증. |
| B (v1.7.4) Plan/Run 상태 내구성 강화 | `src/utils/plans.ts`, `src/utils/sessionStorage.ts` | `src/AxCopilot/Services/ChatSessionStateService.cs`, `src/AxCopilot/Services/TaskRunService.cs`, `src/AxCopilot/Services/TaskRunStore.cs`, `src/AxCopilot/Views/ChatWindow.xaml.cs` | Plan 단계 승인/수정 이력 영속화. 앱 재시작 후 run 재개 시 마지막 실행 지점 정확 복원. 중복 실행/중복 이벤트 0건. | 실행 중 앱 종료 → 재실행 → 같은 탭/대화에서 run 상태와 최근 실행 이력이 일치하는지 검증. |
| C (v1.7.5) 세션/이벤트 로그 정규화 | `src/utils/sessionStorage.ts`(이벤트 기록/복원 규약), `src/utils/hooks/hookEvents.ts` | `src/AxCopilot/Models/ChatModels.cs`, `src/AxCopilot/Services/ChatSessionStateService.cs`, `src/AxCopilot/Services/AppStateService.cs` | 이벤트 스키마 정리(도구 호출/결과/권한/훅/요약). replay 시 순서 불일치 0건. run 단위 요약 리포트 생성 가능 상태. | 동일 세션을 여러 번 로드해도 실행 이력 순서/상태가 변하지 않는지 검증. |
| D (v1.7.6) 명령/도구 선택 정확도 개선 | `src/commands.ts`, `src/Tool.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopParallelExecution.cs`, `src/AxCopilot/Services/LlmService.ToolUse.cs` | 도구 별칭 정규화 규칙 강화. unknown-tool 재시도 루프 방지. 실패 유형별 복구 흐름 표준화. | 오타/별칭/비활성 도구 요청 시 복구 프롬프트로 정상 도구로 수렴하는지 검증. |
| E (v1.8.0) 품질 게이트 최종 정렬 | `src/query.ts`, `src/QueryEngine.ts`(루프 종료/완료 기준), `src/utils/sessionStorage.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.cs` | 코드/문서 작업별 완료 게이트를 증거 기반으로 고정. 내부 벤치마크 목표 성공률 충족. 완료 응답 근거 누락률 최소화. | 코드수정/문서생성/권한거부/실패복구 혼합 시나리오에서 조기 완료 없이 근거 기반 종료하는지 검증. |
| A (v0.7.3) Hook/Permission 계약 고도화 | `src/utils/hooks.ts`, `src/utils/hooks/hookEvents.ts`, `src/utils/permissions/PermissionUpdate.ts`, `src/utils/permissions/permissionSetup.ts` | `src/AxCopilot/Services/Agent/AgentHookRunner.cs`, `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Models/AppSettings.cs`, `src/AxCopilot/ViewModels/SettingsViewModel.cs`, `src/AxCopilot/Views/SettingsWindow.xaml` | Hook JSON 출력(`updatedInput`, `updatedPermissions`, `additionalContext`) 반영 완료. Plain text 훅 하위호환 유지. 훅 실패 비차단 유지. | Pre-hook 입력 변형 적용 시 도구 입력이 실제 변경되는지 검증. 권한 업데이트 후 동일 run 내 권한 판정이 즉시 반영되는지 검증. |
| B (v0.7.4) Plan/Run 상태 내구성 강화 | `src/utils/plans.ts`, `src/utils/sessionStorage.ts` | `src/AxCopilot/Services/ChatSessionStateService.cs`, `src/AxCopilot/Services/TaskRunService.cs`, `src/AxCopilot/Services/TaskRunStore.cs`, `src/AxCopilot/Views/ChatWindow.xaml.cs` | Plan 단계 승인/수정 이력 영속화. 앱 재시작 후 run 재개 시 마지막 실행 지점 정확 복원. 중복 실행/중복 이벤트 0건. | 실행 중 앱 종료 → 재실행 → 같은 탭/대화에서 run 상태와 최근 실행 이력이 일치하는지 검증. |
| C (v0.7.5) 세션/이벤트 로그 정규화 | `src/utils/sessionStorage.ts`(이벤트 기록/복원 규약), `src/utils/hooks/hookEvents.ts` | `src/AxCopilot/Models/ChatModels.cs`, `src/AxCopilot/Services/ChatSessionStateService.cs`, `src/AxCopilot/Services/AppStateService.cs` | 이벤트 스키마 정리(도구 호출/결과/권한/훅/요약). replay 시 순서 불일치 0건. run 단위 요약 리포트 생성 가능 상태. | 동일 세션을 여러 번 로드해도 실행 이력 순서/상태가 변하지 않는지 검증. |
| D (v0.7.6) 명령/도구 선택 정확도 개선 | `src/commands.ts`, `src/Tool.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopParallelExecution.cs`, `src/AxCopilot/Services/LlmService.ToolUse.cs` | 도구 별칭 정규화 규칙 강화. unknown-tool 재시도 루프 방지. 실패 유형별 복구 흐름 표준화. | 오타/별칭/비활성 도구 요청 시 복구 프롬프트로 정상 도구로 수렴하는지 검증. |
| E (v0.8.0) 품질 게이트 최종 정렬 | `src/query.ts`, `src/QueryEngine.ts`(루프 종료/완료 기준), `src/utils/sessionStorage.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.cs` | 코드/문서 작업별 완료 게이트를 증거 기반으로 고정. 내부 벤치마크 목표 성공률 충족. 완료 응답 근거 누락률 최소화. | 코드수정/문서생성/권한거부/실패복구 혼합 시나리오에서 조기 완료 없이 근거 기반 종료하는지 검증. |
## 4. 공통 검증 규칙
- 모든 단계: `dotnet build` 경고 0/오류 0.
@@ -60,3 +60,47 @@
3. hook 실패/예외는 non-blocking(권한 흐름 지속).
4. `additionalContext`는 가능한 경로에서 메시지 컨텍스트로 반영.
- 2026-04-04(추가): `/mcp add/remove/reset` 확장, `tool_search` 기반 복구 프롬프트 강화, 슬래시 힌트 밀도(`rich/balanced/simple`) 연동.
- 2026-04-04(추가2): /mcp login/logout 세션 인증 토큰 지원, /mcp status·/chrome 진단에 Auth(Session) 반영.
- 2026-04-04(추가3): 권한 UX 통합(/permissions·/allowed-tools·/settings permissions), 복구 혼합 테스트 보강, 좌측 패널 실패 필터 노출 정책 rich 전용으로 정렬.
- 2026-04-04 20:27 (KST): Added a dedicated AX Agent theme layer and separated in-chat theme selection into style (`claw/codex/slate`) and mode (`system/light/dark`).
- 2026-04-04 18:03 (KST): Added a Codex-style context usage ring to the composer, exposed direct `/compact` execution from the footer, and surfaced Git branch/change status in the Cowork/Code footer when a repository is connected.
- 2026-04-04 18:03 (KST): Simplified the Cowork footer by removing document format/design selectors and moved those defaults into the AX Agent settings page, with output format centered on AI automatic selection.
- 2026-04-04 18:03 (KST): Minimized AX Agent message headers, changed model quick controls to a popup panel, flattened slash command rows into a Codex-style list, and aligned model/permission/template controls to the same dropdown panel language.
- 2026-04-04 18:03 (KST): Expanded the Git branch badge into a dropdown panel, flattened permission/template popups into row-based lists, and made AI message action bars remain visible for the selected message.
- 2026-04-04 18:03 (KST): Flattened the data-usage popup, added Git branch switching/creation inside the dropdown, and surfaced quick model chips so the inline model panel relies less on ComboBox controls.
- 2026-04-04 18:03 (KST): Replaced the visible inline model/service selectors with custom cards and row lists so the AX Agent quick panel more closely follows the Codex/claude-code control feel.
- 2026-04-04 18:03 (KST): Added recent/favorite grouping to the preset popup and enabled right-click pinning so the preset picker better matches Codex-style frequent-use navigation.
- 2026-04-04 18:03 (KST): Added preset search, made selected messages visually persistent, and flattened more of the permission detail popup into row-based information to keep the panel lighter.
- 2026-04-04 18:03 (KST): Switched recent permission-denied actions to flat row actions, exposed Git upstream state in the branch panel, and made inline quick actions read more like custom stateful cards.
- 2026-04-04 19:07 (KST): Unified AX Agent popup panels around the same row-driven language by flattening permission override details, simplifying collapsible section chrome, adding keyboard-friendly row actions, and turning Git change stats into compact pills.
- 2026-04-04 19:07 (KST): Refined message actions into custom pill buttons with visible labels, fixed the custom action template so border visuals render correctly, and tightened composer/footer density so model, preset, token, permission, and Git controls feel like one system.
- 2026-04-04 19:11 (KST): Reworked the AX Agent timeline so execution events render like thin Codex-style inline logs instead of heavy banners, softened older-history loading into an outline pill, and aligned planning cards to the same message-width rhythm.
- 2026-04-04 19:25 (KST): Tightened user/assistant/streaming cards under one density rule by compressing vertical spacing, card padding, header typography, and message meta spacing to a more Codex-like rhythm.
- 2026-04-04 19:25 (KST): Flattened the composer further by reducing input, model, preset, token, and footer control heights so the bottom work area reads more like a single claw-code-style strip.
- 2026-04-04 19:25 (KST): Matched AX Agent overlay quick settings to inline quick settings with the same `label · value` structure, lighter explanatory copy, and unified section naming.
- 2026-04-04 19:48 (KST): Fixed Chat sidebar topic exploration so clicking the left topic entry surfaces the preset cards again, and made preset selection immediately sync category label, conversation metadata, and saved state.
- 2026-04-04 19:48 (KST): Reduced permission/data-usage UI lag by synchronizing conversation settings before persistence, switching popup rows to immediate mouse-down activation, and refreshing overlay status labels in the same turn.
- 2026-04-04 19:48 (KST): Widened the AX Agent message lane, softened the yellow cast of the Claude-style theme preset, aligned the data-usage button with the permission button language, and routed the tray settings entry directly into AX Agent settings when AI is enabled.
- 2026-04-04 20:41 (KST): Permission surface re-aligned to the four claw-code public modes, legacy `질문 없이 진행` exposure removed from AX Agent popups/slash guidance, and the in-chat settings/sidebar information hierarchy simplified to match the lighter Claude/Codex-style layout direction.
- 업데이트: 2026-04-04 22:05 (KST)
- AX Agent 고급 설정 오버레이를 설명형 row + 커스텀 On/Off 선택 구조로 개편하고, 내부 기능명을 사용자 친화 문구로 정리함.
- 업데이트: 2026-04-04 20:58 (KST)
- AX Agent 서비스 설정의 내부 서비스 모델 선택을 등록 모델 칩 기반으로 정리하고, vLLM SSL 우회는 모델 등록/편집 다이얼로그에서만 노출되도록 설정 표면을 축소함.
- 업데이트: 2026-04-04 21:02 (KST)
- composer 컨텍스트 카드를 hover 중심의 간단 표기(`%` + `K/M` 사용량)로 정리하고, 최대 컨텍스트 설정 상한을 1M까지 확장함.
- 업데이트: 2026-04-04 21:02 (KST)
- AX Agent 서비스 설정의 `Gemini/Claude`도 모델 칩 선택 구조로 통일하고, composer 모델 버튼을 `서비스 · 모델` 문법으로 맞춰 설정-실행 흐름의 시각 언어를 정리함.
- 업데이트: 2026-04-04 23:14 (KST)
- 트레이 좌클릭 기본 진입점을 AX Agent로 전환하고, 우클릭 메뉴 상단에 앱 버전 헤더를 추가해 AX Agent 중심 진입 흐름을 강화함.
- 메인 설정 저장 완료 후 열린 AX Agent 창이 즉시 테마/모델/권한/하단 상태줄을 다시 읽어오도록 fan-out 경로를 추가해 설정 반영 지연을 줄임.
- DraftQueue kind 분류를 message/command/steering/direct/followup 기준으로 재정리해 큐 타입과 실제 입력 성격이 더 잘 맞도록 보강함.
- 업데이트: 2026-04-04 23:23 (KST)
- AX Agent가 `SettingsService.SettingsChanged`를 직접 구독하도록 바꿔 메인 설정/AX Agent 설정 어느 경로에서 저장하더라도 테마, 모델, 권한, 데이터 활용, composer, 대기열 UI가 즉시 동일 상태를 반영하도록 fan-out을 통합함.
- AX Agent 설정 저장 경로에서 표현 수준을 무조건 `rich`로 덮어쓰던 로직을 제거해 `풍부하게 / 적절하게 / 간단하게`가 다른 설정 저장 경로에서도 유지되도록 보정함.
- DraftQueue 패널은 `실행 중 / 다음 작업 / 보류 / 완료 / 실패` 개별 섹션 구조로 다시 나눠 현재 실행 흐름과 재시도 대기, 결과 이력을 더 빠르게 파악할 수 있도록 정리함.
- ????: 2026-04-04 23:32 (KST)
- AX Agent ???? ??? ?? tool-result ?? -> microcompact ?? ?? ?? -> ?? ?? ?? 3?? ??? ???, claude-code? staged compact ??? ? ??? ? ?? ??? ?? ????? ???.
- ??? ?? ??, tool_result, ?? ???, ???? ? ???? LLM ?? ?? microcompact_boundary? ?? ??? ?? ?? ?? ?? ?? ?? ??? ??? ???? ?? ??.

View File

@@ -1,132 +0,0 @@
# 자동 모델 라우팅 (Auto Model Router) 개발자 가이드
## 개요
자동 모델 라우팅은 사용자 메시지의 유형(코딩/번역/분석 등)을 키워드 기반으로 감지하여,
해당 유형에 최적화된 AI 모델로 자동 전환하는 기능입니다.
**현재 상태**: 잠금 (설정 UI에 표시되나 활성화 불가)
**활성화 조건**: 사내 Ollama/vLLM 서버 확정 후 개발자가 아래 절차에 따라 활성화
---
## 활성화 절차
### 1단계: 사내 모델 능력 점수 등록
**파일**: `src/AxCopilot/Services/ModelRouterService.cs`
**메서드**: `GetDefaultCapabilities()`
주석 처리된 Ollama/vLLM 예시를 해제하고 실제 모델 정보로 수정:
```csharp
// ── 사내 Ollama/vLLM (예시 — 서버 확정 후 수정) ──
new()
{
Service = "ollama", // "ollama" 또는 "vllm"
Model = "codellama:34b", // 실제 모델 ID
Alias = "CodeLlama 34B", // UI 표시명
Scores = new()
{
["coding"] = 0.85, // 코딩 적합도 (0.0~1.0)
["translation"] = 0.40, // 번역 적합도
["analysis"] = 0.55, // 분석 적합도
["creative"] = 0.35, // 창작 적합도
["document"] = 0.40, // 문서 작성 적합도
["math"] = 0.50, // 수학/계산 적합도
}
},
```
**점수 가이드라인**:
| 점수 | 의미 |
|------|------|
| 0.90+ | 해당 분야 최고 수준 |
| 0.70~0.89 | 우수 |
| 0.50~0.69 | 보통 |
| 0.30~0.49 | 기본 가능하나 비추천 |
| 0.30 미만 | 부적합 |
**인텐트 카테고리 키**:
- `coding` — 코드 작성/디버그/리팩토링
- `translation` — 번역/다국어
- `analysis` — 데이터 분석/요약/비교
- `creative` — 창작 글쓰기/스토리/에세이
- `document` — 보고서/문서/제안서 작성
- `math` — 수학/계산/증명
### 2단계: 설정 UI 잠금 해제
**파일**: `src/AxCopilot/Views/SettingsWindow.xaml`
"자동 모델 라우팅" 섹션에서 다음을 변경:
1.`Border``Opacity="0.5"` 제거 (또는 `Opacity="1.0"`으로 변경)
2. `CheckBox``IsEnabled="False" IsHitTestVisible="False"` 제거
3. `Slider``IsEnabled="False"` 제거
4. 힌트 텍스트를 "비활성 시 항상 현재 선택된 모델을 사용합니다."로 변경
### 3단계: 기본값 활성화 (선택)
사용자가 직접 활성화하도록 할 수도 있지만, 기본 활성화하려면:
**파일**: `src/AxCopilot/Models/AppSettings.cs`
```csharp
// 변경 전
public bool EnableAutoRouter { get; set; } = false;
// 변경 후
public bool EnableAutoRouter { get; set; } = true;
```
---
## 아키텍처 요약
```
사용자 메시지
IntentDetector.Detect(message) ← 키워드 매칭으로 인텐트 감지
↓ (category, confidence)
ModelRouterService.Route(message) ← 후보 모델 점수 비교 → 최적 모델 선택
↓ ModelRouteResult
ChatWindow.SendMessageAsync() ← PushRouteOverride → LLM 호출 → ClearRouteOverride
LlmService.ResolveService/ResolveModel ← 오버라이드 있으면 해당 서비스/모델 사용
```
### 핵심 파일
| 파일 | 역할 |
|------|------|
| `Services/IntentDetector.cs` | 키워드 기반 인텐트 분류기 |
| `Services/ModelRouterService.cs` | 모델 라우팅 로직 + 하드코딩 기본값 |
| `Services/LlmService.cs` | PushRouteOverride/ClearRouteOverride |
| `Services/LlmService.ToolUse.cs` | 에이전트 도구 호출 시 오버라이드 반영 |
| `Models/AppSettings.cs` | EnableAutoRouter, AutoRouterConfidence, ModelCapability |
| `Views/ChatWindow.xaml.cs` | 라우터 호출 및 상태 표시 |
| `Views/SettingsWindow.xaml` | 설정 UI (현재 잠금) |
### 키워드 추가/수정
**파일**: `Services/IntentDetector.cs`
`_keywords` 딕셔너리에서 카테고리별 키워드와 가중치를 수정할 수 있습니다.
한국어 키워드는 `string.Contains`로 매칭 (조사 붙어도 감지),
영어 키워드는 단어 경계 매칭 (공백 분리).
---
## 테스트 방법
1. `GetDefaultCapabilities()`에 사내 모델 추가
2. 설정 UI 잠금 해제
3. `dotnet build` — 경고/오류 0 확인
4. 앱 실행 → 설정 → 자동 라우팅 활성화
5. 테스트 시나리오:
- "이 함수를 리팩토링해줘" → coding 감지 → 코드 특화 모델
- "이 문장을 영어로 번역해줘" → translation 감지
- "이 데이터를 분석해줘" → analysis 감지
- "안녕하세요" → general → 기본 모델 유지 (라우팅 안함)
6. 상태바에 "라우팅: coding → [모델명]" 표시 확인

View File

@@ -0,0 +1,79 @@
# AX Agent Regression Prompts
업데이트: 2026-04-05 22:18 (KST)
`claw-code`와 AX Agent를 같은 기준으로 비교하기 위한 회귀 프롬프트 세트입니다.
## Chat
1. 기본 답변
- 프롬프트: `회의 일정 조정 메일을 정중한 한국어로 써줘`
- 확인:
- 빈 assistant 카드 없음
- 재생성/재시도 후 transcript 중복 없음
2. 장문 설명
- 프롬프트: `RAG와 fine-tuning 차이를 실무 관점으로 7가지로 설명해줘`
- 확인:
- 장문 렌더 유지
- compact 이후 다음 턴 문맥 유지
## Cowork
3. 문서형 작업
- 프롬프트: `신규 ERP 도입 제안서 초안을 작성해줘. 목적, 범위, 기대효과, 추진일정 포함`
- 확인:
- 작업 유형 반영
- 계획 이후 실제 문서형 결과 흐름
- 기본 로그 과다 노출 없음
4. 데이터형 작업
- 프롬프트: `매출 CSV를 분석해서 월별 추세와 이상치를 요약해줘`
- 확인:
- 데이터 분석형 도구 선택
- 결과 요약 품질
- runtime 노이즈 최소화
## Code
5. 버그 수정
- 프롬프트: `현재 프로젝트에서 설정 저장 버그 원인 찾고 수정해줘`
- 확인:
- 읽기/검색/수정 흐름 일관성
- diff 저장
- reopen 시 transcript 보존
6. 빌드/테스트
- 프롬프트: `빌드 오류를 재현하고 수정한 뒤 다시 빌드해줘`
- 확인:
- build/test 루프
- 실패 후 재시도
- 완료 메시지 정합성
## Cross-tab
7. 후속 큐
- 순차 프롬프트:
- `이 창 레이아웃 문제 원인 찾아줘`
- `끝나면 README도 같이 갱신해줘`
- 확인:
- queue chaining
- 입력창 직접 변형 없이 다음 턴 수행
8. compact 이후 연속성
- 프롬프트: `지금까지 논의한 내용을 5줄로 이어서 정리하고 다음 작업 제안해줘`
- 확인:
- token-only completion 없음
- compact 후 문맥 유지
9. 권한 승인
- 프롬프트: `이 파일을 수정해서 저장해줘`
- 확인:
- 승인 요청 transcript 표시
- 승인/거부 후 결과 정합성
10. slash / skill
- 프롬프트: `/bug-hunt src 폴더 잠재 버그 찾아줘`
- 확인:
- slash 진입과 일반 send 경로 동일성
- skill 실행 이유/결과 표기

View File

@@ -0,0 +1,38 @@
# AX Agent UI/UX 점검 체크리스트 (2026-04-04)
## A. 레이아웃 단순화
- [x] Cowork 좌측 메뉴는 `작업 유형 선택` 1개만 노출된다.
- [x] Code 좌측 메뉴는 `코드 작업 유형` 1개만 노출된다.
- [x] Chat 좌측의 실패/진행 필터 행은 기본 숨김이다.
- [x] 상단 우측 설정 버튼은 제거되고 좌측 하단 설정 아이콘으로 이동했다.
## B. 권한 UX
- [x] 권한 목록에서 `Deny`가 맨 위에 노출된다.
- [x] Deny 설명은 `읽기만 허용, 생성/수정/삭제 차단` 문구로 통일된다.
- [x] Deny 색상은 녹색 계열로 표시된다.
- [x] Auto/권한 경고는 하단 바가 아닌 상단 배너로 표시된다.
- [x] 권한 변경 시 1회 클릭으로 즉시 UI가 반영된다.
## C. AX Agent 설정창
- [x] 깨진 문자열 없이 한국어 라벨로 정상 노출된다.
- [x] 표현 수준 `풍부하게/적절하게/간단하게`를 선택할 수 있다.
- [x] `vLLM SSL 인증서 검증 생략 허용` 토글이 있다.
- [x] `자동 compact`, `압축 임계치`, `최대 토큰`, `오류 재시도` 값을 저장할 수 있다.
## D. 전체 설정창
- [x] 좌측 사이드바에 `설정 표현`(풍부/적절/간단) 전환 UI가 추가됐다.
- [x] 표현 수준에 따라 탭 가시성이 조절된다.
- [x] 표현 수준에 따라 AX Agent 서브탭 가시성이 조절된다.
- [x] AI 비활성 시 AX Agent 탭 숨김 정책과 충돌하지 않는다.
## E. 빌드/테스트
- [x] `dotnet build` 경고 0 / 오류 0.
- [x] `dotnet test` 통과 (425 passed, 0 failed).
## F. 수동 시나리오 (다음 점검)
- [x] External 모드 전환 후 `? 검색` 동작 확인. (자동 테스트: OperationModeReadinessTests)
- [x] Internal 모드 복귀 후 외부 검색 차단 확인. (자동 테스트: OperationModeReadinessTests + OperationModePolicyTests)
- [x] vLLM SSL 우회 플래그 연동 확인. (자동 테스트: LlmRuntimeOverrideTests ResolveServerInfo 2건)
- [x] `/compact` 명령 파싱/라우팅 확인. (자동 테스트: ChatWindowSlashPolicyTests)
- [ ] 모델 등록(vLLM + SSL 우회) 후 실제 네트워크 호출 성공 확인. (실환경 수동 점검 필요)
- [ ] `/compact` 실행 후 UI 토큰/요약 표시 갱신 확인. (UI 수동 점검 필요)

View File

@@ -1,253 +0,0 @@
<!DOCTYPE html>
<html lang="ko"><head><meta charset="utf-8">
<title>AX_Commander_개발문서</title>
<style>
body { font-family: "맑은 고딕", "Malgun Gothic", sans-serif; font-size: 11pt; color: #1a1a1a; line-height: 1.7; max-width: 900px; margin: 0 auto; padding: 40px 20px; }
h1 { font-size: 22pt; color: #1F3864; border-bottom: 3px solid #4472C4; padding-bottom: 8px; margin-top: 32px; }
h2 { font-size: 16pt; color: #2E75B6; border-bottom: 2px solid #B8CCE4; padding-bottom: 4px; margin-top: 28px; }
h3 { font-size: 13pt; color: #44546A; margin-top: 22px; }
h4 { font-size: 12pt; color: #44546A; margin-top: 18px; }
p { margin: 6px 0; }
table { border-collapse: collapse; width: 100%; margin: 12px 0; }
th { background: #2E75B6; color: white; padding: 8px 10px; text-align: left; font-size: 10pt; }
td { padding: 6px 10px; border: 1px solid #D6E4F0; font-size: 10pt; }
tr:nth-child(even) td { background: #EBF3FB; }
ul, ol { margin: 6px 0 6px 24px; }
li { margin: 3px 0; }
code { font-family: Consolas, "D2Coding", monospace; background: #F0F0F0; padding: 1px 4px; border-radius: 3px; font-size: 10pt; }
.footer { text-align: right; color: #999; font-size: 9pt; margin-top: 40px; border-top: 1px solid #ddd; padding-top: 8px; }
</style></head><body>
<p>&lt;b&gt;AX Commander&lt;/b&gt;</p>
<p>개발 문서</p>
<p>Windows 전용 시맨틱 런처 &amp; 워크스페이스 매니저</p>
<h1>사내 전용 프로그램 개발 원칙</h1>
<p>AX Commander는 사내 전용 프로그램입니다. 아래 원칙을 반드시 준수하여 개발하세요.</p>
<h2>외부 연결 금지</h2>
<table>
<tr><th><b>금지 항목</b></th><th><b>설명</b></th></tr>
<tr><td>외부 HTTP/HTTPS 호출</td><td>HttpClient, WebClient, HttpWebRequest 등으로 외부 서버에 요청 금지</td></tr>
<tr><td>외부 SDK 연동</td><td>서드파티 클라우드 SDK, AI API, SaaS 라이브러리 사용 금지</td></tr>
<tr><td>원격 플러그인 다운로드</td><td>런타임에 외부에서 DLL/코드 다운로드 금지</td></tr>
<tr><td>텔레메트리 / 오류 수집</td><td>사용 데이터를 외부 서버로 전송하는 일체의 코드 금지</td></tr>
<tr><td>NuGet 패키지</td><td>외부 네트워크 통신이 내장된 패키지 신규 도입 금지</td></tr>
</table>
<p>허용: 로컬 파일 시스템 접근, Windows API (P/Invoke), 사내 인트라넷 URL, 로컬 프로세스 실행</p>
<h1>아키텍처 개요</h1>
<h2>핵심 컴포넌트</h2>
<table>
<tr><th><b>컴포넌트</b></th><th><b>역할</b></th></tr>
<tr><td>App.xaml.cs</td><td>앱 진입점, 서비스 초기화, 트레이 아이콘 관리</td></tr>
<tr><td>LauncherWindow</td><td>WPF 메인 UI (AllowsTransparency, WindowStyle=None)</td></tr>
<tr><td>CommandResolver</td><td>프리픽스 기반 핸들러 라우팅 테이블</td></tr>
<tr><td>FuzzyEngine</td><td>퍼지 검색 + 한국어 초성(ㅅㄷ) 매칭</td></tr>
<tr><td>IndexService</td><td>파일 시스템 인덱서 + FileSystemWatcher</td></tr>
<tr><td>SettingsService</td><td>settings.json 로드/저장 (자동 백업)</td></tr>
<tr><td>ClipboardHistoryService</td><td>WM_CLIPBOARDUPDATE 훅 기반 히스토리</td></tr>
<tr><td>PluginHost</td><td>DLL/JSON 스킬 플러그인 로더</td></tr>
<tr><td>NotificationService</td><td>트레이 풍선 알림 (타이머/알람)</td></tr>
</table>
<h1>프리픽스 핸들러 치트시트</h1>
<table>
<tr><th><b>프리픽스</b></th><th><b>핸들러</b></th><th><b>기능</b></th></tr>
<tr><td>(없음)</td><td>FuzzyEngine</td><td>앱·파일 퍼지 검색 + 한국어 초성</td></tr>
<tr><td>=</td><td>CalculatorHandler</td><td>수식 계산, 단위/통화 변환</td></tr>
<tr><td>/</td><td>SystemCommandHandler</td><td>lock, sleep, restart, shutdown, timer, alarm</td></tr>
<tr><td>;</td><td>SnippetHandler</td><td>텍스트 스니펫 키워드 검색 & 붙여넣기</td></tr>
<tr><td>#</td><td>ClipboardHistoryHandler</td><td>클립보드 히스토리 검색 & 병합</td></tr>
<tr><td>@</td><td>UrlAliasHandler</td><td>URL 단축키</td></tr>
<tr><td>~</td><td>FolderAliasHandler</td><td>폴더 단축키</td></tr>
<tr><td>></td><td>BatchHandler</td><td>명령 실행 / 배치 단축키</td></tr>
<tr><td>$</td><td>ClipboardHandler</td><td>클립보드 텍스트 12종 변환</td></tr>
<tr><td>!</td><td>WorkspaceHandler</td><td>워크스페이스 저장·복원</td></tr>
<tr><td>emoji</td><td>EmojiHandler</td><td>이모지 피커 (300+)</td></tr>
<tr><td>color</td><td>ColorHandler</td><td>HEX/RGB/HSL/HSV 색상 변환</td></tr>
<tr><td>recent</td><td>RecentFilesHandler</td><td>Windows 최근 파일</td></tr>
<tr><td>note</td><td>NoteHandler</td><td>빠른 메모 저장·조회</td></tr>
<tr><td>uninstall</td><td>UninstallHandler</td><td>앱 제거 (레지스트리)</td></tr>
<tr><td>port</td><td>PortHandler</td><td>TCP 포트/프로세스 점검</td></tr>
<tr><td>env</td><td>EnvHandler</td><td>환경변수 조회</td></tr>
<tr><td>json</td><td>JsonHandler</td><td>JSON 검증/포맷/미니파이</td></tr>
<tr><td>encode</td><td>EncodeHandler</td><td>base64/url/hex/md5/sha256 인코딩</td></tr>
<tr><td>snap</td><td>SnapHandler</td><td>창 배치 레이아웃</td></tr>
<tr><td>cap</td><td>ScreenCaptureHandler</td><td>화면/창/스크롤 캡처</td></tr>
<tr><td>help</td><td>HelpHandler</td><td>도움말</td></tr>
</table>
<h1>설정 스키마 (settings.json)</h1>
<p>경로: %APPDATA%\AxCommander\settings.json</p>
<table>
<tr><th><b></b></th><th><b>타입</b></th><th><b>설명</b></th></tr>
<tr><td>version</td><td>string</td><td>설정 버전</td></tr>
<tr><td>hotkey</td><td>string</td><td>글로벌 단축키 (기본: Alt+Space)</td></tr>
<tr><td>launcher.opacity</td><td>float</td><td>창 투명도 (0.0~1.0, 기본 0.96)</td></tr>
<tr><td>launcher.maxResults</td><td>int</td><td>최대 결과 수 (기본 7)</td></tr>
<tr><td>launcher.theme</td><td>string</td><td>테마 (system|dark|light|oled|nord|monokai|catppuccin|sepia|alfred|alfredlight|custom)</td></tr>
<tr><td>launcher.position</td><td>string</td><td>런처 위치 (center-top|center|bottom)</td></tr>
<tr><td>launcher.webSearchEngine</td><td>string</td><td>기본 검색 엔진 (g|n|d|y|w)</td></tr>
<tr><td>launcher.snippetAutoExpand</td><td>bool</td><td>스니펫 자동 확장 활성화</td></tr>
<tr><td>indexPaths</td><td>string[]</td><td>인덱싱할 폴더 경로 목록</td></tr>
<tr><td>aliases</td><td>object[]</td><td>URL/폴더/배치 단축키 목록</td></tr>
<tr><td>snippets</td><td>object[]</td><td>텍스트 스니펫 목록</td></tr>
<tr><td>clipboardHistory.enabled</td><td>bool</td><td>클립보드 히스토리 활성화</td></tr>
<tr><td>clipboardHistory.maxItems</td><td>int</td><td>최대 보관 개수 (기본 50)</td></tr>
<tr><td>plugins</td><td>object[]</td><td>DLL 플러그인 경로 목록</td></tr>
</table>
<h1>테마 시스템</h1>
<h2>내장 테마 목록</h2>
<table>
<tr><th><b>테마 키</b></th><th><b>이름</b></th><th><b>특징</b></th></tr>
<tr><td>system</td><td>시스템</td><td>Windows 다크/라이트 모드 자동 감지</td></tr>
<tr><td>dark</td><td>Dark</td><td>딥 네이비 다크 (기본)</td></tr>
<tr><td>light</td><td>Light</td><td>클린 화이트 라이트</td></tr>
<tr><td>oled</td><td>OLED</td><td>순수 블랙 (OLED 절전)</td></tr>
<tr><td>nord</td><td>Nord</td><td>Arctic 컬러 팔레트</td></tr>
<tr><td>monokai</td><td>Monokai</td><td>Sublime Text 스타일</td></tr>
<tr><td>catppuccin</td><td>Catppuccin</td><td>Mocha 따뜻한 파스텔</td></tr>
<tr><td>sepia</td><td>Sepia</td><td>황갈색 아날로그 감성</td></tr>
<tr><td>alfred</td><td>Alfred Dark</td><td>Alfred 5 다크 팔레트 (딥 퍼플-차콜)</td></tr>
<tr><td>alfredlight</td><td>Alfred Light</td><td>Alfred 5 라이트 팔레트 (클린 화이트)</td></tr>
<tr><td>custom</td><td>커스텀</td><td>14개 색상 완전 커스터마이징</td></tr>
</table>
<h2>테마 ResourceKey 목록 (14개)</h2>
<table>
<tr><th><b></b></th><th><b>용도</b></th></tr>
<tr><td>LauncherBackground</td><td>전체 배경</td></tr>
<tr><td>ItemBackground</td><td>항목 기본 배경</td></tr>
<tr><td>ItemSelectedBackground</td><td>선택된 항목 배경</td></tr>
<tr><td>ItemHoverBackground</td><td>호버 배경</td></tr>
<tr><td>PrimaryText</td><td>주 텍스트 색상</td></tr>
<tr><td>SecondaryText</td><td>보조 텍스트 색상</td></tr>
<tr><td>PlaceholderText</td><td>플레이스홀더 텍스트</td></tr>
<tr><td>AccentColor</td><td>강조색 (선택 바, 배지 등)</td></tr>
<tr><td>SeparatorColor</td><td>구분선 색상</td></tr>
<tr><td>HintBackground</td><td>ESC 힌트 배경</td></tr>
<tr><td>HintText</td><td>ESC 힌트 텍스트</td></tr>
<tr><td>BorderColor</td><td>창 테두리</td></tr>
<tr><td>ScrollbarThumb</td><td>스크롤바 색상</td></tr>
<tr><td>ShadowColor</td><td>드롭 섀도우 색상</td></tr>
</table>
<h2>새 테마 추가 절차</h2>
<ul>
<li>1. Themes/MyTheme.xaml 작성 (위 14개 키 모두 정의)</li>
<li>2. AxCommander.csproj에 &lt;Resource Include=&quot;Themes/MyTheme.xaml&quot;/&gt; 추가</li>
<li>3. LauncherWindow.xaml.cs → GetEffectiveThemeName() switch에 케이스 추가</li>
<li>4. SettingsViewModel.ThemeCards 목록에 ThemeCardModel 항목 추가</li>
</ul>
<h1>보안 고려사항</h1>
<table>
<tr><th><b>항목</b></th><th><b>구현</b></th></tr>
<tr><td>URL 스킴 검증</td><td>http, https, ftp, ms-settings, mailto, file 허용. javascript: 등 차단</td></tr>
<tr><td>PowerShell 인젝션 방지</td><td>> 명령어 입력의 " 이스케이프 처리</td></tr>
<tr><td>ReDoS 방지</td><td>사용자 정의 Regex에 TimeSpan 타임아웃 적용</td></tr>
<tr><td>자격증명 저장</td><td>Windows Credential Manager (advapi32.dll, DPAPI 암호화)</td></tr>
<tr><td>클립보드 민감 데이터</td><td>Regex 기반 제외 패턴 — 신용카드·IP 등 기본 차단</td></tr>
<tr><td>API 타임아웃</td><td>JSON 스킬 HTTP 요청 3초 제한</td></tr>
<tr><td>시스템 명령 확인</td><td>재시작·종료·로그아웃 실행 전 MessageBox.Show 2단계 확인</td></tr>
</table>
<h1>단위 테스트</h1>
<table>
<tr><th><b>파일</b></th><th><b>테스트 수</b></th><th><b>대상</b></th></tr>
<tr><td>FuzzyEngineTests.cs</td><td>19</td><td>CalculateScore, FuzzyMatch, 초성 검색</td></tr>
<tr><td>ClipboardTransformTests.cs</td><td>21</td><td>12개 내장 변환기</td></tr>
<tr><td>SettingsServiceTests.cs</td><td>17</td><td>기본값, JSON 직렬화 라운드트립</td></tr>
</table>
<h1>v1.6 3차 전체 점검 수정</h1>
<p>빌드 오류 3건, 컴파일 경고 1건, 런타임 버그 6건, 보안 이슈 2건을 수정하였습니다.</p>
<h2>컴파일 오류 수정</h2>
<table>
<tr><th><b>파일</b></th><th><b>수정 내용</b></th><th><b>오류 코드</b></th></tr>
<tr><td>UsageRankingService.cs</td><td>using System.IO; 누락 추가</td><td>CS0103</td></tr>
<tr><td>SettingsWindow.xaml.cs</td><td>Key.Enter or Key.Return 단일 arm으로 통합</td><td>CS8510</td></tr>
<tr><td>ContextManager.cs</td><td>EnumDisplayMonitors 람다 타입 혼합 수정</td><td>CS0748</td></tr>
</table>
<h2>런타임 버그 수정</h2>
<table>
<tr><th><b>파일</b></th><th><b>버그</b></th><th><b>수정</b></th></tr>
<tr><td>JsonSkillLoader.cs</td><td>field[0 형식 오류 방지 (IndexOf 반환 -1)</td><td>closingIdx < 0 가드 추가</td></tr>
<tr><td>ClipboardHistoryService.cs</td><td>_ignoreNext 스레드 비안전, 이중 초기화</td><td>volatile + 이중 초기화 가드</td></tr>
<tr><td>IndexService.cs</td><td>ScheduleRebuild 타이머 비원자적 교체</td><td>_timerLock으로 원자적 교체</td></tr>
<tr><td>SettingsService.cs</td><td>백업 실패 무음 catch</td><td>LogService.Warn으로 기록</td></tr>
<tr><td>LauncherWindow.xaml.cs</td><td>Window에 RenderTransform 설정 시 InvalidOperationException</td><td>Content(루트 Border)에 적용</td></tr>
</table>
<h2>보안 수정</h2>
<table>
<tr><th><b>파일</b></th><th><b>수정 내용</b></th></tr>
<tr><td>JsonSkillLoader.cs</td><td>ActionUrl 실행 전 http/https 스킴 검증 추가</td></tr>
<tr><td>SettingsWindow.xaml.cs</td><td>NewIndexPathBox null 역참조 방어 처리</td></tr>
</table>
<h1>빌드 및 배포</h1>
<h2>빌드 명령</h2>
<p># 개발 실행</p>
<p>dotnet run --project src/AxCommander</p>
<p># Release 단일 파일 빌드 (self-contained)</p>
<p>dotnet publish src/AxCommander -c Release -r win-x64 --self-contained</p>
<p># 단위 테스트</p>
<p>dotnet test src/AxCommander.Tests</p>
<h2>데이터 경로</h2>
<table>
<tr><th><b>용도</b></th><th><b>경로</b></th></tr>
<tr><td>설정 파일</td><td>%APPDATA%\AxCommander\settings.json</td></tr>
<tr><td>로그</td><td>%APPDATA%\AxCommander\logs\app-YYYY-MM-DD.log</td></tr>
<tr><td>스킬 파일</td><td>%APPDATA%\AxCommander\skills\*.skill.json</td></tr>
<tr><td>메모</td><td>%APPDATA%\AxCommander\notes.txt</td></tr>
<tr><td>사용 빈도</td><td>%APPDATA%\AxCommander\usage.json</td></tr>
<tr><td>크래시 덤프</td><td>%APPDATA%\AxCommander\crashes\</td></tr>
</table>
<h2>요구 사항</h2>
<ul>
<li>OS: Windows 10 20H2 이상 (Windows 11 권장)</li>
<li>.NET 8.0 Runtime (Self-contained 빌드 시 불필요)</li>
</ul>
<h1>플러그인 개발</h1>
<h2>DLL 플러그인</h2>
<p>AxCommander.SDK를 참조하여 IActionHandler 인터페이스를 구현합니다.</p>
<p>using AxCommander.SDK;</p>
<p>public class MyHandler : IActionHandler</p>
<p>{</p>
<p> public string? Prefix =&gt; &quot;?&quot;; // 트리거 프리픽스</p>
<p> public PluginMetadata Metadata =&gt; new(&quot;MyPlugin&quot;, &quot;설명&quot;, &quot;1.0&quot;);</p>
<p> public async Task&lt;IEnumerable&lt;LauncherItem&gt;&gt; GetItemsAsync(string query, CancellationToken ct)</p>
<p> {</p>
<p> return [ new LauncherItem(&quot;제목&quot;, &quot;부제목&quot;, null, myData, Symbol: &quot;\uE721&quot;) ];</p>
<p> }</p>
<p> public Task ExecuteAsync(LauncherItem item, CancellationToken ct)</p>
<p> {</p>
<p> return Task.CompletedTask;</p>
<p> }</p>
<p>}</p>
<h2>JSON 스킬 (코드 없이 HTTP API 연동)</h2>
<p>경로: %APPDATA%\AxCommander\skills\*.skill.json</p>
<p>{</p>
<p> &quot;id&quot;: &quot;my-api&quot;,</p>
<p> &quot;name&quot;: &quot;API 연동&quot;,</p>
<p> &quot;prefix&quot;: &quot;?&quot;,</p>
<p> &quot;request&quot;: {</p>
<p> &quot;method&quot;: &quot;GET&quot;,</p>
<p> &quot;url&quot;: &quot;https://intranet.example.com/api?q={{INPUT}}&quot;</p>
<p> },</p>
<p> &quot;response&quot;: {</p>
<p> &quot;resultsPath&quot;: &quot;items&quot;,</p>
<p> &quot;titleField&quot;: &quot;name&quot;,</p>
<p> &quot;subtitleField&quot;: &quot;description&quot;,</p>
<p> &quot;actionUrl&quot;: &quot;url&quot;</p>
<p> },</p>
<p> &quot;cache&quot;: 30</p>
<p>}</p>
<p>AX Commander &#183; .NET 8.0 &#183; WPF &#183; MIT License</p>
<p class='footer'>Converted from: AX_Commander_개발문서.docx</p>
</body></html>

View File

@@ -1,282 +0,0 @@
<!-- WordPress ?명솚 HTML ???ъ슜???뺤쓽 HTML 釉붾줉??遺숈뿬?j린 -->
<div style="max-width:860px; margin:0 auto; font-family:'留묒? 怨좊뵓','Malgun Gothic',sans-serif; font-size:16px; color:#1a1a1a; line-height:1.8;">
<!-- ?ㅻ뜑 -->
<div style="text-align:center; padding:40px 20px 30px; background:linear-gradient(135deg,#1F3864 0%,#2E75B6 100%); border-radius:12px; margin-bottom:32px;">
<h1 style="color:#fff; font-size:28px; margin:0 0 8px;">AX Copilot</h1>
<p style="color:#B8CCE4; font-size:16px; margin:0 0 4px;">?ㅻ낫???섎굹濡?紐⑤뱺 ?낅Т瑜??쒖뼱?섎뒗 ?щ궡 ?꾩슜 AI ?곗쿂</p>
<p style="color:#8FAFD4; font-size:13px; margin:0;">諛깆듅??쨌 AX?곌뎄??AI?€ 쨌 SW Architect</p>
</div>
<!-- 1. ??留뚮뱾?덈뒗媛€ -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">1. ??留뚮뱾?덈뒗媛€</h2>
<p>?낅Т 以?媛€??留롮씠 諛섎났?섎뒗 ?숈옉??萸먮깘怨?臾쇱쑝硫? ?€遺€遺꾩쓽 ?щТ吏?吏곸썝???대젃寃??€?듯빀?덈떎:</p>
<ul>
<li>?깆쓣 李얠븘???ㅽ뻾?섍린</li>
<li>?뚯씪??李얠븘???닿린</li>
<li>?대┰蹂대뱶?먯꽌 蹂듭궗???댁슜 ?ㅼ떆 李얘린</li>
<li>怨꾩궛湲??닿퀬 媛꾨떒??怨꾩궛?섍린</li>
<li>AI?먭쾶 吏덈Ц?섎젮硫?釉뚮씪?곗? ?닿퀬 蹂꾨룄 ?쒕퉬???묒냽?섍린</li>
</ul>
<p>??紐⑤뱺 ?숈옉??留덉슦?ㅻ? ?ㅺ퀬, ?먯깋湲곕? ?닿퀬, ?대┃?섍퀬???ㅻ낫?쒖뿉???먯쓣 ???섍? ?놁뒿?덈떎.</p>
<p><strong>AX Copilot</strong>?€ ??臾몄젣瑜??닿껐?⑸땲?? <strong>Alt+Space</strong> ??踰덉쑝濡?紐⑤뱺 寃껋쓣 ?ㅻ낫?쒕줈 ?쒖뼱?????덈뒗 ?곗쿂?댁옄, <strong>AI ?€??AX Agent)</strong>源뚯? ?듯빀???щ궡 ?꾩슜 ?낅Т ?꾩슦誘몄엯?덈떎.</p>
<p>???꾨줈?앺듃??LLM(Sigmoid)怨??④퍡 湲고쉷遺€??援ы쁽源뚯? 吏꾪뻾???щ?濡? AI?€ ?묒뾽?섎뒗 ?뚰봽?몄썾??媛쒕컻???ㅼ젣 寃쏀뿕???닿퀬 ?덉뒿?덈떎.</p>
<!-- 2. AX Copilot?대?? -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">2. AX Copilot?대??</h2>
<p><strong>Alt+Space</strong>瑜??꾨Ⅴ硫??붾㈃ ?곷떒??源붾걫???곗쿂 李?<strong>AX Commander</strong>)???섑??⑸땲?? ?ш린???먰븯??紐낅졊???낅젰?섎㈃ ?⑸땲??</p>
<ul>
<li>???대쫫??移섎㈃ ?깆씠 ?ㅽ뻾?⑸땲??(?쒓뎅??珥덉꽦 寃€?됰룄 媛€??)</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">=</code> 瑜?移섎㈃ 怨꾩궛湲곌? ?⑸땲??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">#</code> ??移섎㈃ ?대┰蹂대뱶 ?덉뒪?좊━媛€ ?섑??⑸땲??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">cap region</code> ??移섎㈃ ?곸뿭 罹≪쿂媛€ ?쒖옉?⑸땲??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">win chrome</code> ??移섎㈃ ?щ\ 李쎌쑝濡?利됱떆 ?꾪솚?⑸땲??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">!</code> ??移섎㈃ AI ?€??AX Agent)媛€ ?대┰?덈떎</li>
</ul>
<p>?꾨━?쎌뒪(?묐몢?? 湲곕컲?쇰줈 <strong>45媛??댁긽??紐낅졊??/strong>瑜?吏€?먰븯硫? ?쒓뎅??珥덉꽦 寃€???끹꽬 ???ㅼ젙)怨??쇱? 留ㅼ묶???⑸땲??</p>
<!-- 3. ?듭떖 湲곕뒫 ?뚭컻 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">3. ?듭떖 湲곕뒫 ?뚭컻</h2>
<p>AX Copilot?€ ?⑥닚?????곗쿂媛€ ?꾨떃?덈떎. ?꾨옒??移댄뀒怨좊━蹂?二쇱슂 湲곕뒫?낅땲??</p>
<!-- 3-1. AI ?€??(AX Agent) -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">AI ?€????AX Agent <span style="background:#2E75B6; color:#fff; font-size:12px; padding:2px 8px; border-radius:10px; margin-left:8px;">NEW v1.0.5</span></h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">!</code> ?덉빟?대줈 AI ?€??李?吏꾩엯</li>
<li><strong>4醫?LLM 吏€??/strong>: Ollama, vLLM(OpenAI ?명솚), Gemini, Sigmoid API</li>
<li><strong>?ㅽ듃由щ컢 + ?€?댄븨 ?④낵</strong>: SSE 湲곕컲 ?ㅼ떆媛??묐떟, 12ms ?€?대㉧濡??€?댄븨 ?좊땲硫붿씠??/li>
<li><strong>留덊겕?ㅼ슫 + 肄붾뱶 援щЦ 媛뺤“</strong>: 10媛??몄뼱 ?ㅼ썙???섏씠?쇱씠?? 肄붾뱶 釉붾줉 蹂듭궗 踰꾪듉</li>
<li><strong>?좏겙 ?ъ슜??/strong>: k/m ?⑥쐞 ?ㅼ떆媛??쒖떆 + ?묐떟 ?뚯슂?쒓컙</li>
<li><strong>?꾨\?꾪듃 移대뱶</strong>: 誘몃━ ?ㅼ젙???쒖뒪???꾨\?꾪듃 + ?ъ슜???뺤쓽 ?쒗뵆由?/li>
<li><strong>?€??愿€由?/strong>: 怨좎젙/?대쫫蹂€寃?遺꾨쪟(6醫?/??젣, ?좎쭨蹂?洹몃9, 30???먮룞 ?뺣━</li>
<li><strong>硫붿떆吏€ ?몄쭛</strong>: ?ъ슜??硫붿떆吏€ ?몄쭛/蹂듭궗, 醫뗭븘???レ뼱???쇰뱶諛?/li>
</ul>
<!-- 3-2. 寃€??-->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">寃€??/h3>
<ul>
<li><strong>?쇱? 寃€??/strong>: ???뚯씪紐낆쓣 ?쇰?留??낅젰?대룄 李얠븘以?/li>
<li><strong>?쒓뎅??珥덉꽦</strong>: ?뉎뀕?????꾪븳湲€ 寃€??/li>
<li><strong>?ㅽ뻾 鍮덈룄 ?숈뒿</strong>: ?먯< ?곕뒗 ?깆씠 ?곷떒?쇰줈</li>
<li><strong>湲곕낯 ??蹂꾩묶</strong>: 硫붾え?? 怨꾩궛湲? ?묒? ???쒓?+?곷Ц 利됱떆 ?ㅽ뻾</li>
<li><strong>?대뜑 寃€??/strong>: ?몃뜳??寃쎈줈???섏쐞 ?대뜑??寃€??媛€??/li>
</ul>
<!-- 3-3. 怨꾩궛쨌蹂€??-->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">怨꾩궛 쨌 蹂€??/h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">= sqrt(144)</code>, <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">= 0xFF + 1</code>, <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">= 100km in miles</code></li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">= 100 USD to KRW</code> (?ㅼ떆媛??섏쑉)</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">date +30d</code> (30?????좎쭨), <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">date unix</code> (?€?꾩뒪?ы봽)</li>
</ul>
<!-- 3-4. ?대┰蹂대뱶 -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">?대┰蹂대뱶</h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">#</code> <strong>?덉뒪?좊━</strong>: 蹂듭궗 ?대젰 寃€??쨌 ?ъ궗??쨌 蹂묓빀 (Shift+?묅넃 ?좏깮 ??Shift+Enter 蹂묓빀)</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">$</code> <strong>蹂€??/strong>: JSON ?뺣젹, Base64, URL ?몄퐫????12醫?/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">pipe</code> <strong>?뚯씠?꾨씪??/strong>: <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">pipe upper &gt; trim &gt; b64e</code> (19醫??꾪꽣 泥댁씠??</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">batch</code> <strong>?쇨큵 泥섎━</strong>: 以꾨쾲?? ?뺣젹, 以묐났?쒓굅, 媛먯떥湲???14醫?/li>
<li><strong>DPAPI ?뷀샇??/strong>: ?대┰蹂대뱶 ?덉뒪?좊━ ?뚯씪???꾩옱 Windows 怨꾩젙?먯꽌留?蹂듯샇??媛€??/li>
</ul>
<!-- 3-5. 媛쒕컻???꾧뎄 -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">媛쒕컻???꾧뎄</h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">json</code> format / minify / validate</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">encode</code> base64 / url / sha256</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">color #FF5500</code> ??HEX/RGB/HSL/HSV 4醫?蹂€??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">port 3000</code> ???먯쑀 ?꾨줈?몄뒪 ?뺤씤</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">env PATH</code> ???섍꼍蹂€??寃€??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">pick</code> ???ㅽ룷?대뱶濡??붾㈃ ?됱긽 HEX 肄붾뱶 異붿텧 (?뗫낫湲?+ ?ㅼ떆媛?誘몃━蹂닿린)</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">diff</code> ???대┰蹂대뱶 理쒓렐 2媛??먮뒗 ?뚯씪 2媛?鍮꾧탳</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">stats</code> ???띿뒪???듦퀎 (湲€?먯닔/?⑥뼱???쎄린?쒓컙/?ㅼ썙??鍮덈룄)</li>
</ul>
<!-- 3-6. ?붾㈃ 罹≪쿂 -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">?붾㈃ 罹≪쿂</h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">cap region</code> / <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">window</code> / <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">scroll</code> / <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">screen</code> (?ъ슜 鍮덈룄???뺣젹)</li>
<li><strong>吏€??罹≪쿂</strong>: Shift+Enter ??3珥?5珥?10珥??€?대㉧ ??罹≪쿂 <span style="background:#2E75B6; color:#fff; font-size:11px; padding:1px 6px; border-radius:8px;">NEW</span></li>
<li><strong>?ㅽ겕濡?罹≪쿂</strong>: ?쒖꽦 李쎌쓣 ?앷퉴吏€ ?ㅽ겕濡ㅽ븯硫??섏씠吏€ ?꾩껜 罹≪쿂</li>
<li><strong>湲€濡쒕쾶 ?⑥텞??/strong>(PrintScreen ?? 吏€??/li>
<li>蹂댁븞: ?대┰蹂대뱶?먮쭔 蹂듭궗 (?뚯씪 ?€?μ? ?ㅼ젙?먯꽌 ?좏깮)</li>
</ul>
<!-- 3-7. 李?愿€由?룹떆?ㅽ뀥 -->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">李?愿€由?쨌 ?쒖뒪??/h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">~save</code> / <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">~restore</code>: 李?諛곗튂 ?ㅻ깄??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">snap left/right/full</code>: 李?遺꾪븷 ?덉씠?꾩썐</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">win</code>: ?대┛ 李?寃€????利됱떆 ?꾪솚 (Alt+Tab ?€泥?</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">/lock</code>, <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">/timer 5m</code>, <code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">/alarm 14:30</code></li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">svc</code>: Windows ?쒕퉬??愿€由?+ ?대┰蹂대뱶 媛뺤젣 ?ъ떆??/li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">monitor</code>: CPU쨌硫붾え由?룸뵒?ㅽ겕쨌媛€?숈떆媛??ㅼ떆媛?紐⑤땲?곕쭅</li>
</ul>
<!-- 3-8. ?낅Т ?먮룞??-->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">?낅Т ?먮룞??/h3>
<ul>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">journal</code>: ?ㅻ뒛 ?ъ슜????紐낅졊??湲곕컲 ?낅Т ?쇱? 留덊겕?ㅼ슫 ?먮룞 ?앹꽦</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">routine</code>: 異쒓렐/?닿렐 猷⑦떞 ?깅줉 ????踰덉뿉 ?ㅽ뻾</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">scaffold</code>: ?꾨줈?앺듃 ?대뜑 援ъ“ ?쒗뵆由??쇨큵 ?앹꽦</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">rename</code>: ?뚯씪 ?쇨큵 ?대쫫 蹂€寃?(?쒕쾲/?좎쭨 ?쒗뵆由?</li>
<li><code style="background:#F0F0F0; padding:1px 5px; border-radius:3px; font-size:14px;">fav</code>: ?먯< ?곕뒗 ?뚯씪쨌?대뜑 利먭꺼李얘린</li>
</ul>
<!-- 3-9. ?ㅻ낫???⑥텞??-->
<h3 style="font-size:18px; color:#2E75B6; margin-top:24px;">?ㅻ낫???⑥텞??16醫?/h3>
<table style="border-collapse:collapse; width:100%; margin:12px 0;">
<tr style="background:#2E75B6; color:#fff;">
<th style="padding:8px 12px; text-align:left; font-size:14px;">?⑥텞??/th>
<th style="padding:8px 12px; text-align:left; font-size:14px;">湲곕뒫</th>
</tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">F1</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?꾩?留?/td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ctrl+K</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?⑥텞???꾩?留?/td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ctrl+H / R / B</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?덉뒪?좊━ / 理쒓렐 ?뚯씪 / 利먭꺼李얘린</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ctrl+1~9</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">N踰덉㎏ ??ぉ 利됱떆 ?ㅽ뻾</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ctrl+Enter</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">愿€由ъ옄 沅뚰븳 ?ㅽ뻾</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Shift+Enter</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Large Type / 蹂묓빀 ?ㅽ뻾 / 吏€??罹≪쿂</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">??(?붿궡??</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?뚯씪 ?≪뀡 紐⑤뱶 (寃쎈줈蹂듭궗/?먯깋湲??곕?????7醫?</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Delete</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">??ぉ ?쒓굅 (?뺤씤 ?ㅼ씠?쇰줈洹?</td></tr>
</table>
<!-- 4. 蹂댁븞 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">4. 蹂댁븞 ???щ궡 ?꾩슜 ?먯튃</h2>
<p>AX Copilot?€ ?щ궡 ?꾩슜 ?꾨줈洹몃옩?쇰줈, ?몃? ?ㅽ듃?뚰겕 ?듭떊???먯튃?곸쑝濡??섏? ?딆뒿?덈떎.</p>
<ul>
<li><strong>?몃? HTTP/HTTPS ?몄텧 湲덉?</strong> ??HttpClient, WebClient ???ъ슜 遺덇? (AI ?쒕퉬?ㅻ뒗 ?щ궡 Ollama/vLLM ?곕룞)</li>
<li><strong>?대┰蹂대뱶 ?덉뒪?좊━</strong> ??Windows DPAPI ?뷀샇??(CurrentUser 踰붿쐞)</li>
<li><strong>API ??蹂댄샇</strong> ??AES-256-CBC ?뷀샇??紐⑤뱶 吏€??(?ㅼ젙?쇰줈 ?꾪솚 媛€??</li>
<li><strong>?붾㈃ 罹≪쿂</strong> ???대┰蹂대뱶?먮쭔 蹂듭궗, ?뚯씪 ?€?μ? ?ъ슜???ㅼ젙?먯꽌 ?좏깮</li>
<li><strong>?쒖뒪??紐낅졊</strong> ???ъ떆??醫낅즺 ???꾪뿕 紐낅졊 ?ㅽ뻾 ??2?④퀎 ?뺤씤 ?ㅼ씠?쇰줈洹?/li>
<li><strong>?€???€??/strong> ??紐⑤뱺 AI ?€???댁뿭?€ 濡쒖뺄(%APPDATA%)?먮쭔 ?€?? ?몃? ?꾩넚 ?놁쓬</li>
</ul>
<!-- 5. ?뚮쭏 ?쒖뒪??-->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">5. ?뚮쭏 ?쒖뒪??/h2>
<p><strong>9媛??댁옣 ?뚮쭏</strong>(Dark, Light, OLED, Nord, Monokai, Catppuccin, Sepia, Alfred, Alfred Light) + <strong>而ㅼ뒪?€ ?뚮쭏</strong>瑜?吏€?먰빀?덈떎.</p>
<ul>
<li>媛??뚮쭏???됱긽肉??꾨땲??<strong>紐⑥꽌由??쇱슫??鍮꾩쑉</strong>???ㅻ쫭?덈떎 (OLED媛€ 媛€???κ?怨? Monokai媛€ 媛€??媛곸쭚)</li>
<li>而ㅼ뒪?€ ?뚮쭏??14媛??됱긽 + 紐⑥꽌由??쇱슫???щ씪?대뜑濡??먯쑀濡?쾶 ?몄쭛</li>
<li>?몃젅??硫붾돱, AI ?€??李?紐⑤몢 ?꾩옱 ?뚮쭏瑜??먮룞?쇰줈 ?곕씪媛?/li>
</ul>
<!-- 6. ?ъ슜 ?듦퀎 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">6. ?ъ슜 ?듦퀎 & ?뚮┝</h2>
<ul>
<li><strong>?곗쿂 ?몄텧 ?잛닔</strong>: 理쒓렐 14??留됰? 李⑦듃</li>
<li><strong>PC ?쒖꽦 ?쒓컙</strong>: 理쒓렐 14??留됰? 李⑦듃</li>
<li><strong>?곸쐞 紐낅졊</strong>: 30???⑹궛 Top 10 ?쒖쐞</li>
<li><strong>?좉툑 ?댁젣 ?뚮┝</strong>: PC ?좉툑 ?댁젣 ???꾩쟻 ?ъ슜?쒓컙 + 紐낆뼵 ?앹뾽 (30遺?4?쒓컙 媛꾧꺽, 5珥?3遺??쒖떆)</li>
</ul>
<!-- 7. 二쇱슂 紐낅졊???붿빟 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">7. 二쇱슂 紐낅졊???붿빟</h2>
<table style="border-collapse:collapse; width:100%; margin:12px 0;">
<tr style="background:#2E75B6; color:#fff;">
<th style="padding:8px 12px; text-align:left; font-size:14px;">?꾨━?쎌뒪</th>
<th style="padding:8px 12px; text-align:left; font-size:14px;">湲곕뒫</th>
<th style="padding:8px 12px; text-align:left; font-size:14px;">?덉떆</th>
</tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">!</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">AI ?€??(AX Agent)</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">!nginx ?ㅼ젙 諛⑸쾿</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">=</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">怨꾩궛湲?+ ?⑥쐞/?듯솕 蹂€??/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">= 100 USD to KRW</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">#</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?대┰蹂대뱶 ?덉뒪?좊━</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"># api</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">$</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?대┰蹂대뱶 蹂€??(12醫?</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">$ base64</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">cap</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?붾㈃ 罹≪쿂</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">cap region, cap scroll</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">win</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">李??꾪솚 (Alt+Tab ?€泥?</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">win excel</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">snap</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">李?遺꾪븷 ?덉씠?꾩썐</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">snap left, snap full</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">json</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">JSON 寃€利??щ㎎/誘몃땲?뚯씠</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">json format</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">pipe</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?대┰蹂대뱶 ?뚯씠?꾨씪??/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">pipe upper &gt; trim</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">date</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?좎쭨 怨꾩궛/D-day/?€?꾩뒪?ы봽</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">date +30d</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">?</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">??寃€??(10媛??붿쭊)</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?n 留쏆쭛 (?ㅼ씠踰?</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">;</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?띿뒪???ㅻ땲??/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">;addr ???먮룞 ?뺤옣</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">/</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?쒖뒪??紐낅졊 + ?€?대㉧/?뚮엺</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">/timer 5m ?뚯쓽</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">emoji</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?대え吏€ ?쇱빱 (300+)</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">emoji ?껋쓬</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">journal</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?낅Т ?쇱? ?먮룞 ?앹꽦</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">journal</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;"><code style="background:#F0F0F0; padding:1px 4px; border-radius:3px;">routine</code></td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">異쒗눜洹?猷⑦떞 ?ㅽ뻾</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">routine morning</td></tr>
</table>
<!-- 8. 湲곗닠 ?ㅽ깮 -->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">8. 湲곗닠 ?ㅽ깮</h2>
<ul>
<li><strong>.NET 8</strong>, WPF (UseWPF=true), WinForms (?쇰? ?ㅼ씠?쇰줈洹?</li>
<li><strong>P/Invoke</strong>: SetWindowPos, PrintWindow, GlobalMemoryStatusEx, EnumWindows, GetPixel ??Windows API 吏곸젒 ?몄텧</li>
<li><strong>?⑥씪 EXE 諛고룷</strong>: Self-Contained + PublishSingleFile + IncludeNativeLibrariesForSelfExtract</li>
<li><strong>蹂댁븞</strong>: DPAPI(System.Security.Cryptography.ProtectedData), AES-256-CBC, HKCU ?덉??ㅽ듃由?/li>
<li><strong>LLM ?듭떊</strong>: HttpClient SSE ?ㅽ듃由щ컢 (Ollama/vLLM/Gemini/Sigmoid API)</li>
<li><strong>?뚯뒪??/strong>: xUnit 2.9.0 + FluentAssertions (57媛??⑥쐞 ?뚯뒪??</li>
</ul>
<!-- 9. v1.0.5 二쇱슂 蹂€寃?-->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">9. v1.0.5 二쇱슂 蹂€寃??ы빆</h2>
<table style="border-collapse:collapse; width:100%; margin:12px 0;">
<tr style="background:#2E75B6; color:#fff;">
<th style="padding:8px 12px; text-align:left; font-size:14px;">援щ텇</th>
<th style="padding:8px 12px; text-align:left; font-size:14px;">?댁슜</th>
</tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">AX Agent</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">! ?덉빟?대줈 AI ?€??李? Sigmoid Desktop ?ㅽ???2?⑤꼸 援ъ“</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">LLM 4醫?/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Ollama, vLLM, Gemini, Sigmoid API ?듯빀 吏€??/td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?ㅽ듃由щ컢</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">SSE 湲곕컲 ?ㅽ듃由щ컢 + 12ms ?€?댄븨 ?④낵 + 而ㅼ꽌 源쒕묀??/td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">肄붾뱶 媛뺤“</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">10媛??몄뼱 ?ㅼ썙???섏씠?쇱씠??+ 肄붾뱶 釉붾줉 蹂듭궗</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?좏겙 ?쒖떆</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">k/m ?⑥쐞 ?ъ슜??+ ?묐떟 ?뚯슂?쒓컙(珥?</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?꾨\?꾪듃 移대뱶</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">?쒖뒪???꾨\?꾪듃 ?꾨━??+ ?ъ슜???뺤쓽 ?쒗뵆由?/td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?€??愿€由?/td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">怨좎젙/?대쫫蹂€寃?遺꾨쪟/??젣, ?쇰뱶諛? 硫붿떆吏€ ?몄쭛</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">吏€??罹≪쿂</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">Shift+Enter ??3/5/10珥??€?대㉧ ??罹≪쿂</td></tr>
<tr><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">而ㅼ뒪?€ Popup</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">紐⑤뱺 ?쒕∼?ㅼ슫 硫붾돱瑜??쇱슫??而ㅼ뒪?€ Popup?쇰줈 ?듭씪</td></tr>
<tr style="background:#EBF3FB;"><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px; font-weight:bold; white-space:nowrap;">?뚮┝ ?뺤옣</td><td style="padding:6px 12px; border:1px solid #D6E4F0; font-size:14px;">湲곕낯 15珥? 1遺?2遺?3遺??쒖떆 ?쒓컙 異붽?</td></tr>
</table>
<!-- 10. 留덈Т由?-->
<h2 style="font-size:22px; color:#1F3864; border-bottom:3px solid #4472C4; padding-bottom:6px; margin-top:36px;">10. 留덈Т由???LLM怨??④퍡 留뚮뱺 ?꾨줈?앺듃</h2>
<p>AX Copilot?€ 湲고쉷遺€??援ы쁽, ?뚯뒪?? 臾몄꽌?붽퉴吏€ LLM(Sigmoid)怨??④퍡 吏꾪뻾???꾨줈?앺듃?낅땲??</p>
<ul>
<li><strong>湲고쉷</strong>: Alfred, Raycast ??湲곗〈 ?곗쿂???μ젏??遺꾩꽍?섍퀬, ?щ궡 ?섍꼍??留욌뒗 湲곕뒫 ?좊퀎</li>
<li><strong>援ы쁽</strong>: WPF + P/Invoke 湲곕컲?쇰줈 ?몃? ?섏〈???놁씠 45媛? 湲곕뒫 援ы쁽</li>
<li><strong>AI ?듯빀</strong>: Ollama/vLLM/Gemini/Sigmoid 4醫?LLM ?쒕퉬?ㅻ? ?щ궡 ?섍꼍??留욊쾶 ?듯빀</li>
<li><strong>寃€??/strong>: 肄붾뱶 由щ럭, ?ㅻ쪟 遺꾩꽍, 蹂댁븞 ?먭?, ?깅뒫 理쒖쟻?붾? LLM怨??④퍡 諛섎났</li>
<li><strong>臾몄꽌</strong>: 媛쒕컻 臾몄꽌, ?ъ슜??留ㅻ돱?? 釉붾줈洹?湲€源뚯? LLM???묒꽦</li>
</ul>
<p style="margin-top:20px; padding:16px 20px; background:#F0F4F8; border-left:4px solid #2E75B6; border-radius:0 8px 8px 0;">
<em>"媛쒖씤?곸쑝濡??먮? 寃껋?, LLM?€ '肄붾뱶 ?앹꽦湲?媛€ ?꾨땲??'?④퍡 ?앷컖?섎뒗 ?숇즺'??媛€源앸떎??寃껋엯?덈떎."</em><br><br>
<em>"??湲곕뒫?€ ?대젃寃??섎㈃ ?대뼚??" "??遺€遺꾩? 蹂댁븞 由ъ뒪?ш? ?덉뼱" "?ъ슜?먭? ?대젃寃??곕㈃ 臾몄젣?????덉뼱" ???대윴 ?쇰뱶諛깆쓣 二쇨퀬諛쏆쑝硫??꾨줈?앺듃瑜??꾩꽦?덉뒿?덈떎.</em>
</p>
<!-- ?뗮꽣 -->
<div style="text-align:center; margin-top:40px; padding:24px 20px; background:linear-gradient(135deg,#1F3864 0%,#2E75B6 100%); border-radius:12px;">
<p style="color:#fff; font-size:18px; font-weight:bold; margin:0 0 8px;">AX Copilot v1.0.5 ??紐⑤뱺 ?낅Т瑜??ㅻ낫???섎굹濡?</p>
<p style="color:#B8CCE4; font-size:14px; margin:0;">諛깆듅??쨌 AX?곌뎄??AI?€ 쨌 SW Architect 쨌 www.swarchitect.net</p>
</div>
</div>

View File

@@ -1,188 +0,0 @@
# AX Copilot Cowork 업무 활용 계획 보고서
> 작성일: 2026-03-28 | 버전: v1.1.0 기준
---
## 1. 현재 Cowork 기능 요약
### 1.1 에이전트 실행 구조
- **ReAct 패턴**: Plan → Tool Execute → Observe → Re-evaluate
- 최대 25회 반복, 에러 시 3회 자동 재시도 + 자기성찰 메커니즘
- 컨텍스트 자동 압축으로 장기 작업 지원
- 작업 분해(TaskDecomposer)로 단계별 진행 추적
### 1.2 등록된 도구 (14개)
| 구분 | 도구 | 기능 |
|------|------|------|
| 파일 I/O | file_read, file_write, file_edit | 파일 읽기/생성/수정 |
| 검색 | glob, grep | 파일 패턴 검색, 내용 검색 |
| 실행 | process | CMD/PowerShell 명령 실행 (위험 명령 차단) |
| 탐색 | folder_map | 디렉토리 트리 생성 |
| 문서 읽기 | document_read | PDF, DOCX, XLSX, CSV, TXT 텍스트 추출 |
| 문서 생성 | excel_create, docx_create, html_create, markdown_create, csv_create | 5종 포맷 출력 |
| 스크립트 | script_create | BAT/PS1 스크립트 생성 |
### 1.3 프리셋 (5종)
| 프리셋 | 용도 | 주요 출력 |
|--------|------|-----------|
| 보고서 | 정형 보고서 작성 | Excel, Word, HTML |
| 문서작성 | 자유 문서 작성 | Word, Markdown, HTML |
| 데이터분석 | CSV/Excel 데이터 분석 | Excel, HTML 차트 |
| 자동화 | 반복 업무 스크립트화 | BAT, PS1 |
| 파일관리 | 파일 정리/검색/이름변경 | 실행 결과 보고 |
### 1.4 디자인 템플릿 (10종)
Modern, Professional, Creative, Minimal, Elegant, Dark, Colorful, Corporate, Magazine, Dashboard
---
## 2. 업무 활용 가능 영역 검토
### 2.1 경영/기획 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **주간/월간 업무 보고서** | 프리셋=보고서, 폴더 내 데이터 참조하여 HTML/Word 자동 생성 | 낮음 | 보고서 작성 시간 70% 절감 |
| **회의록 정리** | 프리셋=문서작성, 회의 메모 텍스트를 구조화된 문서로 변환 | 낮음 | 형식 통일, 누락 방지 |
| **사업 계획서 초안** | 프리셋=보고서, 참고 자료 읽기 + Corporate 템플릿 적용 | 중간 | 초안 작성 시간 50% 절감 |
| **경쟁사 분석 보고서** | 프리셋=보고서, 수집 자료 종합 + Dashboard 템플릿 | 중간 | 분석 체계화 |
### 2.2 인사/총무 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **인사 데이터 분석** | 프리셋=데이터분석, Excel 인사DB 읽기 → 통계 보고서 | 낮음 | 수작업 집계 제거 |
| **교육 자료 제작** | 프리셋=문서작성, Magazine 템플릿으로 시각적 교재 생성 | 낮음 | 디자인 외주 불필요 |
| **내규/매뉴얼 정리** | 프리셋=문서작성, 기존 문서 읽기 → 최신 버전 재구성 | 중간 | 문서 버전 관리 개선 |
| **급여/근태 엑셀 자동화** | 프리셋=자동화, 반복 계산 스크립트 생성 | 중간 | 월간 2-3시간 절감 |
### 2.3 재무/회계 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **매출 데이터 분석** | 프리셋=데이터분석, CSV/Excel 매출 데이터 → 차트 포함 HTML 보고서 | 낮음 | 실시간 분석 가능 |
| **비용 항목 분류** | 프리셋=데이터분석, 거래 내역 파일 읽기 → 카테고리별 집계 | 낮음 | 수작업 분류 제거 |
| **예산 대비 실적 보고** | 프리셋=보고서, 예산/실적 Excel 비교 → Professional 템플릿 보고서 | 중간 | 월간 보고 시간 60% 절감 |
| **세금계산서 데이터 정리** | 프리셋=파일관리 + 데이터분석, 파일 수집 → CSV 통합 | 중간 | 분기 결산 효율화 |
### 2.4 영업/마케팅 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **고객 데이터 분석** | 프리셋=데이터분석, CRM 내보내기 파일 → 세그먼트 분석 | 낮음 | 타겟팅 정확도 향상 |
| **제안서/견적서 작성** | 프리셋=문서작성, Elegant 템플릿으로 고급 제안서 생성 | 낮음 | 제안서 품질 향상 |
| **캠페인 결과 보고** | 프리셋=보고서, Dashboard 템플릿으로 KPI 시각화 | 중간 | 성과 가시화 |
| **뉴스레터 콘텐츠** | 프리셋=문서작성, Magazine 템플릿으로 뉴스레터 HTML 생성 | 낮음 | 디자인 시간 제거 |
### 2.5 R&D/개발 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **코드 문서화** | 프리셋=문서작성, folder_map + grep으로 코드 분석 → API 문서 생성 | 중간 | 문서화 부채 해소 |
| **테스트 데이터 생성** | 프리셋=자동화, CSV/Excel 형식 테스트 데이터 대량 생성 | 낮음 | QA 준비 시간 절감 |
| **빌드/배포 스크립트** | 프리셋=자동화, BAT/PS1 스크립트 자동 생성 | 낮음 | DevOps 초기 설정 지원 |
| **기술 보고서** | 프리셋=보고서, Modern 템플릿으로 기술 검토 문서 생성 | 중간 | 기술 의사결정 체계화 |
### 2.6 운영/생산 업무
| 업무 | 활용 방식 | 난이도 | 기대효과 |
|------|-----------|--------|----------|
| **재고 데이터 분석** | 프리셋=데이터분석, 재고 Excel → 부족/과잉 분석 보고서 | 낮음 | 재고 관리 효율화 |
| **작업 일지 자동 포맷** | 프리셋=문서작성, 수기 메모 → 정형 일지 Word 변환 | 낮음 | 기록 표준화 |
| **파일 정리 자동화** | 프리셋=파일관리, 날짜/유형별 파일 자동 분류 | 낮음 | 공유폴더 관리 효율화 |
| **품질 검사 보고서** | 프리셋=보고서, 검사 데이터 → Corporate 템플릿 보고서 | 중간 | 보고 양식 통일 |
---
## 3. 고활용 시나리오 (즉시 적용 가능)
### 시나리오 A: 주간 업무 보고서 자동 생성
```
1. 작업 폴더에 주간 업무 메모(txt/md) 저장
2. Cowork → 보고서 → HTML 보고서(Professional 템플릿)
3. "이번 주 업무 내용을 종합해서 주간 보고서 작성해줘"
4. AI가 폴더 문서 읽기 → 구조화 → HTML 보고서 자동 생성
```
**소요 시간**: 기존 30분 → 2-3분
### 시나리오 B: Excel 데이터 분석 → 시각적 보고서
```
1. 작업 폴더에 매출 데이터(xlsx/csv) 저장
2. Cowork → 데이터분석 → HTML 보고서(Dashboard 템플릿)
3. "월별 매출 추이와 상위 품목을 분석해서 보고서 만들어줘"
4. AI가 데이터 읽기 → 집계/분석 → 차트 포함 대시보드 생성
```
**소요 시간**: 기존 1-2시간 → 5분
### 시나리오 C: 다수 문서 종합 → 요약 보고서
```
1. 작업 폴더에 관련 자료(PDF, DOCX, TXT) 수집
2. Cowork → 보고서 → Word(Corporate 템플릿)
3. "폴더 내 문서를 모두 읽고 핵심 내용 종합 보고서 작성해줘"
4. AI가 document_read로 전체 문서 읽기 → 종합 → Word 보고서 생성
```
**소요 시간**: 기존 2-3시간 → 5-10분
### 시나리오 D: 반복 업무 스크립트화
```
1. Cowork → 자동화
2. "매일 아침 특정 폴더의 파일을 날짜별로 정리하는 스크립트 만들어줘"
3. AI가 요구사항 분석 → BAT/PS1 스크립트 생성
```
**소요 시간**: 기존 1시간(개발자 요청) → 3분
---
## 4. 현재 한계 및 향후 개선 방향
### 4.1 현재 한계
| 한계 | 설명 | 영향도 |
|------|------|--------|
| 인터넷 검색 불가 | 외부 데이터 수집 자동화 미지원 | 중간 |
| 이미지/차트 직접 생성 불가 | HTML 내 CSS 기반 시각화만 가능 | 낮음 |
| 대용량 파일 제한 | 8,000자 기본 제한 (document_read) | 중간 |
| 데이터베이스 연동 없음 | DB 직접 쿼리 불가 (파일 내보내기 후 사용) | 중간 |
| 메일/메신저 연동 없음 | 생성 결과 자동 전송 불가 | 낮음 |
### 4.2 향후 개선 계획 (v1.2.0+)
| 우선순위 | 기능 | 기대 효과 |
|----------|------|-----------|
| 1 | **Code 탭 에이전트 활성화** | 코드 분석/수정/테스트 자동화 |
| 2 | **웹 검색 도구 추가** | 실시간 정보 기반 보고서 작성 |
| 3 | **차트 이미지 생성** | 데이터 시각화 품질 향상 |
| 4 | **템플릿 사용자 정의** | 기업 CI/BI 맞춤 문서 생성 |
| 5 | **워크플로우 자동화** | 다단계 작업 사전 정의 및 원클릭 실행 |
---
## 5. 도입 효과 예상
### 정량적 효과
- **문서 작성 시간**: 평균 70% 절감 (30분 → 3-5분)
- **데이터 분석 보고**: 평균 80% 절감 (2시간 → 10-15분)
- **반복 작업 스크립트화**: 비개발자도 자동화 가능
- **디자인 외주 비용**: 10종 템플릿으로 내부 해결
### 정성적 효과
- 보고서 양식/품질 표준화
- 데이터 기반 의사결정 문화 촉진
- 비개발 직군의 자동화 접근성 향상
- 문서 작성 부담 감소로 핵심 업무 집중도 향상
---
## 6. 부서별 우선 도입 권장
| 우선순위 | 부서 | 핵심 활용 | 권장 프리셋 |
|----------|------|-----------|-------------|
| 1순위 | 기획/경영지원 | 주간보고, 회의록, 사업계획 | 보고서, 문서작성 |
| 1순위 | 재무/회계 | 매출분석, 비용분류, 예산보고 | 데이터분석, 보고서 |
| 2순위 | 영업/마케팅 | 제안서, 고객분석, 캠페인보고 | 문서작성, 데이터분석 |
| 2순위 | 인사/총무 | 인사분석, 교육자료, 매뉴얼 | 데이터분석, 문서작성 |
| 3순위 | R&D/개발 | 기술문서, 테스트데이터, 스크립트 | 자동화, 보고서 |
| 3순위 | 운영/생산 | 재고분석, 작업일지, 파일정리 | 데이터분석, 파일관리 |
---
*본 보고서는 AX Copilot v1.1.0 기준으로 작성되었으며, 향후 기능 업데이트에 따라 활용 범위가 확대될 예정입니다.*

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,54 @@
# 연속 진행 기록 (2026-04-04)
## 1) 안정화 점검 결과
- 빌드: `dotnet build` 성공 (경고 0, 오류 0)
- 테스트: `dotnet test` 성공 (425 passed, 0 failed)
## 2) 설정-런타임 연동 확인
아래 설정값은 런타임 코드 경로에서 실제 참조됨.
- `MaxRetryOnError`
- 사용: `AgentLoopService` 재시도 상한
- `EnableProactiveContextCompact`
- 사용: 수동/자동 compact 판단 경로
- `ContextCompactTriggerPercent`
- 사용: compact 임계치 계산
- `MaxContextTokens`
- 사용: LLM 요청 `max_tokens`/`maxOutputTokens`
- `VllmAllowInsecureTls`
- 사용: vLLM HTTP 호출 TLS 검증 우회 분기
- `AgentUiExpressionLevel`
- 사용: slash 도움말/필터 가시성/설정 화면 표현 수준
## 3) 도구/스킬 상태 스냅샷
- `IAgentTool` 구현 클래스 수: 83
- `ToolRegistry.Register(...)` 호출 수: 84
- `skills/*.skill.md` 파일 수: 41
- Slash 명령 매핑 엔트리 수: 85
## 4) claw-code 비교 포인트 (실행 반영 기준)
- claw-code 문서 기준 핵심 slash: `/permissions`, `/mcp` 확인
- AX 현재 매핑에 `/permissions`, `/allowed-tools`, `/mcp`, `/chrome`, `/compact` 포함
- 다음 보강 우선순위:
1. 수동 시나리오 기반 MCP/Chrome 진단 품질 강화
2. Internal/External 정책 전환 시 외부 도구 차단/허용 회귀 테스트
3. 권한 모드 전환과 도구 실행 결과의 사용자 피드백 일관화
## 5) 다음 연속 작업 큐 (실행 순서)
1. 수동 시나리오 체크리스트 4건 완료
2. 실패 시나리오 로그 정형화 및 메시지 개선
3. 설정 항목 도움말 문구를 표현 수준별(풍부/적절/간단) 차등 노출
4. 도구/스킬 비교 리포트 자동 생성 스크립트 추가
## 6) 추가 검증 반영 (2026-04-04 2차)
- 테스트 보강:
- `LlmRuntimeOverrideTests`
- `ResolveServerInfo_VllmGlobalInsecureTls_ShouldBeApplied`
- `ResolveServerInfo_RegisteredModelOverride_ShouldUseEndpointAndApiKey`
- `ChatWindowSlashPolicyTests`
- `/compact` 파싱 케이스 추가
- 부분 회귀 실행:
- OperationMode/Compact/RuntimeOverride 관련 45건 통과
- 남은 수동 항목:
- 실제 사내 vLLM 엔드포인트 연결 성공 확인
- `/compact` 실행 후 UI 토큰/요약 표시 갱신 확인

View File

@@ -1,619 +0,0 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AX Commander (런처) 고도화 계획 | AX Copilot</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Pretendard', 'Segoe UI', 'Malgun Gothic', -apple-system, sans-serif;
font-size: 15px;
background: #f8f9fe;
color: #1a1a2e;
line-height: 1.7;
min-height: 100vh;
}
/* Header */
.header {
background: linear-gradient(135deg, #1a1b2e 0%, #2d3a6b 60%, #4b5efc 100%);
padding: 48px 0 40px;
color: white;
}
.header-inner {
max-width: 900px;
margin: 0 auto;
padding: 0 20px;
}
.header-brand {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: 0.5rem;
}
.header-logo {
width: 48px; height: 48px;
background: rgba(255,255,255,0.15);
border: 1px solid rgba(255,255,255,0.25);
border-radius: 12px;
display: flex; align-items: center; justify-content: center;
font-weight: 800; font-size: 1.2rem; color: #fff;
}
.header h1 {
font-size: 26px;
font-weight: 800;
color: #fff;
line-height: 1.3;
}
.header-meta {
display: flex; gap: 2rem; margin-top: 0.5rem; font-size: 0.85rem; color: rgba(255,255,255,0.65);
}
.header-meta span { display: flex; align-items: center; gap: 0.4rem; }
/* Container */
.container { max-width: 900px; margin: 0 auto; padding: 40px 20px 80px; }
/* TOC */
.toc {
background: white;
border-radius: 12px;
padding: 18px 26px;
margin-bottom: 24px;
box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
.toc h2 {
font-size: 15px;
font-weight: 800;
color: #2e3060;
margin-bottom: 1rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid #e0e0ec;
}
.toc ul { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0.4rem; }
.toc a {
color: #4b5efc;
text-decoration: none;
font-size: 13.5px;
font-weight: 600;
padding: 0.3rem 0.6rem;
border-radius: 6px;
display: block;
transition: all 0.2s;
}
.toc a:hover { background: #eef1ff; color: #1a1a2e; }
/* Section (collapsible) */
.section {
background: white;
border-radius: 12px;
margin-bottom: 16px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
.section-header {
background: #eef1ff;
padding: 12px 20px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
user-select: none;
border-bottom: 1px solid transparent;
transition: border-color 0.2s;
}
.section-header:hover { border-bottom-color: #4b5efc; }
.section-header h2 { font-size: 16px; font-weight: 700; color: #1a1b2e; }
/* Collapsible chevron replaced with triangle markers */
.chevron { display: none; }
.section-header::after {
content: '\25BC';
font-size: 11px;
color: #4b5efc;
transition: transform 0.3s;
}
.section.collapsed .section-header::after { content: '\25B6'; }
.section.collapsed .section-body { display: none; }
.section-body { padding: 20px; }
/* Status badges */
.badge {
display: inline-block;
padding: 2px 10px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
}
.badge-completed { background: rgba(52,211,153,0.15); color: #16a34a; border: 1px solid rgba(52,211,153,0.3); }
.badge-in-progress { background: rgba(251,191,36,0.15); color: #d97706; border: 1px solid rgba(251,191,36,0.3); }
.badge-done { background: rgba(16,185,129,0.15); color: #059669; border: 1px solid rgba(16,185,129,0.3); }
.badge-hold { background: rgba(156,163,175,0.15); color: #6b7280; border: 1px solid rgba(156,163,175,0.3); }
.badge-planned { background: rgba(96,165,250,0.15); color: #3b82f6; border: 1px solid rgba(96,165,250,0.3); }
/* Priority badges */
.priority {
display: inline-block;
padding: 2px 8px;
border-radius: 6px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.priority-highest { background: rgba(248,113,113,0.15); color: #e53e3e; border: 1px solid rgba(248,113,113,0.3); }
.priority-high { background: rgba(251,146,60,0.15); color: #dd6b20; border: 1px solid rgba(251,146,60,0.3); }
.priority-medium { background: rgba(251,191,36,0.15); color: #d97706; border: 1px solid rgba(251,191,36,0.3); }
.priority-low { background: rgba(156,163,175,0.15); color: #6b7280; border: 1px solid rgba(156,163,175,0.3); }
.priority-longterm { background: rgba(139,92,246,0.15); color: #7c3aed; border: 1px solid rgba(139,92,246,0.3); }
/* Tables */
table {
width: 100%;
border-collapse: collapse;
background: white;
font-size: 13.5px;
margin: 1rem 0;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(75,94,252,0.08);
}
thead th {
background: #2e3060;
color: white;
padding: 12px 16px;
text-align: left;
font-weight: 600;
}
tbody td {
padding: 10px 16px;
border-bottom: 1px solid #f0f0f8;
vertical-align: top;
color: #1a1a2e;
}
tbody tr:nth-child(even) td { background: #f8f9fe; }
tbody tr:hover td { background: #f5f6ff; }
tbody tr:last-child td { border-bottom: none; }
/* Feature cards */
.feature-card {
background: #f8f9fe;
border: 1px solid #e0e0ec;
border-radius: 10px;
padding: 16px 20px;
margin-bottom: 12px;
transition: border-color 0.2s;
}
.feature-card:hover { border-color: #4b5efc; }
.feature-card-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 6px;
flex-wrap: wrap;
gap: 0.5rem;
}
.feature-card-header h4 { font-size: 15px; font-weight: 700; color: #2e3060; }
.feature-card p, .feature-card li {
color: #6b6b8a;
font-size: 13px;
margin-bottom: 4px;
}
.feature-card strong { color: #1a1a2e; }
.feature-card ul { padding-left: 1.2rem; }
/* Bullet list */
.bullet-list { list-style: none; padding: 0; }
.bullet-list li {
padding: 0.4rem 0 0.4rem 1.2rem;
position: relative;
color: #6b6b8a;
font-size: 13.5px;
}
.bullet-list li::before {
content: '';
position: absolute;
left: 0;
top: 0.85rem;
width: 6px;
height: 6px;
border-radius: 50%;
background: #4b5efc;
}
/* Separator */
hr {
border: none;
height: 1px;
background: #e0e0ec;
margin: 2rem 0;
}
/* Comparison highlight */
table .check { color: #16a34a; font-weight: 700; }
table .cross { color: #e53e3e; opacity: 0.6; }
/* Footer */
.footer {
text-align: center;
padding: 32px 20px;
color: #8888aa;
font-size: 12px;
border-top: 1px solid #e0e0ec;
margin-top: 40px;
}
/* Print */
@media print {
body { background: #fff; }
.header { page-break-after: always; }
.section-body { display: block !important; }
.section-header::after { content: ''; }
}
@media (max-width: 768px) {
.container { padding: 20px 12px; }
.toc ul { grid-template-columns: 1fr; }
.header h1 { font-size: 20px; }
.header-meta { flex-direction: column; gap: 0.5rem; }
table { font-size: 12px; }
thead th, tbody td { padding: 8px; }
}
</style>
</head>
<body>
<div class="header">
<div class="header-inner">
<div class="header-brand">
<div class="header-logo">AX</div>
<div>
<h1>AX Commander (런처) 고도화 계획</h1>
<div style="color: rgba(255,255,255,0.65); font-size: 14px; margin-top: 0.2rem;">AX Copilot Launcher Roadmap</div>
</div>
</div>
<div class="header-meta">
<span>Version: v1.6.1</span>
<span>Last Updated: 2026-03-30</span>
<span>Status: Active</span>
</div>
</div>
</div>
<div class="container">
<!-- TOC -->
<nav class="toc" id="toc">
<h2>목차 (Table of Contents)</h2>
<ul>
<li><a href="#current-state">현재 상태 (v1.5.0)</a></li>
<li><a href="#comparison">경쟁 서비스 비교</a></li>
<li><a href="#phase-l1">Phase L1 — 차세대 런처 고도화 (v1.5.0)</a></li>
<li><a href="#phase-l2">Phase L2 — 클립보드 고도화 + UX 개선 (v1.5.3)</a></li>
<li><a href="#phase-l3">Phase L3 — 차세대 런처 (v2.0) + Agent Phase 18 교차</a></li>
<li><a href="#tech-debt">기술 부채</a></li>
</ul>
</nav>
<!-- Current State -->
<div class="section" id="current-state">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>현재 상태 (v1.5.0) — 핵심 기능 44개 핸들러</h2>
<span class="badge badge-completed">현재</span>
</div>
</div>
<div class="section-body">
<ul class="bullet-list">
<li>퍼지 검색 + 한글 초성 검색 (FuzzyEngine)</li>
<li>44개 프리픽스 명령 (계산기, 이모지, 웹검색, 스니펫, 클립보드, 프로세스 등)</li>
<li>10가지 테마 + 커스텀 테마</li>
<li>플러그인 시스템 (DLL + JSON 스킬)</li>
<li>AX Agent AI 대화 통합</li>
<li>글로벌 핫키 (Alt+Space), 무지개 글로우 효과</li>
<li>파일/앱 인덱싱, 북마크 검색, 사용 빈도 랭킹</li>
<li>워크스페이스 프로파일 (창 레이아웃 저장/복원)</li>
<li>클립보드 히스토리, 스니펫 확장</li>
<li>스크린 캡처, 컬러 피커, JSON 도구</li>
</ul>
</div>
</div>
<!-- Comparison -->
<div class="section" id="comparison">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>경쟁 서비스 비교 (2026년 3월 기준)</h2>
</div>
</div>
<div class="section-body">
<div style="overflow-x:auto;">
<table>
<thead>
<tr>
<th>기능</th>
<th>AX Commander</th>
<th>Raycast</th>
<th>Alfred 5</th>
<th>Flow Launcher</th>
<th>PowerToys</th>
</tr>
</thead>
<tbody>
<tr><td>AI 대화</td><td class="check">O (AX Agent)</td><td class="check">O (멀티모델)</td><td>워크플로우</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>MCP 프로토콜</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>에이전트 코딩</td><td class="check">O (Code 탭)</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>플러그인</td><td>DLL+JSON</td><td>1500+ 스토어</td><td>워크플로우 갤러리</td><td>200+</td><td>모듈</td></tr>
<tr><td>클립보드 히스토리</td><td class="check">O</td><td class="check">O (리치)</td><td>파워팩</td><td>플러그인</td><td class="cross">X</td></tr>
<tr><td>윈도우 관리</td><td class="check">O (22 레이아웃)</td><td>70+ 레이아웃</td><td class="cross">X</td><td class="cross">X</td><td>FancyZones</td></tr>
<tr><td>파일 탐색기 통합</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>Everything 연동</td><td class="check">O (es 프리픽스)</td><td class="cross">X</td><td class="cross">X</td><td class="check">O</td><td class="cross">X</td></tr>
<tr><td>선택 텍스트 AI</td><td class="check">O (텍스트 액션)</td><td class="check">O (AI Commands)</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>영구 독 UI</td><td class="check">O (독 바)</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">O</td></tr>
<tr><td>클라우드 동기화</td><td class="cross">X</td><td>Pro</td><td>Dropbox</td><td class="cross">X</td><td class="cross">X</td></tr>
<tr><td>다국어</td><td class="check">5개국어</td><td>영어</td><td>영어</td><td>영어</td><td>다국어</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<hr>
<!-- Phase L1 -->
<div class="section" id="phase-l1">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L1 — 차세대 런처 고도화 (v1.5.0)</h2>
<span class="badge badge-done">✓ 완료</span>
</div>
</div>
<div class="section-body">
<!-- L1-1 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-1. 선택 텍스트 AI 명령 (AI Commands)</h4>
<span class="priority priority-highest">최고</span>
</div>
<p><strong>갭:</strong> 런처에서만 AI 사용 가능, 시스템 전역 텍스트 처리 불가</p>
<p><strong>구현:</strong> 글로벌 핫키(예: Alt+A) → 선택된 텍스트에 AI 명령 실행</p>
<p><strong>명령 예시:</strong> 번역, 문법 교정, 요약, 코드 설명, 포맷 변환</p>
<p><strong>참고:</strong> Raycast AI Commands</p>
<p><strong>기술:</strong> InputListener 확장 + Clipboard 읽기 + LLM 호출 + 결과 Popup</p>
</div>
<!-- L1-2 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-2. Everything (voidtools) 연동</h4>
<span class="priority priority-high">높음</span>
</div>
<p><strong>갭:</strong> 자체 인덱싱은 설정된 폴더만 검색, 전체 디스크 검색 불가</p>
<p><strong>구현:</strong> Everything SDK (IPC/HTTP API) 연동으로 NTFS 전체 즉시 검색</p>
<p><strong>폴백:</strong> Everything 미설치 시 기존 IndexService 사용</p>
<p><strong>참고:</strong> Flow Launcher, Wox의 Everything 통합</p>
<p><strong>기술:</strong> Everything.dll P/Invoke 또는 HTTP API (http://localhost:8080)</p>
</div>
<!-- L1-3 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-3. 윈도우 타일링 레이아웃 확장</h4>
<span class="priority priority-high">높음</span>
</div>
<p><strong>갭:</strong> 기본 snap만 지원, 복잡한 레이아웃 불가</p>
<p><strong>구현:</strong> 2분할, 3분할, 4분할, 그리드 레이아웃 (halves/thirds/quarters)</p>
<p><strong>UI:</strong> snap 프리픽스에 레이아웃 선택 UI 추가</p>
<p><strong>참고:</strong> Raycast Window Management (70+ 레이아웃)</p>
<p><strong>기술:</strong> SnapHandler 확장 + Win32 SetWindowPos</p>
</div>
<!-- L1-4 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-4. 플러그인 스토어 (인앱 갤러리)</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 플러그인 설치가 수동 (DLL 파일 복사)</p>
<p><strong>구현:</strong> 인앱 플러그인 브라우저 + 원클릭 설치/업데이트</p>
<p><strong>소스:</strong> GitHub 리포지토리 기반 플러그인 레지스트리 (JSON manifest)</p>
<p><strong>참고:</strong> Raycast Extension Store, Flow Launcher pm install</p>
<p><strong>기술:</strong> PluginHost 확장 + GitHub API + 다운로드/설치 자동화</p>
</div>
<!-- L1-5 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-5. 영구 독/위젯 모드</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 런처는 호출 시에만 나타남, 상시 접근 불가</p>
<p><strong>구현:</strong> 화면 하단/측면에 고정되는 미니 바 (핀 고정 명령, CPU/메모리, 시계)</p>
<p><strong>참고:</strong> PowerToys Command Palette Dock</p>
<p><strong>기술:</strong> 별도 Window (TopMost, 자동 숨김 옵션)</p>
</div>
<!-- L1-6 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-6. 파일 탐색기 대화상자 통합</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 열기/저장 대화상자에서 빠른 검색 불가</p>
<p><strong>구현:</strong> Windows 열기/저장 대화상자 감지 → 런처 오버레이 표시</p>
<p><strong>참고:</strong> Listary의 대화상자 하이재킹</p>
<p><strong>기술:</strong> SetWinEventHook + 대화상자 감지 + 경로 주입</p>
</div>
<!-- L1-7 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-7. 클립보드 히스토리 강화</h4>
<span class="priority priority-medium">중간</span>
</div>
<p><strong>갭:</strong> 텍스트만 저장, 이미지/파일 클립보드 미지원</p>
<p><strong>구현:</strong> 이미지 클립보드 저장, 리치 텍스트, 핀 고정, 카테고리 분류</p>
<p><strong>참고:</strong> Raycast Clipboard (리치 컨텐츠)</p>
<p><strong>기술:</strong> ClipboardHistoryHandler 확장 + 이미지 직렬화</p>
</div>
<!-- L1-8 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-8. 클라우드 설정 동기화</h4>
<span class="badge badge-hold">보류</span>
</div>
<p><strong>갭:</strong> 여러 PC에서 설정 수동 복사 필요</p>
<p><strong>구현:</strong> settings.json + 스니펫 + 별칭을 클라우드 저장소에 동기화</p>
<p><strong>후보:</strong> OneDrive / Google Drive / 사내 NAS 공유 폴더</p>
<p><strong>참고:</strong> Raycast Pro Cloud Sync</p>
</div>
<!-- L1-9 -->
<div class="feature-card">
<div class="feature-card-header">
<h4>L1-9. 커스텀 테마 마켓</h4>
<span class="badge badge-hold">보류</span>
</div>
<p><strong>갭:</strong> 10개 내장 테마만 사용 가능</p>
<p><strong>구현:</strong> 사용자 테마 공유/다운로드 시스템</p>
<p><strong>기술:</strong> 테마 JSON 파일 → GitHub 기반 레지스트리</p>
</div>
</div>
</div>
<hr>
<!-- Phase L1 추가 완료 -->
<div class="section">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L1 추가 완료 (v1.5.0)</h2>
<span class="badge badge-done">✓ 완료</span>
</div>
</div>
<div class="section-body">
<table>
<thead><tr><th>기능</th><th>상태</th></tr></thead>
<tbody>
<tr><td>Windows 탐색기 셸 확장</td><td>✓ ShellExtensionService — HKCU 레지스트리 우클릭 메뉴 등록/해제</td></tr>
<tr><td>저장 공간 관리 UI</td><td>✓ StorageAnalyzer — 사용량 분석, 드라이브 여유, 7/14/30일 정리</td></tr>
<tr><td>설정 도움말 아이콘</td><td>✓ AI 관련 설정 17개에 ? 아이콘 + 커스텀 다크 툴팁</td></tr>
<tr><td>독 바 실시간 설정</td><td>✓ 설정 변경 즉시 반영, 자동 표시, 위치 기억, 히트 테스트 수정</td></tr>
<tr><td>클립보드 이미지 썸네일</td><td>✓ 런처에서 이미지 항목 썸네일 미리보기 표시</td></tr>
<tr><td>런처 독 바 명령어</td><td>✓ /dock 명령으로 독 바 표시/숨기기</td></tr>
</tbody>
</table>
</div>
</div>
<hr>
<!-- Phase L2 -->
<div class="section" id="phase-l2">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L2 — 클립보드 고도화 + UX 개선 (v1.5.3)</h2>
<span class="badge badge-planned">계획</span>
</div>
</div>
<div class="section-body">
<p style="color:#555;margin-bottom:1rem;">
<strong>방향</strong>: 클립보드 히스토리의 실용성 극대화 (이미지 원본 품질, 자동 복사 워크플로우).
Raycast의 리치 클립보드, Alfred의 Snippet 확장을 참고하되 사내 로컬 환경에 최적화.
</p>
<table>
<thead>
<tr><th>#</th><th>기능</th><th>설명</th><th>우선순위</th></tr>
</thead>
<tbody>
<tr><td>L2-1</td><td>클립보드 이미지 원본 해상도 보존</td><td>원본 PNG/BMP 그대로 DPAPI 저장. 썸네일은 표시용으로만 생성. 캐시 정리 정책 (30일/500MB)</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>L2-2</td><td>Shift+Enter 실행 시 자동 클립보드 복사</td><td>클립보드 히스토리에서 미리보기 시 해당 항목을 시스템 클립보드에 자동 복사</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>L2-3</td><td>클립보드 이미지 미리보기 창</td><td>이미지 항목 선택 시 별도 팝업으로 원본 크기 미리보기. 확대/축소, 복사 버튼</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L2-4</td><td>클립보드 검색 강화</td><td>이미지 OCR 텍스트 추출 → 텍스트 기반 이미지 검색. Windows OCR API (로컬)</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L2-5</td><td>클립보드 항목 병합</td><td>여러 텍스트 항목을 선택하여 하나로 병합 (줄바꿈 구분). Ctrl+Click 다중 선택</td><td><span class="priority priority-low">낮음</span></td></tr>
</tbody>
</table>
</div>
</div>
<hr>
<!-- Phase L3 -->
<div class="section" id="phase-l3">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>Phase L3 — 차세대 런처 (v2.0) + Agent Phase 18 교차</h2>
<span class="badge badge-planned">계획</span>
</div>
</div>
<div class="section-body">
<p style="color:#555;margin-bottom:1rem;">
<strong>방향</strong>: 경쟁 런처(Raycast 1500+ 확장, PowerToys Run)의 에코시스템 수준을 참고하되,
사내 보안/오프라인 환경에서 동작하는 자체 완결형 기능으로 구현.<br>
<strong>참고</strong>: AX Agent Phase 18 (v2.0)과 교차 — 플러그인 갤러리(18-2), AI 스니펫(18-3), 퀵링크(18-4), 웹 검색 AI 요약(18-6).
</p>
<table>
<thead>
<tr><th>#</th><th>기능</th><th>참고</th><th>우선순위</th></tr>
</thead>
<tbody>
<tr><td>L3-1</td><td>플러그인 인앱 갤러리 + 레지스트리</td><td>로컬 NAS/Git 레지스트리 기반 탐색/설치/업데이트. → Agent Phase 18-2</td><td><span class="priority priority-high">높음</span></td></tr>
<tr><td>L3-2</td><td>웹 검색 AI 요약</td><td>? 검색 결과를 AI로 요약. → Agent Phase 18-6</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-3</td><td>AI 스니펫</td><td>;email {수신자} {주제} → LLM 초안 자동 생성. → Agent Phase 18-3</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-4</td><td>파라미터 퀵링크</td><td>jira {티켓번호} → URL 템플릿 변수 치환. → Agent Phase 18-4</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-5</td><td>파일 태그 시스템</td><td>사용자 태그 부여, 태그 기반 검색</td><td><span class="priority priority-medium">중간</span></td></tr>
<tr><td>L3-6</td><td>오프라인 AI (로컬 SLM)</td><td>ONNX Runtime + phi-3. → Agent Phase 18-5</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>L3-7</td><td>다중 디스플레이</td><td>모니터별 런처/독 바 위치 기억</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>L3-8</td><td>알림 센터 통합</td><td>Windows 알림과 연동</td><td><span class="priority priority-low">낮음</span></td></tr>
<tr><td>L3-9</td><td>런처 미니 위젯</td><td>날씨/일정/할일 카드형 표시. 로컬 데이터 기반</td><td><span class="priority priority-low">낮음</span></td></tr>
</tbody>
</table>
</div>
</div>
<hr>
<!-- Tech Debt -->
<div class="section" id="tech-debt">
<div class="section-header" onclick="toggleSection(this)">
<div style="display:flex;align-items:center;gap:0.75rem;">
<h2>기술 부채 (v1.5.0 해결)</h2>
<span class="badge badge-done">✓ 완료</span>
</div>
</div>
<div class="section-body">
<table>
<thead>
<tr><th>항목</th><th>상태</th></tr>
</thead>
<tbody>
<tr><td>SnapHandler 기본 기능만</td><td>✓ 22개 레이아웃으로 확장 (3등분, 2/3, 3분할 조합)</td></tr>
<tr><td>Everything 미연동</td><td>✓ EverythingHandler 구현 (es 프리픽스, P/Invoke, graceful fallback)</td></tr>
<tr><td>플러그인 설치 수동</td><td>✓ PluginHost.InstallFromZip() 로컬 zip 자동 추출·등록 (URL 제외: 사내 보안)</td></tr>
<tr><td>이미지 클립보드 미지원</td><td>✓ PNG→Base64 DPAPI 암호화 저장/복원, 앱 재시작 후 이미지 유지</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="footer">
AX Copilot &mdash; AX Commander Roadmap v1.6.1 &middot; Last Updated: 2026-03-30
</div>
<script>
function toggleSection(header) {
const section = header.parentElement;
section.classList.toggle('collapsed');
}
</script>
</body>
</html>

View File

@@ -1,14 +1,24 @@
# AX Commander 로드맵 (전면 재작성)
# AX Commander 로드맵 (전면 재작성)
업데이트: 2026-04-04 10:05 (KST)
## 1. 보존 이력 (요약만 유지)
- v1.5.0: Everything 연동, Dock Bar, 파일대화상자 연동, 클립보드 고도화, 플러그인 ZIP 설치.
- v1.5.3: 클립보드 이미지 원본 보존/복원, Shift+Enter 자동복사, 설정 UX 개선.
- v0.5.0: Everything 연동, Dock Bar, 파일대화상자 연동, 클립보드 고도화, 플러그인 ZIP 설치.
- v0.5.3: 클립보드 이미지 원본 보존/복원, Shift+Enter 자동복사, 설정 UX 개선.
## 2. 재작성 기준
- 런처는 AX Agent 실행 품질을 끌어올리는 입력 허브로 재정의.
- claw-code의 명령 중심 워크플로우를 AX Commander UX에 맞게 흡수.
## 3. 2026 실행 계획 (v1.7.3 ~ v1.8.x)
## 3. 2026 실행 계획 (v0.7.3 ~ v0.8.x)
### 완료 이력
- [완료] Phase L2-3 클립보드 이미지 미리보기 창 구현
- `ClipboardImagePreviewWindow.xaml / .xaml.cs` 신규 추가
- 원본 해상도 표시, `Ctrl+휠`/`+`/`-`/`0`/`F`/`Esc` 줌 단축키 지원
- PNG·JPEG·BMP 저장, 클립보드 복사 지원
- `LauncherWindow`에서 `#` 이미지 항목 `Shift+Enter`로 전용 미리보기 창 열기
- 단축키 도움말 갱신 완료
### Phase L-A 입력 라우팅 정교화
- 목표

View File

@@ -1,259 +0,0 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AX Copilot ??李④린 媛쒕컻 怨꾪쉷 (v1.6.1~v2.0)</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Pretendard', 'Segoe UI', 'Malgun Gothic', sans-serif; font-size: 15px; color: #1a1a2e; background: #f8f9fe; line-height: 1.7; }
.wrap { max-width: 960px; margin: 0 auto; padding: 40px 20px 80px; }
.header { background: linear-gradient(135deg, #1a1b2e 0%, #2d3a6b 60%, #4b5efc 100%); border-radius: 20px; padding: 48px 40px 40px; margin-bottom: 40px; color: white; }
.header h1 { font-size: 26px; font-weight: 800; line-height: 1.3; margin-bottom: 12px; }
.header .subtitle { font-size: 14px; color: rgba(255,255,255,0.65); line-height: 1.6; }
.header .badge { display: inline-block; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.25); border-radius: 20px; padding: 4px 14px; font-size: 12px; font-weight: 600; margin-bottom: 16px; }
h2 { font-size: 20px; font-weight: 800; margin: 40px 0 16px; padding: 14px 20px; background: linear-gradient(135deg, #1a1b2e 0%, #2d3a6b 60%, #4b5efc 100%); color: #fff; border-radius: 12px; }
h3 { font-size: 15px; font-weight: 700; color: #1a1b2e; margin: 20px 0 10px; padding-left: 12px; border-left: 4px solid #4b5efc; }
.card { background: #fff; border-radius: 14px; padding: 20px 24px; margin: 0 0 14px; box-shadow: 0 1px 4px rgba(0,0,0,0.06); }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th { background: #f0f2ff; text-align: left; padding: 8px 12px; font-weight: 700; border-bottom: 2px solid #dde; }
td { padding: 7px 12px; border-bottom: 1px solid #eef; vertical-align: top; }
.check { color: #059669; font-weight: 700; }
.cross { color: #dc2626; }
.new { color: #4b5efc; font-weight: 700; }
.badge-done { display: inline-block; background: rgba(16,185,129,0.15); color: #059669; border: 1px solid rgba(16,185,129,0.3); padding: 2px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.badge-plan { display: inline-block; background: rgba(75,94,252,0.1); color: #4b5efc; border: 1px solid rgba(75,94,252,0.3); padding: 2px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.badge-hold { display: inline-block; background: rgba(156,163,175,0.15); color: #6b7280; border: 1px solid rgba(156,163,175,0.3); padding: 2px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.p-high { color: #dc2626; font-weight: 700; }
.p-mid { color: #d97706; font-weight: 600; }
.p-low { color: #6b7280; }
.footer { text-align: center; font-size: 12px; color: #9999bb; margin-top: 48px; padding-top: 16px; border-top: 1px solid #e4e4f0; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 700px) { .two-col { grid-template-columns: 1fr; } }
</style>
</head>
<body>
<div class="wrap">
<div class="header">
<div class="badge">AX Copilot 李④린 媛쒕컻 怨꾪쉷</div>
<h1>v1.6.1 ~ v2.0 濡쒕뱶留?/h1>
<p class="subtitle">
2026??3??寃쎌웳 ?쒕퉬??遺꾩꽍 (Claw Code, Cursor, Copilot, Windsurf, Raycast, PowerToys) 諛??먯씠?꾪듃 肄붾뵫 ?숉뼢 湲곕컲<br>
?꾩옱 v1.6.1 ??52媛??먯씠?꾪듃 ?꾧뎄, 29媛??댁옣 ?ㅽ궗, 20媛?肄붿썙???꾨━?? 4醫?LLM ?쒕퉬?? </p>
</div>
<!-- ?먥븧???꾩옱 ?꾨즺 ?먥븧??-->
<h2>v1.6.1 ?꾨즺 ?꾪솴</h2>
<div class="two-col">
<div class="card">
<h3>?곗쿂 (Phase L1) <span class="badge-done">?꾨즺</span></h3>
<table>
<tr><td>?좏깮 ?띿뒪??AI 紐낅졊</td><td class="check">O</td></tr>
<tr><td>??諛?(?ㅼ젙 湲곕컲)</td><td class="check">O</td></tr>
<tr><td>?대┰蹂대뱶 ?€/移댄뀒怨좊━</td><td class="check">O</td></tr>
<tr><td>?뚯씪 ?€?붿긽???곕룞</td><td class="check">O</td></tr>
<tr><td>Everything ?곕룞</td><td class="check">O</td></tr>
<tr><td>SnapHandler 22醫?/td><td class="check">O</td></tr>
<tr><td>?꾩씠肄??꾨㈃ 援먯껜</td><td class="check">O</td></tr>
</table>
</div>
<div class="card">
<h3>?€???쒕퉬??(Phase 8~15) <span class="badge-done">?꾨즺</span></h3>
<table>
<tr><td>MCP ?대씪?댁뼵??+ 紐⑤뜽 ?대갚</td><td class="check">O</td></tr>
<tr><td>LSP 肄붾뱶 ?명뀛由ъ쟾??/td><td class="check">O</td></tr>
<tr><td>?쒕툕?먯씠?꾪듃 + 肄붾뱶 ?쒕㎤??寃€??/td><td class="check">O</td></tr>
<tr><td>diff 酉곗뼱 + PDF ?대낫?닿린</td><td class="check">O</td></tr>
<tr><td>?대깽???몃━嫄?+ ?먮룞 ?뚯뒪??猷⑦봽</td><td class="check">O</td></tr>
<tr><td>?먮룞 紐⑤뜽 ?좏깮 (Auto Router)</td><td class="check">O</td></tr>
<tr><td>?먯씠?꾪듃 硫붾え由?+ 硫€?곕え??(Vision)</td><td class="check">O</td></tr>
<tr><td>?먯씠?꾪듃 ???쒖뒪??/td><td class="check">O</td></tr>
<tr><td>?ㅽ궗 ?쒖뒪??29醫?(媛ㅻ윭由??몄쭛湲?媛€?몄삤湲?</td><td class="check">O</td></tr>
<tr><td>AI 肄붾뱶 由щ럭 + ?쒕옒洹??쒕∼ AI</td><td class="check">O</td></tr>
<tr><td>?먯씠?꾪듃 ?꾧뎄 52醫?(?곗씠???쒖뒪???ㅽ듃?뚰겕)</td><td class="check">O</td></tr>
<tr><td>?뚰겕?뚮줈??遺꾩꽍湲?+ ?ㅽ뻾 ?듦퀎 ?€?쒕낫??/td><td class="check">O</td></tr>
<tr><td>硫€?고뙣??臾몄꽌 ?앹꽦 (plan?뭓ssemble)</td><td class="check">O</td></tr>
<tr><td>PPT ?ㅼ씠?곕툕 ?앹꽦 + ?대?吏€ 遺꾩꽍</td><td class="check">O</td></tr>
<tr><td>媛€?대뱶 ?쒖뒪??(?뷀샇??酉곗뼱)</td><td class="check">O</td></tr>
</table>
</div>
</div>
<!-- ?먥븧??寃쎌웳 鍮꾧탳 ?먥븧??-->
<h2>寃쎌웳 ?쒕퉬???€鍮??ъ???(2026??3??</h2>
<div class="card">
<table>
<tr><th>湲곕뒫</th><th>AX Copilot</th><th>Claw Code</th><th>Cursor</th><th>Copilot</th><th>Raycast</th><th>媛?/th></tr>
<tr><td>MCP</td><td class="check">O</td><td class="check">?쒕쾭 紐⑤뱶</td><td class="check">O</td><td class="check">O</td><td class="check">@硫섏뀡</td><td>??/td></tr>
<tr><td>?쒕툕?먯씠?꾪듃</td><td class="check">O</td><td class="check">10媛??€</td><td class="check">8媛??대씪?곕뱶</td><td class="check">?ㅼ쨷</td><td class="cross">X</td><td>?먯씠?꾪듃 ?€</td></tr>
<tr><td>?대깽???몃━嫄?/td><td class="check">O</td><td class="check">?뱁썒+?ㅼ?以?/td><td class="check">Automations</td><td class="check">?댁뒋?뭁R</td><td class="cross">X</td><td>??/td></tr>
<tr><td>?먯씠?꾪듃 硫붾え由?/td><td class="check">O</td><td class="check">O</td><td class="check">O</td><td class="check">O</td><td class="cross">X</td><td>??/td></tr>
<tr><td>?먮룞 紐⑤뜽 ?좏깮</td><td class="check">O</td><td class="cross">X</td><td class="check">O</td><td class="check">O</td><td class="check">Auto</td><td>??/td></tr>
<tr><td>硫€?곕え??/td><td class="check">O</td><td class="check">Vision</td><td class="check">O</td><td class="check">O</td><td class="cross">X</td><td>??/td></tr>
<tr><td>?ㅽ궗 ?쒖뒪??/td><td class="check">O</td><td class="check">Skills</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>AI 肄붾뱶 由щ럭</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="check">Review</td><td class="cross">X</td><td>??/td></tr>
<tr><td>?뚮윭洹몄씤 留덉폆</td><td>zip+媛ㅻ윭由?/td><td class="check">留덉폆</td><td class="check">30+</td><td class="check">Extensions</td><td class="check">1500+</td><td class="p-mid">?몄빋 ?덉??ㅽ듃由?/td></tr>
<tr><td>硫€?고뙣??臾몄꽌</td><td class="check">O (plan?뭓ssemble)</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>?뚰겕?뚮줈??遺꾩꽍</td><td class="check">O (?ㅼ떆媛??쒓컖??</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>?먯깋湲????뺤옣</td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>??諛?/td><td class="check">O</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="cross">X</td><td class="check">李⑤퀎??/td></tr>
<tr><td>Windows ?ㅼ씠?곕툕</td><td class="check">O</td><td>?곕???/td><td>IDE</td><td>IDE</td><td>beta</td><td class="check">李⑤퀎??/td></tr>
</table>
</div>
<!-- ?먥븧??Phase 16 ??李④린 媛쒕컻 ?먥븧??-->
<h2>Phase 16 ???먯씠?꾪듃 吏€??媛뺥솕 + 媛쒕컻??寃쏀뿕 (v1.7.0) <span class="badge-plan">李④린 媛쒕컻</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>湲곕뒫</th><th>?곗꽑?쒖쐞</th><th>?듭떖 ?댁슜</th><th>李멸퀬</th></tr>
<tr><td>16-1</td><td><strong>?뚮옖 紐⑤뱶 (Plan Mode)</strong></td><td class="p-high">理쒓퀬</td>
<td>?먯씠?꾪듃媛€ ?꾧뎄 ?ㅽ뻾 ??援ъ“?붾맂 怨꾪쉷 ?앹꽦 ???ъ슜??寃€???몄쭛/?뱀씤 ???뱀씤 ???ㅽ뻾</td>
<td>Claw Code Plan mode</td></tr>
<tr><td>16-2</td><td><strong>?꾧뎄/而ㅻ꽖??愿€由?UI</strong></td><td class="p-high">?믪쓬</td>
<td>52媛??꾧뎄 移댄뀒怨좊━蹂?移대뱶, ?쒖꽦/鍮꾪솢???좉?, MCP ?쒕쾭 ?곌껐 ?곹깭</td>
<td>Sigmoid 而ㅻ꽖??UI</td></tr>
<tr><td>16-3</td><td><strong>?꾨줈?앺듃 洹쒖튃 ?쒖뒪??/strong></td><td class="p-high">?믪쓬</td>
<td>.ax/rules/*.md ???뚯씪 ?⑦꽩쨌?묒뾽 ?좏삎蹂?洹쒖튃 ?먮룞 二쇱엯</td>
<td>Cursor .cursor/rules</td></tr>
<tr><td>16-4</td><td><strong>諛섎났 ?뚯뒪???섏젙 猷⑦봽</strong></td><td class="p-high">?믪쓬</td>
<td>TestLoopTool auto_fix 紐⑤뱶 ???뚯뒪?멤넂?ㅽ뙣 ?뚯떛?믪닔?뺚넂?ъ떎???먮룞 諛섎났</td>
<td>GitHub Copilot</td></tr>
<tr><td>16-5</td><td><strong>蹂묐젹 ?꾧뎄 ?ㅽ뻾</strong></td><td class="p-mid">以묎컙</td>
<td>LLM ?ㅼ닔 ?꾧뎄 ?숈떆 ?몄텧 ???섏〈??遺꾩꽍 ??Task.WhenAll() 蹂묐젹 ?ㅽ뻾</td>
<td>Claw Code parallel</td></tr>
<tr><td>16-6</td><td><strong>SKILL.md ?쒖? ?꾩쟾 ?명솚</strong></td><td class="p-mid">以묎컙</td>
<td>agentskills.io ?ㅽ럺 ?꾩껜 ?뚯떛, ?몃??붾궡遺€ ?꾧뎄 ?대쫫 留ㅽ븨</td>
<td>16媛? ?꾧뎄 梨꾪깮</td></tr>
<tr><td>16-R</td><td><strong>?고???怨좉툒 ?ㅽ궗 ?뺤옣</strong></td><td class="p-mid">以묎컙</td>
<td>4醫?異붽?: image-processor, diagram-generator, ocr-extract, data-visualize-adv</td>
<td>Pillow, Tesseract</td></tr>
</table>
</div>
<!-- ?먥븧??Phase 17 ?먥븧??-->
<h2>Phase 17 ???ы솕 吏€??+ UX ?곸떊 (v1.8.0) <span class="badge-plan">怨꾪쉷</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>湲곕뒫</th><th>?곗꽑?쒖쐞</th><th>?듭떖 ?댁슜</th><th>李멸퀬</th></tr>
<tr><td>17-1</td><td><strong>?먭린 ?깆같 (Self-Reflection)</strong></td><td class="p-high">理쒓퀬</td>
<td>?꾧뎄 ?ㅽ뙣 ??援ъ“?붾맂 ?깆같 ?꾨\?꾪듃, ?먮윭 ?⑦꽩 異붿쟻 (Reflexion ?⑦꽩)</td>
<td>Reflexion ?쇰Ц</td></tr>
<tr><td>17-2</td><td><strong>?묒뾽 湲곗뼲 (Working Memory)</strong></td><td class="p-high">?믪쓬</td>
<td>?€???뺤텞 ?쒖뿉???좎??섎뒗 援ъ“?붾맂 ?쒖뒪???곹깭 (?꾩옱 ?묒뾽, 李몄“ ?뚯씪, ?섏궗寃곗젙 濡쒓렇)</td>
<td>Windsurf memory</td></tr>
<tr><td>17-3</td><td><strong>硫€?고뙆???듯빀 Diff 酉?/strong></td><td class="p-high">?믪쓬</td>
<td>?먯씠?꾪듃 ?ㅼ닔 ?뚯씪 ?섏젙 ???섎굹???⑤꼸?먯꽌 ?뚯씪蹂??뚰겕蹂??뱀씤/嫄곕?</td>
<td>Cursor multi-file diff</td></tr>
<tr><td>17-4</td><td><strong>?먮룞 而⑦뀓?ㅽ듃 ?섏쭛</strong></td><td class="p-mid">以묎컙</td>
<td>?ъ슜??硫붿떆吏€?먯꽌 ?뚯씪紐?媛먯? ???먮룞 ?쎄린, Git diff, 肄붾뱶 寃€??二쇱엯</td>
<td>Windsurf auto context</td></tr>
<tr><td>17-5</td><td><strong>MCP HTTP+SSE ?꾩넚</strong></td><td class="p-mid">以묎컙</td>
<td>stdio ?꾩슜 ??HTTP+SSE ?몃옖?ㅽ룷??異붽?, ?먭꺽 MCP ?쒕쾭 ?곌껐</td>
<td>MCP ?쒖?</td></tr>
<tr><td>17-6</td><td><strong>?€???붿빟 ?⑤뵒留⑤뱶</strong></td><td class="p-low">??쓬</td>
<td>/summarize-chat ?щ옒??紐낅졊?쇰줈 ?꾩옱 ?€??援ъ“???붿빟</td>
<td>??/td></tr>
</table>
</div>
<!-- ?먥븧??Phase 18 ?먥븧??-->
<h2>Phase 18 ???먯퐫?쒖뒪??+ 李⑤퀎??(v2.0) <span class="badge-plan">怨꾪쉷</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>湲곕뒫</th><th>?곗꽑?쒖쐞</th><th>?듭떖 ?댁슜</th><th>李멸퀬</th></tr>
<tr><td>18-1</td><td><strong>?먯씠?꾪듃 ?€ (Multi-Agent)</strong></td><td class="p-high">理쒓퀬</td>
<td>?뱁솕 ?먯씠?꾪듃(肄붾뱶由щ럭, 臾몄꽌?묒꽦, 蹂댁븞媛먯궗)媛€ 硫붿떆吏€ 踰꾩뒪濡??묒뾽</td>
<td>Claw Code ?먯씠?꾪듃 ?€</td></tr>
<tr><td>18-2</td><td><strong>?뚮윭洹몄씤 媛ㅻ윭由?+ ?덉??ㅽ듃由?/strong></td><td class="p-high">?믪쓬</td>
<td>濡쒖뺄 NAS/Git ?덉??ㅽ듃由?湲곕컲 ?뚮윭洹몄씤/?ㅽ궗 ?몄빋 媛ㅻ윭由?/td>
<td>Raycast Store</td></tr>
<tr><td>18-3</td><td><strong>AI ?ㅻ땲??/strong></td><td class="p-mid">以묎컙</td>
<td>;email {?섏떊?? {二쇱젣} ??LLM???대찓??珥덉븞 ?먮룞 ?앹꽦</td>
<td>Raycast AI Snippets</td></tr>
<tr><td>18-4</td><td><strong>?뚮씪誘명꽣 ?듬쭅??/strong></td><td class="p-mid">以묎컙</td>
<td>jira {?곗폆踰덊샇} ??URL ?쒗뵆由?蹂€??移섑솚 (?щ궡 ?꾧뎄 鍮좊Ⅸ ?묎렐)</td>
<td>Raycast Quicklinks</td></tr>
<tr><td>18-5</td><td><strong>?ㅽ봽?쇱씤 AI (ONNX Runtime)</strong></td><td class="p-low">??쓬</td>
<td>?쒕쾭 ?놁씠 踰덉뿭/?붿빟/遺꾨쪟. 紐⑤뜽 蹂꾨룄 諛고룷 (?몄뒪?⑤윭 ?ш린 ?좎?)</td>
<td>??/td></tr>
<tr><td>18-6</td><td><strong>??寃€??AI ?붿빟</strong></td><td class="p-low">??쓬</td>
<td>? 寃€??寃곌낵瑜?AI濡??붿빟?섏뿬 ?곗쿂???쒖떆</td>
<td>??/td></tr>
</table>
</div>
<!-- ?먥븧???κ린 怨꾪쉷 ?먥븧??-->
<h2>?κ린 ??macOS ?щ줈?ㅽ뵆?ロ뤌 (v2.0+) <span class="badge-plan">?κ린</span></h2>
<div class="card">
<table>
<tr><th>#</th><th>湲곕뒫</th><th>?곗꽑?쒖쐞</th><th>?듭떖 ?댁슜</th></tr>
<tr><td>LP-1</td><td><strong>Avalonia UI 留덉씠洹몃젅?댁뀡</strong></td><td class="p-high">?믪쓬</td>
<td>WPF ??Avalonia UI (.NET ?щ줈?ㅽ뵆?ロ뤌 XAML). Windows/macOS/Linux ?숈씪 肄붾뱶踰좎씠?? Skia ?뚮뜑留?/td></tr>
<tr><td>LP-2</td><td><strong>?꾩씠肄??고듃 ?댁옣</strong></td><td class="p-high">?믪쓬</td>
<td>Segoe MDL2 ??FluentUI System Icons (MIT). macOS?먯꽌???숈씪 ?꾩씠肄?/td></tr>
<tr><td>LP-3</td><td><strong>P/Invoke ?뚮옯??遺꾧린</strong></td><td class="p-high">?믪쓬</td>
<td>RuntimeInformation.IsOSPlatform 遺꾧린. macOS: AppKit, Keychain, CGEventTap, Spotlight</td></tr>
<tr><td>LP-4</td><td><strong>?뚮윭洹몄씤 ?몄빋 媛ㅻ윭由?/strong></td><td class="p-mid">以묎컙</td>
<td>JSON manifest 湲곕컲 ?뚮윭洹몄씤 寃€???ㅼ튂/?낅뜲?댄듃. ?щ궡 NAS ?먮뒗 Git 湲곕컲 ?덉??ㅽ듃由?/td></tr>
</table>
<p style="margin-top:12px;font-size:12px;color:#6b7280;">
<strong>?꾪솚 ?곹뼢</strong>: 鍮꾩쫰?덉뒪 濡쒖쭅 (Services/Agent/Models) 100% ?ъ궗?? UI 怨꾩링 (Views) ??40% ?ъ옉?? 鍮뚮뱶: <code>dotnet publish -r osx-arm64</code>
</p>
</div>
<!-- ?먥븧??蹂대쪟 ?먥븧??-->
<h2>蹂대쪟 <span class="badge-hold">?щ궡 ?섍꼍</span></h2>
<div class="card">
<table>
<tr><td>?대씪?곕뱶 ?ㅼ젙 ?숆린??/td><td>?몃? ?대씪?곕뱶 ?묎렐 ?쒗븳</td></tr>
<tr><td>而ㅼ뒪?€ ?뚮쭏 留덉폆</td><td>?몃? URL 湲곕컲 ?ㅼ슫濡쒕뱶 ?쒗븳</td></tr>
</table>
</div>
<!-- ?먥븧???꾨왂 ?먥븧??-->
<h2>?듭떖 ?꾨왂</h2>
<div class="card">
<h3>1. Windows ?ㅼ씠?곕툕 AI ?뚮옯??/h3>
<p>Raycast(macOS/beta), Cursor(IDE), Claw Code(?곕??? ?ъ씠 怨듬갚. ?щ궡 ?섍꼍 ?좎씪??Windows AI ?곗쿂+?먯씠?꾪듃.</p>
<h3>2. 吏€?ν삎 ?먮룞??/h3>
<p>?먮룞 紐⑤뜽 ?좏깮 + ?대깽???몃━嫄?+ ?먯씠?꾪듃 硫붾え由????ъ슜??媛쒖엯 理쒖냼?? ?뚮옖 紐⑤뱶(v1.7.0)?€ ?먭린 ?깆같(v1.8.0)濡??먯씠?꾪듃 ?뺥솗???μ긽. ?멸컙-?먯씠?꾪듃 ?묒뾽 UX??吏묒쨷.</p>
<h3>3. ?앺깭怨??뺤옣</h3>
<p>?뚮윭洹몄씤+?ㅽ궗 ?쒖뒪?쒖쑝濡?而ㅻ??덊떚 湲곗뿬 援ъ“ 留덈젴. Phase 18?먯꽌 ?뚮윭洹몄씤 媛ㅻ윭由??덉??ㅽ듃由? AI ?ㅻ땲?? ?듬쭅?щ줈 ?곗쿂 ?앺깭怨??꾩꽦. ?щ궡 諛고룷??NAS/Git 湲곕컲.</p>
<h3>4. ?먯씠?꾪듃 ?€ (v2.0 ?듭떖)</h3>
<p>?뱁솕 ?먯씠?꾪듃(肄붾뱶由щ럭, 臾몄꽌?묒꽦, 蹂댁븞媛먯궗)媛€ 硫붿떆吏€ 踰꾩뒪濡??묒뾽?섏뿬 蹂듯빀 ?묒뾽??遺꾩뾽 ?섑뻾. Claw Code ?먯씠?꾪듃 ?€, CrewAI ??븷 湲곕컲 ?€ ?⑦꽩 李멸퀬.</p>
</div>
<!-- ?먥븧??湲곗닠 ?숉뼢 ?먥븧??-->
<h2>2026???먯씠?꾪듃 肄붾뵫 湲곗닠 ?숉뼢</h2>
<div class="card">
<table>
<tr><th>?숉뼢</th><th>?곸꽭</th></tr>
<tr><td>?쒖옣 移⑦닾</td><td>媛쒕컻??85%媛€ AI 肄붾뵫 ?꾧뎄 ?ъ슜</td></tr>
<tr><td>?먯씠?꾪듃 ?꾪솚</td><td>?먮룞?꾩꽦 ???먯쑉 ?먯씠?꾪듃(?대줎?믪닔?뺚넂PR?믫뀒?ㅽ듃)</td></tr>
<tr><td>硫€???먯씠?꾪듃</td><td>Claw Code ?먯씠?꾪듃 ?€, Cursor 8媛??대씪?곕뱶 ?먯씠?꾪듃</td></tr>
<tr><td>?대깽??湲곕컲</td><td>Slack/GitHub/PagerDuty/?뱁썒 ???먯씠?꾪듃 ?먮룞 ?ㅽ뻾</td></tr>
<tr><td>?먯씠?꾪듃 硫붾え由?/td><td>Windsurf 48?쒓컙 ?먮룞 遺꾩꽍, Cursor ?щ떇 硫붾え由?/td></tr>
<tr><td>FeatureBench 媛?/td><td>蹂듭옟 湲곕뒫 11~12% vs 踰꾧렇 ?섏젙 80%+. ?멸컙 媛먮룆 ?꾩닔</td></tr>
<tr><td>?뚮윭洹몄씤 ?앺깭怨?/td><td>紐⑤뱺 二쇱슂 ?꾧뎄媛€ 留덉폆?뚮젅?댁뒪 ?곗묶</td></tr>
<tr><td>?먮룞 紐⑤뜽 ?좏깮</td><td>Raycast Auto, Copilot Auto ???묒뾽 ?좏삎蹂?理쒖쟻 紐⑤뜽 ?쇱슦??/td></tr>
</table>
</div>
<div class="footer">
AX Copilot v1.6.1 ??李④린 媛쒕컻 怨꾪쉷 &middot; 理쒖쥌 ?낅뜲?댄듃: 2026-03-30
</div>
</div>
</body>
</html>

View File

@@ -1,9 +1,9 @@
# AX Copilot 통합 로드맵 (전면 재작성)
## 1. 보존 이력 (요약만 유지)
- v1.5.x: 에이전트/런처 핵심 기능 확장, MCP/스킬/검증 체계 도입.
- v1.6.0: 문서 생성 및 업무 자동화 도구군 확장.
- v1.7.0~v1.7.2: Plan Mode, 병렬 도구, 검증 게이트 및 안정화 강화.
- v0.5.x: 에이전트/런처 핵심 기능 확장, MCP/스킬/검증 체계 도입.
- v0.6.0: 문서 생성 및 업무 자동화 도구군 확장.
- v0.7.0~v0.7.2: Plan Mode, 병렬 도구, 검증 게이트 및 안정화 강화.
## 2. 재작성 목표
- claw-code 수준의 실행 신뢰성, 세션 내구성, 결과 품질 확보.
@@ -13,10 +13,10 @@
| 마일스톤 | 참조 대상 (`claw-code`) | AX 적용 위치 | 완료 조건 | 품질 판정 시나리오 |
|---|---|---|---|---|
| M1 (v1.7.3) Hook 계약 정식화 | `src/utils/hooks.ts`, `src/utils/hooks/hookEvents.ts`, `src/utils/permissions/PermissionUpdate.ts` | `src/AxCopilot/Services/Agent/AgentHookRunner.cs`, `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Models/AppSettings.cs`, `src/AxCopilot/ViewModels/SettingsViewModel.cs`, `src/AxCopilot/Views/SettingsWindow.xaml` | Hook 출력 계약(`updatedInput`, `updatedPermissions`, `additionalContext`) 반영. 설정값-실행코드-UI 동시 반영. | JSON 훅/텍스트 훅 혼합 환경에서 실행 품질과 하위호환 유지 확인. |
| M2 (v1.7.4~v1.7.5) 세션/로그 내구성 | `src/utils/plans.ts`, `src/utils/sessionStorage.ts` | `src/AxCopilot/Services/ChatSessionStateService.cs`, `src/AxCopilot/Services/TaskRunService.cs`, `src/AxCopilot/Services/TaskRunStore.cs`, `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Models/ChatModels.cs` | Plan/Run 상태 영속화. 이벤트 로그 표준화 및 replay 안정성 확보. | 앱 재시작/강제종료 후 동일 세션 재개 시 상태/이력 불일치 0건. |
| M3 (v1.7.6) 도구 선택/복구 안정화 | `src/commands.ts`, `src/Tool.ts`, `src/query.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopParallelExecution.cs`, `src/AxCopilot/Services/LlmService.ToolUse.cs` | 도구 선택 실패 루프 억제. 실패 유형별 복구 흐름 정형화. | 오타/비활성/별칭 도구 요청이 반복 실패 없이 정상 경로로 수렴하는지 확인. |
| M4 (v1.8.0) 품질 게이트 최종 정렬 | `src/query.ts`, `src/QueryEngine.ts`, `src/utils/sessionStorage.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.cs` | 증거 기반 완료 판정 고정. 내부 벤치마크에서 claw-code 동급 품질 달성. | 코드수정/문서생성/권한거부/복구 혼합 시나리오에서 조기완료 없이 근거 기반 종료 확인. |
| M1 (v0.7.3) Hook 계약 정식화 | `src/utils/hooks.ts`, `src/utils/hooks/hookEvents.ts`, `src/utils/permissions/PermissionUpdate.ts` | `src/AxCopilot/Services/Agent/AgentHookRunner.cs`, `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Models/AppSettings.cs`, `src/AxCopilot/ViewModels/SettingsViewModel.cs`, `src/AxCopilot/Views/SettingsWindow.xaml` | Hook 출력 계약(`updatedInput`, `updatedPermissions`, `additionalContext`) 반영. 설정값-실행코드-UI 동시 반영. | JSON 훅/텍스트 훅 혼합 환경에서 실행 품질과 하위호환 유지 확인. |
| M2 (v0.7.4~v0.7.5) 세션/로그 내구성 | `src/utils/plans.ts`, `src/utils/sessionStorage.ts` | `src/AxCopilot/Services/ChatSessionStateService.cs`, `src/AxCopilot/Services/TaskRunService.cs`, `src/AxCopilot/Services/TaskRunStore.cs`, `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Models/ChatModels.cs` | Plan/Run 상태 영속화. 이벤트 로그 표준화 및 replay 안정성 확보. | 앱 재시작/강제종료 후 동일 세션 재개 시 상태/이력 불일치 0건. |
| M3 (v0.7.6) 도구 선택/복구 안정화 | `src/commands.ts`, `src/Tool.ts`, `src/query.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopParallelExecution.cs`, `src/AxCopilot/Services/LlmService.ToolUse.cs` | 도구 선택 실패 루프 억제. 실패 유형별 복구 흐름 정형화. | 오타/비활성/별칭 도구 요청이 반복 실패 없이 정상 경로로 수렴하는지 확인. |
| M4 (v0.8.0) 품질 게이트 최종 정렬 | `src/query.ts`, `src/QueryEngine.ts`, `src/utils/sessionStorage.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.cs` | 증거 기반 완료 판정 고정. 내부 벤치마크에서 claw-code 동급 품질 달성. | 코드수정/문서생성/권한거부/복구 혼합 시나리오에서 조기완료 없이 근거 기반 종료 확인. |
## 4. 측정 지표
- 반복 실패 루프 발생률.
@@ -71,3 +71,63 @@
3. hook 예외/실패는 non-blocking으로 처리하고 권한 흐름은 지속.
4. `additionalContext`는 가능한 경로에서 실행 메시지 컨텍스트에 병합.
## 2026-04-04 추가 계획 (Codex/Claude 추격 로드맵 재정렬)
업데이트: 2026-04-04 13:24 (KST)
### 기준 소스
- claw-code/src/commands.ts
- claw-code/src/utils/permissions/PermissionMode.ts
- claw-code/src/components/PromptInput/PromptInput.tsx
### 현재 AX 격차 요약
1. 입력/슬래시/권한 처리 로직이 ChatWindow 단일 파일에 상대적으로 집중되어 변경 파급도가 큼.
2. 설정-런타임-UI 동기화는 기능은 많지만 구조적 분리가 부족해 회귀 리스크가 높음.
3. Agent loop 품질 게이트는 확보됐으나, UI 상호작용 회귀 시나리오와 결합된 자동 검증이 더 필요함.
### 연속 실행 목표 (L1~L5)
- **L1. 입력 계층 모듈화**
- 목표: slash 명령 카탈로그/매칭/선택 상태를 분리해 ChatWindow 결합도 축소
- 완료 기준: slash 관련 핵심 로직을 독립 파일로 분리하고 기존 slash 테스트 통과
- **L2. 권한 UX/로직 단일 카탈로그화**
- 목표: 권한 모드 명칭/설명/색/정렬 순서를 단일 소스에서 제공
- 완료 기준: 팝업/상태 배너/슬래시 출력에서 동일 용어·동일 순서 유지
- **L3. 설정 동기화 강화**
- 목표: Cowork/Code 설정 분기를 실행 코드 경로까지 일치시켜 회귀 감소
- 완료 기준: 설정 변경 즉시 반영 시나리오 체크리스트 전건 통과
- **L4. Agentic loop + UI 결합 회귀 테스트 보강**
- 목표: internal/external, permission deny/recover, mcp reconnect, compact 수동/자동 흐름을 통합 검증
- 완료 기준: 릴리즈 게이트용 통합 테스트 세트 추가 및 통과
- **L5. Codex/Claude형 UI 마감**
- 목표: 좌측 패널/컴포저/권한 팝업 밀도와 탐색 동작을 단순·일관 패턴으로 정리
- 완료 기준: UI 체크리스트 주요 항목 100% 충족 + 빌드 경고/오류 0
### 이번 턴 즉시 반영 (L1 시작)
- ChatWindow의 대형 slash 명령 사전을 SlashCommandCatalog로 분리.
- ChatWindow는 카탈로그 API(MatchBuiltinCommands, TryGetEntry)를 통해 조회하도록 전환.
- 결과: 입력 계층 결합도 감소 + 향후 slash 확장/정리 시 변경 범위 축소.
## 2026-04-04 실행 프레임 고정 (중기 계획)
업데이트: 2026-04-04 14:47 (KST)
### 3축 고정 운영
1. 로직 안정화: 권한/운영모드/compact/모델 연결 경로를 테스트 우선으로 보강.
2. 기능 동등성: claw-code 기준 주요 명령(/compact, /permissions, /mcp, /chrome)을 실행 시나리오로 검증.
3. UX 정렬: 상단/컴포저/팝업 밀도는 로직 안정화 완료 범위 내에서만 단계 반영.
### 이번 사이클 기준 완료 조건
- 빌드: `dotnet build` 경고 0 / 오류 0.
- 핵심 회귀: 운영모드, 권한, slash, 모델연결, compact 관련 필터 테스트 통과.
- 문서: `README.md`, `docs/DEVELOPMENT.md`에 시간 포함 이력 동기화 후 커밋/푸시.
### 이번 사이클 실제 보강 항목
- `ContextCondenserTests` 추가:
- proactive 비활성 시 무변경 확인
- 대용량 tool_result 축약 동작 확인
- `LlmRuntimeOverrideTests` 보강:
- vLLM 암호화 API키 런타임 복호화 검증
- 등록모델/전역 TLS 우회 플래그 합성 규칙 검증

View File

@@ -1,54 +0,0 @@
# 프롬프트 카드 설정 가이드 (개발자 전용)
## 개요
새 대화 화면의 프롬프트 카드는 **개발자가 미리 설정한 시스템 프롬프트**를 통해
AI의 역할과 응답 스타일을 정의합니다. 사용자는 카드를 클릭하면 해당 모드가 자동 적용되고,
입력란에 안내 문구가 표시되어 내용을 입력한 후 전송합니다.
## 수정 방법
### 파일 위치
```
src/AxCopilot/Views/ChatWindow.xaml
```
### Tag 형식
```
Tag="시스템 프롬프트 내용||입력란 안내 문구"
```
- `||` 구분자 앞: AI에게 전달되는 시스템 프롬프트 (사용자에게 노출되지 않음)
- `||` 구분자 뒤: 사용자 입력란에 표시될 placeholder 안내 문구
### 예시
```xml
<Border Background="{DynamicResource ItemBackground}" CornerRadius="12"
Padding="14,12" Margin="4" Cursor="Hand"
MouseLeftButtonDown="PromptCard_Click"
Tag="당신은 시니어 소프트웨어 엔지니어입니다. 주어진 코드를 리뷰하고...||리뷰할 코드를 붙여넣으세요...">
<StackPanel>
<TextBlock Text="&#xE943;" FontFamily="Segoe MDL2 Assets" FontSize="16"
Foreground="{DynamicResource AccentColor}" Margin="0,0,0,8"/>
<TextBlock Text="코드 리뷰" FontSize="12" FontWeight="SemiBold"
Foreground="{DynamicResource PrimaryText}"/>
<TextBlock Text="코드를 분석하고 개선점을 제안" FontSize="10.5"
Foreground="{DynamicResource SecondaryText}" TextWrapping="Wrap"
Margin="0,3,0,0"/>
</StackPanel>
</Border>
```
### 카드 추가
`<UniformGrid x:Name="PromptCards" Columns="3">` 안에 위 형식의 `<Border>` 블록을 추가합니다.
카드 수가 3개를 초과하면 `Columns` 값을 조정하세요.
### 아이콘
Segoe MDL2 Assets 폰트 코드를 사용합니다.
- 참고: https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-ui-symbol-font
## 동작 흐름
1. 사용자가 카드 클릭
2. 새 대화 생성 → `SystemCommand`에 시스템 프롬프트 자동 삽입
3. 입력란에 placeholder 안내 문구 표시 (선택 상태)
4. 사용자가 내용 입력 후 전송
5. AI가 시스템 프롬프트 역할에 맞게 응답

View File

@@ -1,290 +0,0 @@
# AX Copilot 湲곗닠 ?몃???### ?щ궡 AI ?앹궛???뚮옯?????꾪궎?띿쿂?€ ?듭떖 湲곗닠
> **諛쒗몴 ?€??*: ?щ궡 媛쒕컻?€ / AI ?곌뎄?€
> **踰꾩쟾**: v1.6.1 湲곗? (2026??3??
> **諛쒗몴??*: AX?곌뎄??AI?€
---
## 1. AX Copilot ?대??
> **"Alt+Space ??踰덉쑝濡?紐⑤뱺 ?낅Т ?꾧뎄???묎렐?섎뒗 ?щ궡 ?꾩슜 AI ?뚮옯??**
### ??媛€吏€ ?쒗뭹?쇰줈 援ъ꽦
| ?쒗뭹紐?| ??븷 | 二쇱슂 湲곕뒫 |
|--------|------|-----------|
| **AX Commander** | 湲€濡쒕쾶 ?곗쿂 | 紐낅졊 寃€?? ?꾧뎄 ?ㅽ뻾, ?먮룞??|
| **AX Agent** | AI ?€???붿쭊 | Chat / Cowork / Code 3??|
| **AX Copilot** | ?듯빀 ?뚮옯??| ?????쒗뭹 + ?ㅼ젙쨌蹂댁븞 ?듯빀 |
### ???곗뒪?ы깙 ?깆씤媛€? ??2026??AI ?꾧뎄??諛⑺뼢
> **"釉뚮씪?곗? ?덉쓽 AI"?먯꽌 "??PC?먯꽌 吏곸젒 ?€吏곸씠??AI"濡??꾪솚 以?*
2024~2025??AI ?쒕퉬?ㅻ뱾?€ ??梨꾪똿(ChatGPT, Sigmoid.ai)??二쇰쪟?€吏€留?
2026???꾩옱 **二쇱슂 AI 肄붾뵫 ?쒕퉬?ㅺ? 紐⑤몢 ?곗뒪?ы깙 ???곕????ㅼ씠?곕툕**濡??꾪솚?덉뒿?덈떎:
| ?쒕퉬??| ?뺥깭 | 濡쒖뺄 ?뚯씪 ?묎렐 |
|--------|------|:------------:|
| **Claw Code** | ?곕???CLI (?ъ슜??PC?먯꽌 吏곸젒 ?ㅽ뻾) | ???뚯씪 ?쎄린/?곌린/?ㅽ뻾 |
| **Cursor** | ?곗뒪?ы깙 IDE (Electron 湲곕컲) | ???꾨줈?앺듃 ?꾩껜 遺꾩꽍 |
| **Windsurf** | ?곗뒪?ы깙 IDE (VS Code ?ы겕) | ??48?쒓컙 ?먮룞 ?몃뜳??|
| **GitHub Copilot** | VS Code ?뺤옣 ???낅┰ ?먯씠?꾪듃 | ??濡쒖뺄 Git ?곕룞 |
| **Raycast** | ?곗뒪?ы깙 ?곗쿂 (macOS ?ㅼ씠?곕툕) | ???굿룻뙆?셋룻겢由쎈낫???듯빀 |
**怨듯넻 ?⑦꽩**: AI媛€ ?ㅼ젣濡??좎슜?섎젮硫?**?ъ슜?먯쓽 ?ㅼ젣 ?뚯씪???쎄퀬, ?섏젙?섍퀬, ?ㅽ뻾**?댁빞 ?⑸땲??
??釉뚮씪?곗??먯꽌???닿쾬??遺덇??ν븯誘€濡? 紐⑤뱺 ?쒕퉬?ㅺ? ?곗뒪?ы깙/?곕??먮줈 ?대젮?붿뒿?덈떎.
**AX Copilot?€ ???먮쫫???뺤쨷?숈뿉 ?꾩튂?⑸땲??**
- ?뼢截?**?곗뒪?ы깙 ?ㅼ씠?곕툕** ??WPF ?깆씠 OS ?덈꺼?먯꽌 ?뚯씪쨌?꾨줈?몄뒪쨌?대┰蹂대뱶??吏곸젒 ?묎렐
- ?⑨툘 **湲€濡쒕쾶 ?곗쿂** ??Alt+Space ??踰덉쑝濡??대뼡 ???꾩뿉?쒕뱺 利됱떆 ?몄텧
- ?쨼 **?먯씠?꾪듃 ?꾧뎄 52媛?* ???뚯씪 ?쎄린/?곌린, 肄붾뱶 ?ㅽ뻾, Git, 臾몄꽌 ?앹꽦??AI媛€ 吏곸젒 ?섑뻾
### ?듭떖 ?ㅺ퀎 ?먯튃
- ?룫 **?щ궡 ?꾩슜** ???몃? ?쒕쾭 ?섏〈 ?놁쓬, ?붾젅硫뷀듃由??놁쓬
- ?뮶 **濡쒖뺄 ?곗꽑** ??紐⑤뱺 ?곗씠?곕뒗 `%APPDATA%\AxCopilot\`???€??- ?뵏 **蹂댁븞** ??AES-256 ?ㅼ젙 ?뷀샇?? ??났??諛⑹?
- ?벀 **?몄뒪?⑤윭 150MB ?댄븯** ??.NET 8 ?고????댁옣 ?⑥씪 諛고룷
---
## 2. ?꾩껜 ?꾪궎?띿쿂
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? App.xaml.cs (吏꾩엯?? ???? ?쒕퉬??珥덇린??쨌 ?몃젅???꾩씠肄?쨌 ?꾩뿭 ??愿€由? ???붴??€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? ???뚢??€?€?€?€?€?€?€?쇄??€?€?€?€?€?€?? ?뚢??€?€?쇄??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? AX Commander ?? ?? AX Agent ???? (?곗쿂 WPF) ?? ?? (Chat / Cowork / Code) ???붴??€?€?€?€?€?€?€?р??€?€?€?€?€?€?? ?붴??€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? ???뚢??€?€?€?€?€?€?€?쇄??€?€?€?€?€?€?€?€?€?€?€?€?€?쇄??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? 怨듯넻 ?쒕퉬??怨꾩링 ???? SettingsService 쨌 LogService 쨌 IndexService ???? CryptoService 쨌 McpClientService 쨌 LLMRouter ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
### 湲곗닠 ?ㅽ깮
| 怨꾩링 | 湲곗닠 |
|------|------|
| UI | WPF (.NET 8), WinForms (?몃젅?? |
| ?몄뼱 | C# 12, XAML |
| ?곗씠??| JSON 吏곷젹??(System.Text.Json) |
| 寃€??| TF-IDF + SQLite (肄붾뱶), ?쇱? ?붿쭊 (?곗쿂) |
| AI | Ollama쨌vLLM (?щ궡), Gemini쨌Sigmoid (?몃? ?듭뀡) |
| ?꾨줈?좎퐳 | MCP (Model Context Protocol) |
---
## 3. AX Commander ???곗쿂 湲곗닠
### ?낅젰 ??寃곌낵 泥섎━ ?뚯씠?꾨씪??
```
?ъ슜???낅젰
?? ??CommandResolver (?꾨━?쎌뒪 ?쇱슦??
?? ?쒋??€ ?꾨━?쎌뒪 留ㅼ묶 ?€?€??44媛??몃뱾???ㅽ뻾
?? = 怨꾩궛湲? ; ?ㅻ땲?? # ?대┰蹂대뱶
?? @ URL 蹂꾩묶 ~ ?대뜑 $ ?대┰蹂대뱶 蹂€?? ?? ! ?뚰겕?ㅽ럹?댁뒪 / ?쒖뒪??紐낅졊
?? color쨌date쨌emoji쨌port쨌json쨌encode ?? ?? ?붴??€ ?꾨━?쎌뒪 ?놁쓬 ?€?€??FuzzyEngine
(?쒓뎅??珥덉꽦 + ?쇱? 留ㅼ묶)
```
### FuzzyEngine ?듭떖 ?뚭퀬由ъ쬁
```
?낅젰: "?ㅼ젙"
??珥덉꽦 異붿텧: "?끹뀍"
??LCS(理쒖옣 怨듯넻 遺€遺??섏뿴) 湲곕컲 ?먯닔 怨꾩궛
???ъ슜 鍮덈룄 媛€以묒튂 ?곸슜 (UsageRankingService)
???뺣젹 ??寃곌낵 諛섑솚
```
### 二쇱슂 ?몃뱾??移댄깉濡쒓렇 (44醫?
| 移댄뀒怨좊━ | ?몃뱾??| 湲곕뒫 |
|----------|--------|------|
| 媛쒕컻 ?꾧뎄 | json, encode, port, color | JSON 寃€利? ?몄퐫?? ?ы듃 議고쉶, ?됱긽 蹂€??|
| ?뚯씪/?쒖뒪??| recent, rename, scaffold, svc | 理쒓렐 ?뚯씪, ?쇨큵 ?대쫫蹂€寃? ?꾨줈?앺듃 ?앹꽦 |
| ?앹궛??| note, snippet, date, stats | 硫붾え, ?ㅻ땲?? ?좎쭨 怨꾩궛, ?띿뒪??遺꾩꽍 |
| UI/?붾㈃ | cap, snap, pick | ?붾㈃ 罹≪쿂, 李?諛곗튂, ?됱긽 異붿텧 |
| ?뚰겕?ㅽ럹?댁뒪 | !, workspace | 22媛??덉씠?꾩썐, ?꾨줈?뚯씪 ?€??蹂듭썝 |
---
## 4. AX Agent ??AI ?€???붿쭊
### ?먯씠?꾪듃 猷⑦봽 (AgentLoopService)
```
?ъ슜??硫붿떆吏€
?? ???뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ?먯씠?꾪듃 猷⑦봽 (諛섎났) ???? ???? 1. LLM API ?몄텧 ???? 2. ?묐떟 ?뚯떛 ???? 3. ?꾧뎄 ?몄텧 媛먯? ???? 4. ?꾧뎄 ?ㅽ뻾 ?귘뾼?€?€?€?€ 52媛??꾧뎄
?? 5. 寃곌낵 ??而⑦뀓?ㅽ듃 異붽? ???? 6. 紐⑺몴 ?ъ꽦? ??醫낅즺 ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? ??理쒖쥌 ?묐떟 ?ㅽ듃由щ컢 異쒕젰 (SSE)
```
### 3媛??€????쓽 ?뱀꽦
| ??| 紐⑹쟻 | ?쒖뒪???꾨\?꾪듃 | 二쇱슂 ?꾧뎄 |
|----|------|----------------|-----------|
| **Chat** | ?쇰컲 AI ?€??| 踰붿슜 ?댁떆?ㅽ꽩??| 湲곕낯 ?꾧뎄 |
| **Cowork** | ?낅Т ?먮룞??| 20媛??꾨━???뱁솕 | 臾몄꽌쨌?곗씠???꾧뎄 |
| **Code** | 媛쒕컻 吏€??| 肄붾뵫 ?먯씠?꾪듃 | LSP쨌Git쨌鍮뚮뱶 ?꾧뎄 |
### 而⑦뀓?ㅽ듃 愿€由?
- **?좏겙 異붿젙**: `TokenEstimator` ??CJK 臾몄옄 媛€以묒튂 ?곸슜, ?ㅼ떆媛?鍮꾩슜 ?쒖떆
- **?€???뺤텞**: 而⑦뀓?ㅽ듃 珥덇낵 ??`ContextCondenser`濡??붿빟 ???ъ븬異?- **?€??遺꾧린**: `ParentId` 湲곕컲 ?몃━ 援ъ“, ?고겢由?"?ш린??遺꾧린"
---
## 5. ?꾧뎄 ?앺깭怨???52媛??먯씠?꾪듃 ?꾧뎄
### ?꾧뎄 移댄뀒怨좊━
```
?뚯씪쨌肄붾뱶 (18媛? 臾몄꽌쨌?곗씠??(12媛?
file_read/write document_read/write
directory_list pptx_create
search_files xlsx_analyze
file_watch data_pivot
lsp_goto_definition template_render
lsp_find_references text_summarize
search_codebase (TF-IDF) image_analyze
媛쒕컻 (12媛? ?쒖뒪?쑣룻봽濡쒖꽭??(10媛?
git_status/diff/commit process_run
build_run environment_read
test_generate/run clipboard_read/write
code_review screen_capture
spawn_agent notification_show
```
### ?ㅽ궗 ?쒖뒪??(29媛??댁옣 ?щ옒??紐낅졊)
```
/daily-standup /email-draft /code-review
/translate /security-audit /prd-generator
/weekly-report /refactor /gen-test
/changelog /sql-report /perf-audit ??```
- `*.skill.md` 留덊겕?ㅼ슫 ?뚯씪濡??뺤쓽 (YAML ?꾨줎?몃ℓ??
- `%APPDATA%\AxCopilot\skills\` ?몃? ?대뜑濡??щ퉴???놁씠 異붽?
- Python/Node.js ?고???媛먯? ??怨좉툒 ?ㅽ궗 ?먮룞 ?쒖꽦??
---
## 6. 肄붾뱶 ?명뀛由ъ쟾??湲곗닠
### LSP (Language Server Protocol) ?곕룞
```
?먯씠?꾪듃 LSP ?쒕쾭
?? ?? ?쒋? lsp_goto_definition ?€?€??OmniSharp (C#)
?쒋? lsp_find_references ?€?€??typescript-language-server
?붴? lsp_symbols ?€?€??pyright (Python)
```
**?④낵**: ?띿뒪??寃€?됱씠 ?꾨땶 ?섎? 湲곕컲 肄붾뱶 ?먯깋 ???섏젙 ?뺥솗???€???μ긽
### ?쒕㎤??肄붾뱶 寃€??(TF-IDF ?붿쭊)
```
1. ?꾨줈?앺듃 ?뚯씪 ?몃뜳?? ?붴??€ 諛붿씠洹몃옩 ?좏겕?섏씠?€ + ?ㅽ넲?뚮뱶 ?쒓굅
?붴??€ SQLite ?곸냽 ?€??(利앸텇 ?낅뜲?댄듃)
2. 吏덉쓽 ??愿€???뚯씪 ?먮룞 寃€?? ?붴??€ TF-IDF ?먯닔 怨꾩궛 ???곸쐞 N媛?諛섑솚
?붴??€ ?먯씠?꾪듃媛€ ?먮룞?쇰줈 愿€??肄붾뱶 ?쎄린
```
### MCP (Model Context Protocol) ?대씪?댁뼵??
- `stdio` + `JSON-RPC 2.0` ?쒖? 援ы쁽
- ?몃? MCP ?쒕쾭???꾧뎄瑜??먯씠?꾪듃 ?꾧뎄濡??먮룞 ?섑븨
- ?щ궡 ?꾩슜 MCP ?쒕쾭留??곌껐 ?덉슜
---
## 7. 蹂댁븞 & ?щ궡 ?섍꼍 ?ㅺ퀎
### ?ㅼ링 蹂댁븞 援ъ“
```
?덉씠??1: ?ㅼ젙 ?뷀샇?? ?붴??€ settings.json ??AES-256-GCM ??settings.dat
?붴??€ PC蹂?DPAPI ??議고빀 (?댁떇 遺덇?)
?덉씠??2: ??났??諛⑹? (AntiTamper)
?붴??€ ?붾쾭嫄?媛먯?, 由щ쾭???꾧뎄 ?꾨줈?몄뒪 媛먯?
?붴??€ ?щ궡 IP ?€???덉쇅 泥섎━ (媛쒕컻 ?섍꼍)
?덉씠??3: 蹂댁븞 媛먯궗 濡쒓렇
?붴??€ AuditLogService ??紐⑤뱺 ?꾧뎄 ?몄텧 JSON ?곸냽?? ?붴??€ 媛쒕컻??紐⑤뱶?먯꽌 媛먯궗 濡쒓렇 ?대뜑 ?닿린
?덉씠??4: ?ㅽ뻾 踰붿쐞 ?쒗븳
?붴??€ ?몃? HTTP ?몄텧 湲덉? (LLM API ?쒖쇅)
?붴??€ ?먭꺽 肄붾뱶 ?ㅽ뻾 湲덉?
?붴??€ ?붾젅硫뷀듃由??꾩쟾 李⑤떒
```
### 紐⑤뜽 ?쇱슦???꾨왂
```
吏덈Ц ?좏삎 遺꾨쪟
?? ?쒋??€ 肄붾뵫/湲곗닠 ??肄붾뱶 ?뱁솕 紐⑤뜽 (?щ궡 vLLM)
?쒋??€ 踰덉뿭/?붿빟 ??寃쎈웾 紐⑤뜽 (Ollama)
?붴??€ 蹂듭옟 遺꾩꽍 ???€??紐⑤뜽 (Gemini Pro / Sigmoid)
?대갚 泥섎━: 紐⑤뜽 ?ㅻ쪟 ??FallbackModels ?쒖감 ?쒕룄
```
---
## 8. Phase蹂?媛쒕컻 ?꾪솴
### ?꾨즺??二쇱슂 Phase
| Phase | 踰꾩쟾 | ?듭떖 ?깃낵 |
|-------|------|-----------|
| 2.5~7 | v1.1~1.2 | ?먯씠?꾪듃 猷⑦봽, 21媛??꾧뎄, 留덊겕?ㅼ슫 ?뚮뜑??|
| 8 | v1.5.0 | MCP ?대씪?댁뼵?? 紐⑤뜽 ?대갚, ?€??遺꾧린, ?좏겙 愿€由?|
| 9 | v1.5.0 | LSP ?곕룞, 蹂묐젹 ?먯씠?꾪듃, 肄붾뱶 ?쒕㎤??寃€?? ?대깽???몃━嫄?|
| 10~11 | v1.5.0 | Auto Router, ?먯씠?꾪듃 硫붾え由? ?ㅽ궗 ?쒖뒪?? AI 肄붾뱶 由щ럭 |
| 15 | v1.6.0 | 硫€?고뙣??臾몄꽌 ?앹꽦, 42??2媛??꾧뎄, 29媛??댁옣 ?ㅽ궗 |
| 16 | v1.7.0 | ?뚮옖 紐⑤뱶, 蹂묐젹 ?꾧뎄 ?ㅽ뻾, ?꾨줈?앺듃 洹쒖튃 ?쒖뒪??|
### ?꾩옱 洹쒕え (v1.6.1)
```
?먯씠?꾪듃 ?꾧뎄: 52媛??댁옣 ?ㅽ궗: 29媛?肄붿썙???꾨━?? 20媛?吏€??LLM: 4醫?(Ollama 쨌 vLLM 쨌 Gemini 쨌 Sigmoid)
?곗쿂 ?몃뱾?? 44媛?吏€???뚮쭏: 10醫?```
---
## 9. 李④린 媛쒕컻 諛⑺뼢 (v1.8~2.0)
### 寃쎌웳 ?쒕퉬???€鍮?濡쒕뱶留?
| 湲곕뒫 | 寃쎌웳 ?쒕퉬??| AX Copilot 怨꾪쉷 |
|------|-------------|-----------------|
| ?먭린 ?깆같 猷⑦봽 | Claw Code Reflexion | **v1.8** ?먭린 ?깆같 ?쒕퉬??|
| ?곸냽 ?묒뾽 湲곗뼲 | Windsurf Memory | **v1.8** Working Memory |
| 硫€?고뙆??Diff | Cursor diff view | **v1.8** ?듯빀 Diff UI |
| HTTP+SSE MCP | Claw Code ?먭꺽 | **v1.8** MCP HTTP ?꾩넚 |
| ?먯씠?꾪듃 ?€ | GitHub Copilot Workspace | **v2.0** ?ㅼ쨷 ?먯씠?꾪듃 |
| ?뚮윭洹몄씤 媛ㅻ윭由?| Raycast Store | **v2.0** 濡쒖뺄 ?덉??ㅽ듃由?|
### ?щ궡 ?섍꼍 ?뱁솕 ?먯튃 ?좎?
- ???몃? ?쒕쾭 ?섏〈 ?놁쓬 ???⑦봽?덈???LLM ?곗꽑
- ???몄뒪?⑤윭 150MB ?댄븯 ?좎?
- ???뚮윭洹몄씤 濡쒖뺄 zip ?ㅼ튂留??덉슜
- ??紐⑤뱺 ?곗씠??濡쒖뺄 ?€??
---
## 10. ?뺣━ 諛?Q&A
### AX Copilot??湲곗닠??李⑤퀎??
```
1. ?꾩쟾 ?ㅽ봽?쇱씤 ?숈옉 媛€??(?щ궡 Ollama/vLLM)
2. 52媛??먯씠?꾪듃 ?꾧뎄 + 29媛??щ옒???ㅽ궗
3. LSP 湲곕컲 ?ㅼ젣 肄붾뱶 ?댄빐 (?띿뒪??寃€???섏? 珥덉썡)
4. MCP ?쒖??쇰줈 ?щ궡 ?쒕쾭 ?먯쑀 ?곌껐
5. AES-256 + DPAPI ?댁쨷 ?뷀샇???ㅼ젙 蹂댁븞
6. ?꾩뿭 ?ロ궎 Alt+Space ???대뼡 ?깆뿉?쒕룄 利됱떆 ?몄텧
```
### ?ν썑 湲곗뿬 諛⑸쾿
- **?ㅽ궗 異붽?**: `*.skill.md` ?뚯씪 ?묒꽦 ??`%APPDATA%\AxCopilot\skills\` 諛곗튂
- **MCP ?쒕쾭**: ?щ궡 ?꾧뎄瑜?MCP ?쒕쾭濡??몄텧 ??AX Copilot?먯꽌 ?먮룞 ?ъ슜
- **?뚮윭洹몄씤**: `IActionHandler` ?명꽣?섏씠??援ы쁽 ??DLL 諛곗튂
---
*諛쒗몴 ?먮즺 ?묒꽦: AX?곌뎄??AI?€ | 臾몄쓽: ?대? 硫붿떊?€*

View File

@@ -1,249 +0,0 @@
# ?먯씠?꾪듃 猷⑦봽 ?꾪궎?띿쿂 ???뚰겕?뚮줈??鍮꾧탳 遺꾩꽍
> **?€??*: 湲곗닠 ?꾩썝 쨌 媛쒕컻 由щ뜑
> **珥덉젏**: ?먯씠?꾪듃 肄붾뵫 ?쒕퉬?ㅼ쓽 ?듭떖 ?뚰겕?뚮줈??援ъ“?€ ?덉쭏 蹂댁쬆 ?꾨왂
> **?묒꽦??*: 2026-03-31
---
## 1. ?먯씠?꾪듃 猷⑦봽?€?
AI 肄붾뵫/臾몄꽌 ?앹꽦 ?쒕퉬?ㅼ쓽 ?듭떖 ?붿쭊?€ **?먯씠?꾪듃 猷⑦봽**?낅땲??
```
?ъ슜???붿껌 ??[LLM ?먮떒] ??[?꾧뎄 ?ㅽ뻾] ??[寃곌낵 愿€李? ??[LLM ?ы뙋?? ??... ??理쒖쥌 ?묐떟
```
??諛섎났(iteration)??**?쇰쭏??吏€?μ쟻?쇰줈, ?쇰쭏???덉쭏 ?덇쾶 ?섑뻾?섎뒓??*媛€ ?쒕퉬??寃쎌웳?μ쓣 寃곗젙?⑸땲??
---
## 2. ?낃퀎 二쇱슂 ?쒕퉬???뚰겕?뚮줈??鍮꾧탳
### 2-1. OpenHands (?ㅽ뵂?뚯뒪, ICLR 2025)
OpenHands??CodeAct ?쇰Ц 湲곕컲???먯씠?꾪듃 ?꾨젅?꾩썙?ъ엯?덈떎.
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? AgentController ???? ???? while budget > 0: ???? action = agent.step(state) ??1 LLM ?몄텧 ???? observation = runtime.run(action) ???꾧뎄 ?ㅽ뻾???? state.update(action, observation) ???? if action == AgentFinishAction: ???? break ??LLM??"???대씪 ?먮떒?섎㈃ 醫낅즺 ???? ???? ??寃€利?寃€???④퀎: ?놁쓬 ???? ??怨꾪쉷 ?앹꽦: ?놁쓬 (LLM ?먯쑉 ?먮떒) ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
**?듭떖 ?뱀쭠**:
- **1 諛섎났 = 1 LLM ?몄텧 + 1 ?꾧뎄 ?ㅽ뻾** (怨좎젙)
- 怨꾪쉷(Plan) ?놁쓬 ??LLM??chain-of-thought???섏〈
- 寃€利?Review) ?놁쓬 ??LLM???뚯븘???ㅼ쓬 諛섎났?먯꽌 ?뺤씤?좎? 寃곗젙
- 醫낅즺??`AgentFinishAction` 諛섑솚?쇰줈 寃곗젙 (LLM ?먯쑉)
- **SecurityAnalyzer**: ?ㅽ뻾 ???꾪뿕???됯? (LOW/MEDIUM/HIGH) ???덉쭏 寃€利앹씠 ?꾨땶 **?덉쟾 寃뚯씠??*
**?μ젏**: ?⑥닚, 鍮좊쫫, 紐⑤뜽 臾닿?
**?쎌젏**: 臾몄꽌 ?앹꽦 ??寃€??蹂댁옣 ?놁쓬, LLM??"異⑸텇?섎떎"怨??먮떒?섎㈃ 誘몄셿???곹깭濡?醫낅즺
### 2-2. Claw Code (Sigmoid)
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? Claw Code Agent Loop ???? ???? while true: ???? response = llm.call(messages) ??1 LLM ?몄텧 ???? if no tool_calls: ???? break ???띿뒪?몃쭔 諛섑솚?섎㈃ 醫낅즺 ???? for tool in tool_calls: ???? result = execute(tool) ???? messages.append(result) ???? ???? ??寃€利??④퀎: ?놁쓬 (?쒖뒪???꾨\?꾪듃 沅뚭퀬留? ???? ??怨꾪쉷: SKILL.md ?꾨\?꾪듃濡??좊룄 ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
**?듭떖 ?뱀쭠**:
- OpenHands?€ ?숈씪??援ъ“ (1 諛섎났 = 1 LLM ?몄텧)
- 醫낅즺: ?꾧뎄 ?몄텧???놁쑝硫?醫낅즺 (OpenHands??AgentFinishAction怨??좎궗)
- 寃€利? ?쒖뒪???꾨\?꾪듃??"?뺤씤?섎씪"怨??묒꽦 媛€?ν븯?? **LLM??臾댁떆?????덉쓬**
- 李⑤퀎?? SKILL.md ?쒖??쇰줈 ?꾨찓?몃퀎 ?꾨\?꾪듃 而ㅼ뒪?곕쭏?댁쭠
### 2-3. Cursor / Windsurf / GitHub Copilot
紐⑤몢 ?숈씪??**?⑥씪 LLM ?몄텧 猷⑦봽** ?⑦꽩:
- Cursor: Tab ??Apply 湲곕컲, ?먯씠?꾪듃 紐⑤뱶?먯꽌??1?몄텧/諛섎났
- Windsurf (Cascade): Flow 湲곕컲?댁?留?猷⑦봽 援ъ“???숈씪
- GitHub Copilot: 肄붾뱶 ?꾩꽦 ?뱁솕, ?먯씠?꾪듃 紐⑤뱶??Claw Code?€ ?좎궗
**怨듯넻 ?쎌젏**: **臾몄꽌/肄붾뱶 ?앹꽦 ??"?쎌뼱???뺤씤"?섎뒗 ?꾪궎?띿쿂媛€ ?놁쓬**
---
## 3. ??寃€利??④퀎媛€ ?놁쓣源?
### 3-1. AgentFinishAction 臾몄젣
OpenHands??LLM??`AgentFinishAction`??諛섑솚?섎㈃ 猷⑦봽媛€ 醫낅즺?⑸땲??
```python
# OpenHands??醫낅즺 ?먮떒
if isinstance(action, AgentFinishAction):
return # LLM??"???대씪怨??섎㈃ ??```
**臾몄젣**: LLM??"?뚯씪???앹꽦?덉쑝?????대씪怨??먮떒?섎㈃, **?댁슜??遺덉셿?꾪빐??醫낅즺**?⑸땲??
?곕━????AgentFinishAction???ъ슜?섏? ?딅뒗媛€?
| ??ぉ | AgentFinishAction (OpenHands) | ?꾧뎄 ?몄텧 ?놁쓬 醫낅즺 (AX Copilot) |
|------|------------------------------|--------------------------------|
| 醫낅즺 ?먮떒 | LLM??紐낆떆?곸쑝濡?"finish" ?≪뀡 諛섑솚 | LLM???띿뒪?몃쭔 諛섑솚 (?꾧뎄 誘명샇異? |
| ?μ젏 | 紐낆떆?? 醫낅즺 ?댁쑀 ?ы븿 媛€??| 蹂꾨룄 ?≪뀡 ?뺤쓽 遺덊븘?? ?먯뿰?ㅻ윭???€???먮쫫 |
| ?⑥젏 | finish ?몄텧???딄굅???섎せ ?몄텧 媛€??| LLM???꾧뎄瑜?遺€瑜댁? ?딆쑝硫??섎룄移??딄쾶 醫낅즺 |
| 寃€利??€?대컢 | finish ?꾩뿉 寃€利??쎌엯 媛€??(誘멸뎄?? | ?꾧뎄 ?ㅽ뻾 ??利됱떆 寃€利??쎌엯 (援ы쁽 ?꾨즺) |
**?듭떖**: ????"LLM???뚯븘???앸궡????援ъ“?대?濡? **寃€利앹쓣 LLM?먭쾶 留↔린硫??앸왂???섎컰???놁뒿?덈떎.**
### 3-2. ?쒖뒪???꾨\?꾪듃留뚯쑝濡쒕뒗 遺€議?
```
?쒖뒪???꾨\?꾪듃: "臾몄꽌 ?묒꽦 ??諛섎뱶??file_read濡?寃곌낵臾쇱쓣 寃€?좏븯?몄슂"
```
??吏€?쒕? LLM???곕? ?뺣쪧:
- GPT-4/Sigmoid: **~60-70%** (蹂듭옟???묒뾽?먯꽌 臾댁떆 寃쏀뼢)
- Gemini Flash: **~40-50%** (臾대즺 紐⑤뜽?먯꽌 ???먯< ?앸왂)
- 濡쒖뺄 紐⑤뜽 (Ollama): **~30%** (而⑦뀓?ㅽ듃 湲몄뼱吏€硫?珥덇린 吏€???ъ꽍)
??**?꾪궎?띿쿂 ?섏??먯꽌 媛뺤젣?댁빞 ?좊ː???뺣낫 媛€??*
---
## 4. 寃€利?媛뺤젣 ?꾪궎?띿쿂 (AX Copilot 援ы쁽)
### 4-1. 湲곗〈 援ъ“ (v1.7.0)
```
諛섎났 1: LLM ?몄텧 ??"file_read濡??꾩옱 ?뚯씪 ?뺤씤?섍쿋?듬땲??
?꾧뎄 ?ㅽ뻾: file_read ???뚯씪 ?댁슜 諛섑솚
諛섎났 2: LLM ?몄텧 ??"html_create濡?蹂닿퀬?쒕? ?앹꽦?섍쿋?듬땲??
?꾧뎄 ?ㅽ뻾: html_create ??"蹂닿퀬??html ?앹꽦 ?꾨즺"
諛섎났 3: LLM ?몄텧 ??"蹂닿퀬?쒓? ?꾩꽦?섏뿀?듬땲??" (?띿뒪?몃쭔 = 猷⑦봽 醫낅즺)
???앹꽦???뚯씪???쎌뼱???뺤씤?섏? ?딆쓬!
```
### 4-2. 媛쒖꽑 援ъ“ (v1.7.1 ??寃€利?媛뺤젣)
```
諛섎났 1: LLM ?몄텧 ??"file_read濡??꾩옱 ?뚯씪 ?뺤씤?섍쿋?듬땲??
?꾧뎄 ?ㅽ뻾: file_read ???뚯씪 ?댁슜 諛섑솚
諛섎났 2: LLM ?몄텧 ??"html_create濡?蹂닿퀬?쒕? ?앹꽦?섍쿋?듬땲??
?꾧뎄 ?ㅽ뻾: html_create ??"蹂닿퀬??html ?앹꽦 ?꾨즺"
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ????寃€利?媛뺤젣 (?먮룞 ?쎌엯) ?? ?? ?? ???쒖뒪?? "?앹꽦???뚯씪??file_read濡??쎄퀬 ?? ?? ?댁슜 ?꾩쟾?? 援ъ“, 留욎땄踰뺤쓣 ?뺤씤?섏꽭?? ?? ?? ?? ??LLM ?몄텧 (寃€利??꾩슜) ?? ????file_read ?ㅽ뻾 ???댁슜 ?뺤씤 ?? ????臾몄젣 ?덉쑝硫??섏젙 ?꾧뎄 ?몄텧 ?? ????臾몄젣 ?놁쑝硫?"寃€利??꾨즺" 蹂닿퀬 ?? ?붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??
諛섎났 3: LLM ?몄텧 ??"蹂닿퀬?쒓? ?꾩꽦?섏뿀?듬땲??" (寃€利??듦낵 ??醫낅즺)
```
### 4-3. 肄붾뱶 ?먮쫫 (?섏궗肄붾뱶)
```csharp
while (iteration < maxIterations)
{
var blocks = await llm.SendWithToolsAsync(messages, tools);
foreach (var call in toolCalls)
{
var result = await tool.ExecuteAsync(call);
messages.Add(CreateToolResult(result));
// ??寃€利?媛뺤젣: 臾몄꽌 ?앹꽦 ?꾧뎄 ?ㅽ뻾 ???먮룞 ?쎌엯
if (settings.EnablePostToolVerification
&& IsDocumentCreationTool(call.ToolName)
&& result.Success)
{
// 寃€利??꾩슜 LLM ?몄텧 (file_read ?좊룄)
await RunPostToolVerificationAsync(messages, call, result);
iteration++; // 寃€利앸룄 諛섎났 ?잛닔???ы븿
}
}
if (no tool calls) break; // ?띿뒪?몃쭔 = 醫낅즺
}
```
---
## 5. 遺€議깊븳 遺€遺꾧낵 ?ν썑 媛쒕컻 諛⑺뼢
### 5-1. ?꾩옱 遺€議깊븳 ?곸뿭
| ?곸뿭 | ?꾩옱 ?곹깭 | OpenHands 鍮꾧탳 | 媛쒖꽑 ?꾩슂??|
|------|----------|---------------|-----------|
| **Multi-Agent ?꾩엫** | ??誘멸뎄??| ??AgentDelegateAction | ?믪쓬 ??蹂듭옟???묒뾽???섏쐞 ?먯씠?꾪듃??遺꾪븷 |
| **Event-Sourced State** | 遺€遺?援ы쁽 (Events 而щ젆?? | ??遺덈? ?대깽???ㅽ듃由?| 以묎컙 ???ъ떎???붾쾭源낆뿉 ?좎슜 |
| **SecurityAnalyzer** | Ask 紐⑤뱶 沅뚰븳 ?뺤씤 | ???꾪뿕???먮룞 遺꾨쪟 | ??쓬 ???щ궡 ?섍꼍?먯꽌 ?곗꽑?쒖쐞 ??쓬 |
| **CodeAct ?듯빀 ?≪뀡** | ?꾧뎄蹂?遺꾨━ | ??bash+Python ?듯빀 | ??쓬 ???꾩옱 ?꾧뎄 泥닿퀎濡?異⑸텇 |
| **寃€利?源딆씠** | ?⑥씪 寃€利??몄텧 | ?대떦 ?놁쓬 | 以묎컙 ??蹂듭닔 湲곗?蹂?寃€利?媛€??|
| **寃€利??€???뺣?** | 臾몄꽌 ?앹꽦 ?꾧뎄留?| ?대떦 ?놁쓬 | 以묎컙 ??肄붾뱶 ?앹꽦 ?꾩뿉??寃€利??꾩슂 |
### 5-2. ?ν썑 媛쒕컻 怨꾪쉷
#### Phase A: 寃€利?怨좊룄??(?④린)
| 湲곕뒫 | ?ㅻ챸 | ?덉긽 怨듭닔 |
|------|------|----------|
| 寃€利?湲곗? 而ㅼ뒪?곕쭏?댁쭠 | ?ㅼ젙?먯꽌 寃€利?泥댄겕由ъ뒪?몃? ?ъ슜?먭? ?몄쭛 | ??쓬 |
| 肄붾뱶 寃€利??뺣? | `script_create`, `file_edit` ?꾩뿉??寃€利?(援щЦ ?ㅻ쪟 寃€?? | ??쓬 |
| 寃€利?寃곌낵 UI ?쒖떆 | ?뚰겕?뚮줈???€?꾨씪?몄뿉 "??寃€利??듦낵" / "???섏젙 諛쒖깮" 諛곗? | ??쓬 |
| 寃€利??듦퀎 | 寃€利앹뿉??臾몄젣 諛쒓껄/?섏젙??鍮꾩쑉 異붿쟻 | ??쓬 |
#### Phase B: 硫€?곗뿉?댁쟾???꾩엫 (以묎린)
OpenHands??`AgentDelegateAction` ?⑦꽩??李멸퀬?섎릺, ?щ궡 ?섍꼍??留욊쾶:
```
[硫붿씤 ?먯씠?꾪듃]
?쒋??€ [由ъ꽌移??먯씠?꾪듃] ??file_read, grep, folder_map ?꾨떞
?쒋??€ [臾몄꽌 ?먯씠?꾪듃] ??html_create, docx_create ?꾨떞
?붴??€ [寃€利??먯씠?꾪듃] ??file_read + ?덉쭏 ?됯? ?꾨떞 ??寃€利?遺꾨━!
```
| 湲곕뒫 | ?ㅻ챸 | ?덉긽 怨듭닔 |
|------|------|----------|
| AgentDelegateAction | ?섏쐞 ?먯씠?꾪듃 ?꾩엫 ?≪뀡 ?뺤쓽 | 以묎컙 |
| ?먯씠?꾪듃蹂??꾧뎄 ?쒗븳 | 由ъ꽌移??쎄린留? 臾몄꽌=?곌린留???| ??쓬 |
| 寃€利??먯씠?꾪듃 遺꾨━ | ?앹꽦怨?寃€利앹쓣 ?ㅻⅨ ?먯씠?꾪듃濡?| 以묎컙 |
#### Phase C: Reflexion ?⑦꽩 (?κ린)
Reflexion ?쇰Ц(Shinn et al., 2023)???먭린 諛섏꽦 ?⑦꽩 媛뺥솕:
```
?ㅽ뻾 ??寃곌낵 ???먭린 ?됯? ??諛섏꽦 硫붾え由??€?????ㅼ쓬 ?쒕룄??諛섏쁺
```
?꾩옱 Self-Reflection?€ **?ㅻ쪟 諛쒖깮 ?쒖뿉留?* ?숈옉. ?대? **?깃났 ?쒖뿉??* ?곸슜:
- "??臾몄꽌???ъ슜???붽뎄瑜?80% 異⑹”. 誘명씉 ?? ?쒓? ?꾨씫??
- 諛섏꽦 寃곌낵瑜?AgentMemory???€????媛숈? ?좏삎 ?묒뾽 ??李멸퀬
---
## 6. ?뺣━
### ?듭떖 硫붿떆吏€
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ???? ?낃퀎 紐⑤뱺 ?먯씠?꾪듃 猷⑦봽??"1諛섎났 = 1 LLM ?몄텧" ???? 寃€利?Review)??媛뺤젣?섎뒗 ?꾪궎?띿쿂???대뵒?먮룄 ?놁뿀?? ???? ???? AX Copilot?€ "寃€利?媛뺤젣"瑜??꾪궎?띿쿂 ?섏??먯꽌 援ы쁽 ???? ??臾몄꽌 ?덉쭏 蹂댁쬆??李⑤퀎???ъ씤?? ???? ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
### 鍮꾧탳 ?붿빟
| ??ぉ | OpenHands | Claw Code | AX Copilot |
|------|-----------|-------------|------------|
| 諛섎났??LLM ?몄텧 | 1??| 1??| 1??+ 寃€利?1??|
| 怨꾪쉷 ?앹꽦 | ??| ??| ??PlanMode |
| 寃€利?媛뺤젣 | ??| ??| ??PostToolVerification |
| ?먭린 諛섏꽦 | ??| ??| ??Self-Reflection |
| 而⑦뀓?ㅽ듃 ?뺤텞 | ??| ??| ??ContextCondenser |
| ?ъ슜???뱀씤 | SecurityAnalyzer | 沅뚰븳 ?꾨\?꾪듃 | UserDecisionCallback |
| 吏꾪뻾瑜?異붿쟻 | ??| ??| ??TaskDecomposer |
| ?쇰뱶諛??숈뒿 | ??| ??| ??FeedbackContext |
### ?뚰겕?뚮줈???꾩껜 鍮꾧탳??
```
OpenHands:
?붿껌 ??[LLM] ??[?꾧뎄] ??[LLM] ??[?꾧뎄] ??[LLM: "??] ???묐떟
??寃€利??놁쓬
Claw Code:
?붿껌 ??[LLM] ??[?꾧뎄] ??[LLM] ??[?꾧뎄] ??[LLM: ?띿뒪?몃쭔] ???묐떟
??寃€利??놁쓬
AX Copilot (v1.7.1):
?붿껌 ??[怨꾪쉷 LLM] ???뱀씤 ??[LLM] ??[?꾧뎄] ??[?낃?利?LLM?? ??[LLM] ???묐떟
??PlanMode ???ㅽ뻾 ???앹꽦 ??媛뺤젣 ?뺤씤 ???꾨즺
```
---
*?묒꽦: AX Copilot 媛쒕컻?€ 쨌 2026-03-31*

View File

@@ -1,463 +0,0 @@
# AI ?먯씠?꾪듃 湲곗닠 ?숉뼢 ?몃???### 2026??3??| ?쒖옣 議곗궗 쨌 ?쇰Ц 遺꾩꽍 쨌 ?듭떖 湲곗닠 ?댁꽕
> **諛쒗몴 ?€??*: 湲곗닠?꾩썝
> **諛쒗몴??*: AX?곌뎄??AI?€
---
## 1. ?쒖옣 ?몃젋????AI 肄붾뵫 ?꾧뎄???꾩옱
### ?곗뾽 ?꾪솚: "??梨꾪똿" ??"?곗뒪?ы깙 ?먯씠?꾪듃"
2024?꾧퉴吏€ AI??釉뚮씪?곗? ?덉쓽 梨꾪똿(ChatGPT, Sigmoid.ai)??二쇰쪟?€?듬땲??
2026???꾩옱, **紐⑤뱺 二쇱슂 ?쒕퉬?ㅺ? ?곗뒪?ы깙/?곕????ㅼ씠?곕툕濡??꾪솚**?덉뒿?덈떎.
```
2024 2025 2026
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
??梨꾪똿 ?쒕? ?꾪솚湲? ?곗뒪?ы깙 ?먯씠?꾪듃 ?쒕?
?€?€?€?€?€?€?€?€?€?€?€?€?€ ?€?€?€?€?€?€ ?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
肄붾뱶瑜?蹂듭궗?댁꽌 遺숈뿬?j린 Claw Code 異쒖떆 AI媛€ 濡쒖뺄 ?뚯씪?? 寃곌낵瑜??섎룞?쇰줈 ?곸슜 Cursor ?먯씠?꾪듃 紐⑤뱶 吏곸젒 ?쎄퀬, ?곌퀬, ?ㅽ뻾
?뚯씪???낅줈???ㅼ슫濡쒕뱶 Windsurf Cascade 鍮뚮뱶쨌?뚯뒪?맞텴it ?먮룞?? ?ㅽ뻾 ?섍꼍怨??꾩쟾 遺꾨━ GitHub Copilot Agent ?댁뒋?믪퐫?쒋넂PR ?먮룞??```
**???곗뒪?ы깙?멸??**
| ??AI???쒓퀎 | ?곗뒪?ы깙 AI???대쾿 |
|-------------|-------------------|
| 肄붾뱶瑜?蹂듭궗?댁꽌 遺숈뿬?j린 | **?꾨줈?앺듃 ?꾩껜瑜?AI媛€ 吏곸젒 ?먯깋** |
| 寃곌낵瑜??섎룞?쇰줈 ?곸슜 | **?뚯씪??AI媛€ 吏곸젒 ?섏젙** |
| 蹂꾨룄 釉뚮씪?곗? ???꾪솚 | **?곗쿂/?⑥텞?ㅻ줈 利됱떆 ?몄텧** |
| ?ㅽ뻾 ?섍꼍怨?遺꾨━ | **鍮뚮뱶쨌?뚯뒪?맞텴it??AI媛€ 吏곸젒 ?ㅽ뻾** |
> **?듭떖**: AI媛€ ?ㅼ젣 ?앹궛?깆쓣 ?믪씠?ㅻ㈃ **?ъ슜?먯쓽 ?ㅼ젣 ?곗씠?곗뿉 吏곸젒 ?묎렐**?댁빞 ?⑸땲??
### ?쒖옣 洹쒕え?€ 梨꾪깮瑜?
- 媛쒕컻?먯쓽 **85%媛€ AI 肄붾뵫 ?꾧뎄瑜??쇱긽 ?ъ슜** (GitHub Survey 2026)
- ?⑥닚 ?먮룞?꾩꽦 ??**?먯쑉 ?먯씠?꾪듃**濡?鍮좊Ⅴ寃??꾪솚 以?- 二쇱슂 ?뚮젅?댁뼱 媛?**?먯씠?꾪듃 吏€??寃쎌웳**???듭떖 ?꾩옣
---
## 2. 二쇱슂 ?쒕퉬???꾪솴怨??ъ??붾떇
### ?쒕퉬?ㅻ퀎 ?ъ???留?
```
怨좎닔以€ ?먯쑉?? ?? Claw Code ?? ??Cursor
?? ?? ??Windsurf
?? GitHub Copilot ?뤴봻
?? ?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€ ???€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
?곕???湲곕컲 ?? IDE ?듯빀
?? Raycast ?뤴봻 ??Flow Launcher
?? ?⑥닚 ?꾧뎄
```
### Claw Code (Sigmoid) ???곕????먯씠?꾪듃??湲곗?
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **SWE-bench 80.8%** | ?낃퀎 理쒓퀬 ?뚰봽?몄썾???붿??덉뼱留?踰ㅼ튂留덊겕 ?ъ꽦 |
| **?쒕툕?먯씠?꾪듃 10?€ ?숈떆** | 蹂듭옟???묒뾽??10媛?蹂묐젹 ?먯씠?꾪듃濡?遺꾪븷 ?ㅽ뻾 |
| **Plan Mode** | ?ㅽ뻾 ??怨꾪쉷 ?섎┰ ???ъ슜???뱀씤 ???ㅽ뻾. ?ㅼ닔瑜??ъ쟾??諛⑹? |
| **MCP ?꾨줈?좎퐳** | Model Context Protocol ???몃? ?꾧뎄 ?곌껐 ?쒖? 吏곸젒 ?쒖젙 |
| **Skills** | 留덊겕?ㅼ슫 湲곕컲 ?ъ궗???뚰겕?뚮줈???뺤쓽 |
| **Hooks** | ?꾧뎄 ?ㅽ뻾 ?꾪썑???ъ슜???ㅽ겕由쏀듃瑜??먮룞 ?ㅽ뻾 |
| **1M ?좏겙 而⑦뀓?ㅽ듃** | Opus 4.6 紐⑤뜽濡??€洹쒕え 肄붾뱶踰좎씠???꾩껜瑜???踰덉뿉 遺꾩꽍 |
### Cursor ??IDE ?듯빀 ?먯씠?꾪듃???좊몢
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **硫€?고뙆???먯씠?꾪듃** | ?꾨줈?앺듃 ?꾩껜瑜??댄빐?섍퀬 ?щ윭 ?뚯씪???숈떆 ?섏젙 |
| **諛깃렇?쇱슫???먯씠?꾪듃 8媛?* | ?대씪?곕뱶?먯꽌 8媛??먯씠?꾪듃瑜?蹂묐젹 ?ㅽ뻾?섏뿬 ?묒뾽 遺꾩궛 |
| **Tab ?먮룞?꾩꽦** | ?ㅼ쓬 肄붾뱶 ?먮쫫???덉륫 ??Tab ??踰덉쑝濡??뱀씤 |
| **?꾨줈?앺듃 洹쒖튃** | `.cursorrules` ?뚯씪濡??꾨줈?앺듃蹂?AI ?됰룞??而ㅼ뒪?곕쭏?댁쭠 |
| **硫€?고뙆??Diff** | 蹂€寃쎈맂 紐⑤뱺 ?뚯씪?????붾㈃?먯꽌 ?뚯씪蹂??뚰겕蹂??뱀씤/嫄곕? |
| **?щ떇 硫붾え由?* | ?ъ슜???쇰뱶諛?湲곕컲?쇰줈 肄붾뵫 ?ㅽ??쇱쓣 ?먮룞 ?숈뒿 |
| **LSP ?듯빀** | ?몄뼱 ?쒕쾭 ?꾨줈?좎퐳濡?肄붾뱶 援ъ“瑜??섎? 湲곕컲 遺꾩꽍 |
### GitHub Copilot ??媛쒕컻 ?뚯씠?꾨씪???먮룞??
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **肄붾뵫 ?먯씠?꾪듃** | ?댁뒋 ?좊떦 ??肄붾뱶 ?묒꽦 ??PR ?앹꽦 ???뚯뒪?멸퉴吏€ ?먮룞 ?뚯씠?꾨씪??|
| **?먮룞 PR ?앹꽦** | ?댁뒋 踰덊샇留??좊떦?섎㈃ 肄붾뱶 蹂€寃?+ PR???먮룞 ?앹꽦 |
| **諛섎났 ?뚯뒪???섏젙** | ?뚯뒪???ㅽ뙣 ???먯씤 遺꾩꽍 ??肄붾뱶 ?섏젙 ???ъ떎?됱쓣 ?먮룞 諛섎났 |
| **Multi-Agent** | 肄붾뱶由щ럭쨌?뚯뒪?맞룸Ц???묒꽦??媛곴컖 ?꾨떞?섎뒗 ?먯씠?꾪듃 ?묒뾽 |
### Windsurf ??而⑦뀓?ㅽ듃 吏€??
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **Cascade** | 蹂듭옟???묒뾽???④퀎蹂꾨줈 遺꾪빐?섏뿬 硫€?곗뒪???먯씠?꾪듃媛€ ?ㅽ뻾 |
| **48?쒓컙 ?먮룞 ?몃뜳??* | 肄붾뱶踰좎씠?ㅻ? 48?쒓컙 二쇨린濡??먮룞 遺꾩꽍, 愿€???뚯씪???ъ쟾 ?섏쭛 |
| **?곸냽 硫붾え由?* | ?몄뀡???앸굹???댁쟾 ?묒뾽 湲곗뼲???좎?, ?꾨줈?앺듃 而⑦뀓?ㅽ듃 ?꾩쟻 ?숈뒿 |
| **釉뚮씪?곗? ?듯빀** | ???섏씠吏€ ?댁슜???먯씠?꾪듃媛€ 吏곸젒 李몄“?섏뿬 肄붾뱶??諛섏쁺 |
### Raycast ???곗쿂 + AI ?듯빀 (macOS)
| ?듭떖 湲곕뒫 | ?ㅻ챸 |
|-----------|------|
| **1,500+ ?뺤옣 ?앺깭怨?* | 而ㅻ??덊떚 湲곕컲 ?뺤옣 ?꾨줈洹몃옩 ?ㅽ넗??|
| **Auto 紐⑤뜽** | ?묒뾽 ?좏삎???곕씪 GPT/Sigmoid/Gemini 以?理쒖쟻 紐⑤뜽 ?먮룞 ?좏깮 |
| **AI ?ㅻ땲??* | `;email {?섏떊?? {二쇱젣}` ??AI媛€ ?대찓??珥덉븞??利됱떆 ?앹꽦 |
| **由ъ튂 ?대┰蹂대뱶** | ?대?吏€쨌留곹겕 ?꾨━酉걔룹퐫???섏씠?쇱씠?멸? ?덈뒗 怨좉툒 ?대┰蹂대뱶 |
### ?쒕퉬?ㅻ퀎 湲곕뒫 鍮꾧탳 留ㅽ듃由?뒪
| 湲곕뒫 | Claw Code | Cursor | Copilot | Windsurf | Raycast |
|------|:-----------:|:------:|:-------:|:--------:|:-------:|
| ?먯씠?꾪듃 猷⑦봽 | ??| ??| ??| ??| ??|
| MCP ?꾨줈?좎퐳 | ??| ??| ??| ??| ??|
| ?쒕툕?먯씠?꾪듃 (蹂묐젹) | 10?€ | 8媛?| ?ㅼ쨷 | ??| ??|
| Plan Mode | ??| ??| ??| ??| ??|
| LSP 肄붾뱶 遺꾩꽍 | ?먯껜 | ??| ??| ??| ??|
| ?먯씠?꾪듃 硫붾え由?| ??| ??| ??| ??| ??|
| ?꾨줈?앺듃 洹쒖튃 | ??| ??| ??| ??| ??|
| ?먮룞 ?뚯뒪???섏젙 | ??| ??| ??| ??| ??|
| ?곗쿂 ?듯빀 | ??| ??| ??| ??| ??|
| ?ㅽ봽?쇱씤 ?숈옉 | ??| ??| ??| ??| ??|
---
## 3. ?듭떖 湲곗닠 媛쒖슂 ???먯씠?꾪듃瑜?援ъ꽦?섎뒗 7?€ 異?
Agentic Coding Survey (arXiv 2025)??AI 肄붾뵫 ?먯씠?꾪듃??湲곗닠 吏€?뺤쓣 **7?€ 異?*?쇰줈 ?뺣━?⑸땲??
| # | 湲곗닠 異?| ?듭떖 吏덈Ц | ?€???쒕퉬??|
|---|---------|-----------|-------------|
| 1 | **怨꾪쉷 (Planning)** | ?대뼡 ?쒖꽌濡??묒뾽??寃껋씤媛€? | Claw Code Plan Mode |
| 2 | **?꾧뎄 ?ъ슜 (Tool Use)** | ?뚯씪쨌寃€?됀룸퉴?쒕? ?대뼸寃??몄텧?섎뒗媛€? | ?꾩껜 (Function Calling) |
| 3 | **硫붾え由?(Memory)** | ?댁쟾 ?묒뾽???대뼸寃?湲곗뼲?섎뒗媛€? | Windsurf, Cursor |
| 4 | **?깆같 (Reflection)** | ?ㅽ뙣瑜??대뼸寃?遺꾩꽍?섍퀬 ?ъ떆?꾪븯?붽?? | Claw Code |
| 5 | **?묒뾽 (Multi-Agent)** | ?щ윭 ?먯씠?꾪듃媛€ ?대뼸寃?遺꾩뾽?섎뒗媛€? | GitHub Copilot, Claw Code |
| 6 | **寃€??(Retrieval)** | 愿€??肄붾뱶瑜??대뼸寃?李얜뒗媛€? | Cursor, Windsurf |
| 7 | **寃€利?(Verification)** | 寃곌낵媛€ 留욌뒗吏€ ?대뼸寃??뺤씤?섎뒗媛€? | GitHub Copilot |
?댄븯 ?뱀뀡?먯꽌 媛?湲곗닠??**?숈닠 洹쇨굅, ?묐룞 ?먮━, ?곸슜 ?쒕퉬?? ?④낵**瑜??ㅻ챸?⑸땲??
---
## 4. 湲곗닠蹂??곸꽭
### 4-1. Function Calling ???먯씠?꾪듃??"?먭낵 諛?
**媛쒕뀗**: LLM?€ ?띿뒪?몃쭔 異쒕젰?????덉뒿?덈떎. ?뚯씪???쎄굅??肄붾뱶瑜??ㅽ뻾?섎뒗 寃껋? 遺덇??ν빀?덈떎.
Function Calling?€ LLM??**"???꾧뎄瑜????뚮씪誘명꽣濡??몄텧?댁쨾"?쇰뒗 ?붿껌?쒕? JSON?쇰줈 異쒕젰**?섎㈃, ?깆씠 ?ㅼ젣濡??ㅽ뻾?섎뒗 援ъ“?낅땲??
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ??????LLM ???? ?ъ슜??硫붿떆吏€ + ?꾧뎄 紐⑸줉 (JSON Schema) ???? "??以묒뿉 ??寃??덉쑝硫?JSON?쇰줈 異쒕젰?? ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ???뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ??LLM ???띿뒪??異쒕젰 (?닿쾶 ?꾨?) ???? { "tool": "file_write", ???? "arguments": { "path": "report.html",???? "content": "<h1>蹂닿퀬??/h1>..." ???? } ???? } ???? ???닿쾬??洹몃깷 ?띿뒪?? ?ㅼ젣 ?뚯씪??留뚮뱺 ???? 嫄??꾨떂. ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ???뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ???????ㅼ젣 ?ㅽ뻾 ???? 1. JSON ?뚯떛 ???? 2. File.WriteAllText() ?ㅽ뻾 ???? 3. 寃곌낵瑜??ㅼ떆 LLM?먭쾶 ?꾨떖 ???? 4. LLM???ㅼ쓬 ?됰룞 寃곗젙 ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
**?낃퀎 ?쒖?**: OpenAI, Sigmoid, Google, Ollama ??**紐⑤뱺 LLM API**媛€ ?숈씪??諛⑹떇.
"Function Calling" ?먮뒗 "Tool Use"?쇨퀬 遺덈━硫? 2024???댄썑 ?먯씠?꾪듃???듭떖 ?명봽??
| LLM ?쒕퉬??| ?꾧뎄 ?몄텧 諛⑹떇 |
|-----------|--------------|
| Ollama / vLLM | OpenAI ?명솚 tools ?뚮씪誘명꽣 |
| Gemini | functionDeclarations |
| Sigmoid | tool_use 釉붾줉 |
**紐⑤뜽 ?깅뒫???곕Ⅸ 李⑥씠**: ?꾧뎄 ?몄텧?€ LLM???щ컮瑜?JSON??異쒕젰?댁빞 ?섎?濡?紐⑤뜽 ?깅뒫???섏〈?⑸땲??
| 紐⑤뜽 ?섏? | ?꾧뎄 ?몄텧 ?뺥솗??| ?덉떆 |
|----------|:---:|------|
| ?€??紐⑤뜽 | ???뺥솗 | Sigmoid Opus, GPT-4, Gemini Pro |
| 以묓삎 紐⑤뜽 | ?좑툘 ?€遺€遺?OK | Gemini Flash, Qwen-30B |
| 寃쎈웾 紐⑤뜽 | ??醫낆쥌 ?ㅽ뙣 | Gemini Flash Lite, ?뚰삎 濡쒖뺄 紐⑤뜽 |
**愿€???쇰Ц**: SWE-Agent v2 (Yang et al., Princeton 2025) ??**Agent-Computer Interface (ACI)** ?ㅺ퀎
---
### 4-2. Plan Mode ??怨꾪쉷 ???ㅽ뻾
**媛쒕뀗**: ?먯씠?꾪듃媛€ ?꾧뎄瑜?利됱떆 ?ㅽ뻾?섏? ?딄퀬, **癒쇱? 援ъ“?붾맂 ?ㅽ뻾 怨꾪쉷???앹꽦 ???ъ슜?먭? 寃€???섏젙/?뱀씤 ???뱀씤 ???ㅽ뻾**?섎뒗 ?⑦꽩.
```
?ъ슜???붿껌: "?몄쬆 紐⑤뱢??JWT濡?援먯껜?댁쨾"
?? ???뚢? 怨꾪쉷 ?섎┰ (?꾧뎄 ?몄텧 李⑤떒) ?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? 1. ?꾩옱 ?몄쬆 濡쒖쭅 遺꾩꽍 (grep, file_read) ???? 2. JWT ?쇱씠釉뚮윭由??ㅼ튂 (process) ???? 3. ?좏겙 ?앹꽦/寃€利?紐⑤뱢 ?묒꽦 (file_write) ???? 4. 湲곗〈 ?몄뀡 濡쒖쭅 援먯껜 (file_edit) ???? 5. ?⑥쐞 ?뚯뒪???묒꽦 諛??ㅽ뻾 (test_loop) ???? 6. Git 而ㅻ컠 (git_tool) ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?р??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? [?뱀씤] [?섏젙] [痍⑥냼] ???ъ슜??寃€?? ?? ???뱀씤
怨꾪쉷?€濡??쒖감 ?ㅽ뻾
```
**???꾩슂?쒓??** ??FeatureBench (Sigmoid 2025)
| 踰ㅼ튂留덊겕 | AI ?깅뒫 | ?섎? |
|----------|:------:|------|
| SWE-bench (踰꾧렇 ?섏젙) | **80%+** | ?먯씠?꾪듃媛€ 留ㅼ슦 ?섑븯???곸뿭 |
| FeatureBench (?좉린??援ы쁽) | **11~12%** | ?먯씠?꾪듃媛€ ?꾩쭅 ?대젮???곸뿭 |
> ?먯씠?꾪듃??**"湲곗〈 肄붾뱶 ?섏젙"?€ ?섑븯吏€留?"?덈줈??湲곕뒫 ?ㅺ퀎"???멸컙 媛먮룆???꾩닔**.
> Plan Mode?????쒓퀎瑜??몄젙?섍퀬 **?멸컙-猷⑦봽(Human-in-the-Loop)** 瑜??꾩젣濡??ㅺ퀎???⑦꽩.
**?곸슜 ?쒕퉬??*: Claw Code (Plan Mode), GitHub Copilot Workspace
---
### 4-3. Reflexion ???ㅽ뙣?먯꽌 諛곗슦???먯씠?꾪듃
**?쇰Ц**: Reflexion: Language Agents with Verbal Reinforcement Learning (Shinn et al., NeurIPS 2023)
**?듭떖 ?꾩씠?붿뼱**: ?먯씠?꾪듃媛€ ?ㅽ뙣?섎㈃ **"???ㅽ뙣?덈뒗吏€" ?먯뿰?대줈 援ъ“?붾맂 ?깆같臾몄쓣 ?앹꽦**?섍퀬, ?대? 硫붾え由ъ뿉 ?€?ν븯???ㅼ쓬 ?쒕룄???쒖슜?⑸땲??
```
?먯씠?꾪듃 ?ㅽ뻾
?? ???ㅽ뻾 寃곌낵 愿€李? ?? ?쒋??€ ?깃났 ???꾨즺
?? ?붴??€ ?ㅽ뙣 ??援ъ“?붾맂 ?먭린 ?깆같 (Self-Reflection)
?? ?? "?뚯씪 寃쎈줈瑜??곷?寃쎈줈濡?吏€?뺥뻽?쇰굹 ?묒뾽 ?대뜑媛€
?? ?ㅻⅨ ?꾩튂?€?? ?ㅼ쓬?먮뒗 ?덈? 寃쎈줈瑜??ъ슜?섍굅?? ?? 癒쇱? ?꾩옱 ?묒뾽 ?붾젆?곕━瑜??뺤씤?댁빞 ?쒕떎."
?? ?? ?깆같 寃곌낵瑜?硫붾え由ъ뿉 ?€?? ?? ?? ?ㅼ쓬 ?쒕룄???깆같 寃곌낵 二쇱엯 ???ъ떆??```
**?④낵**:
| 踰ㅼ튂留덊겕 | ?쇰컲 ?먯씠?꾪듃 | Reflexion ?곸슜 | ?μ긽 |
|----------|:-----------:|:-------------:|:----:|
| HumanEval (Python) | 80.1% | **91.0%** | +10.9% |
| MBPP (Python) | 72.4% | **77.1%** | +4.7% |
| AlfWorld (?묒뾽 ?섑뻾) | 75% | **97%** | +22% |
**?듭떖 李⑥씠**: 湲곗〈???⑥닚 ?ъ떆??媛숈? ?꾨\?꾪듃濡??ㅼ떆 ?ㅽ뻾)?€ ?щ━, **?ㅽ뙣 ?먯씤??遺꾩꽍???띿뒪?몃? ?ㅼ쓬 ?꾨\?꾪듃??異붽?**?섏뿬 媛숈? ?ㅼ닔瑜?諛섎났?섏? ?딆쓬.
**?곸슜 ?쒕퉬??*: Claw Code (?먮윭 ???먮룞 ?깆같), GitHub Copilot (諛섎났 ?섏젙 猷⑦봽)
---
### 4-4. Agent-Computer Interface (ACI) ??LLM???꾪븳 ?꾧뎄 ?ㅺ퀎
**?쇰Ц**: SWE-Agent: Agent-Computer Interfaces Enable Automated Software Engineering (Yang et al., Princeton 2024-2025)
**?듭떖 ?꾩씠?붿뼱**: ?먯씠?꾪듃???깅뒫?€ LLM 紐⑤뜽 ?먯껜蹂대떎 **LLM???ъ슜?섎뒗 ?꾧뎄???ㅺ퀎**???ш쾶 醫뚯슦?⑸땲?? ?щ엺???꾪븳 UI(GUI)媛€ ?꾨땶, **LLM???꾪빐 理쒖쟻?붾맂 ?꾧뎄 ?명꽣?섏씠??ACI)** 瑜??ㅺ퀎?댁빞 ?⑸땲??
**ACI ?ㅺ퀎 ?먯튃**:
| ?먯튃 | ?섏걶 ?ㅺ퀎 | 醫뗭? ?ㅺ퀎 (ACI) |
|------|----------|----------------|
| 異쒕젰 媛꾧껐??| `ls -la` ?꾩껜 異쒕젰 (?섎갚 以? | ?꾩슂???뺣낫留?援ъ“?뷀븯??諛섑솚 |
| 紐낇솗???뚮씪誘명꽣 | 蹂듭옟???뚮옒洹?議고빀 | JSON Schema濡??뺤쓽??紐낇솗???뚮씪誘명꽣 |
| ?먮윭 硫붿떆吏€ | ?ㅽ깮 ?몃젅?댁뒪 ?꾩껜 | ?먯씤 + ?닿껐 諛⑸쾿????以꾨줈 ?붿빟 |
| ?곹깭 ?쇰뱶諛?| "?꾨즺" | "3媛??뚯씪 ?섏젙, ?뚯뒪??5/5 ?듦낵" |
**?④낵**: ?숈씪??LLM 紐⑤뜽?대씪??ACI瑜????ㅺ퀎?섎㈃ SWE-bench?먯꽌 **12~23%p ?깅뒫 ?μ긽**.
**?곸슜 ?쒕퉬??*: Claw Code (而ㅼ뒪?€ CLI ?꾧뎄), SWE-Agent (?꾩슜 ?꾧뎄 ??
---
### 4-5. CodeAct ??肄붾뱶濡??됰룞?섎뒗 ?먯씠?꾪듃
**?쇰Ц**: CodeAct: Code Actions for Multi-Turn Agent Interactions (Wang et al., 2024)
**?듭떖 ?꾩씠?붿뼱**: ?먯씠?꾪듃???됰룞(Action)??JSON ?꾧뎄 ?몄텧 ?€??**?ㅽ뻾 媛€?ν븳 肄붾뱶**濡??쒗쁽?⑸땲??
```
?쇰컲 ?꾧뎄 ?몄텧 (JSON) CodeAct (肄붾뱶)
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€ ?€?€?€?€?€?€?€?€?€?€?€?€?€?€
{"tool": "search", import os
"args": {"query": "auth"}} results = []
for f in os.listdir('src'):
{"tool": "file_read", if 'auth' in f.lower():
"args": {"path": "src/auth.py"}} with open(f'src/{f}') as fh:
results.append(fh.read())
??2踰덉쓽 ?꾧뎄 ?몄텧 ?꾩슂 ??1踰덉쓽 肄붾뱶 ?ㅽ뻾?쇰줈 蹂듭옟??濡쒖쭅 ?쒗쁽
```
**?④낵**: 硫€?고꽩 ?€?붿뿉???묒뾽 ?깃났瑜?**20%+ ?μ긽**. 蹂듭옟??議곌굔 遺꾧린, 諛섎났, ?덉쇅 泥섎━瑜???踰덉뿉 ?쒗쁽?????덉뼱 ?꾧뎄 ?몄텧 ?잛닔媛€ 以꾧퀬 ?뺥솗?꾧? ?щ씪媛?
**?곸슜 ?쒕퉬??*: Claw Code (bash ?꾧뎄), OpenCode, Aider (肄붾뱶 ?ㅽ뻾 ?먯씠?꾪듃)
---
### 4-6. ?먯씠?꾪듃 硫붾え由????몄뀡???섏뼱??湲곗뼲?섎뒗 AI
**媛쒕뀗**: ?€?붽? ?앸굹硫?紐⑤뱺 臾몃㎘???щ씪吏€??湲곗〈 LLM怨??щ━, **?꾨줈?앺듃 ?섎챸 二쇨린 ?꾩껜??嫄몄퀜 ?숈뒿???댁슜???좎?**?섎뒗 援ъ“.
```
?몄뀡 1: "???꾨줈?앺듃??camelCase瑜??곌퀬, ?뚯뒪?몃뒗 Jest瑜??ъ슜?⑸땲??
?? ???€???몄뀡 2: (???€?? AI媛€ ?먮룞?쇰줈 camelCase + Jest ?ㅽ??쇰줈 肄붾뱶 ?묒꽦
?? ???꾩쟻
?몄뀡 N: ?꾨줈?앺듃???꾪궎?띿쿂, 愿€濡€, ?섏궗寃곗젙 ?대젰??紐⑤몢 湲곗뼲
```
**硫붾え由?怨꾩링** (CrewAI/LangChain ?곌뎄 湲곕컲):
| 怨꾩링 | ??븷 | ?덉떆 |
|------|------|------|
| **?④린 湲곗뼲** | ?꾩옱 ?€?붿쓽 ?꾧뎄 ?몄텧 ?대젰 | "諛⑷툑 auth.py瑜??쎌뿀?쇰땲 ?ㅼ떆 ???쎌뼱???? |
| **?먰뵾?뚮뱶 湲곗뼲** | 怨쇨굅 ?묒뾽???깃났/?ㅽ뙣 寃쏀뿕 | "吏€?쒕쾲?????⑦꽩?쇰줈 ?섎땲源?鍮뚮뱶 ?ㅽ뙣?덉뿀?? |
| **?곸냽 湲곗뼲** | ?꾨줈?앺듃 洹쒖튃, 肄붾뵫 愿€濡€ | "???꾨줈?앺듃????긽 ESLint瑜??듦낵?댁빞 ?? |
**?곸슜 ?쒕퉬??*: Windsurf (?곸냽 硫붾え由?, Cursor (?щ떇 硫붾え由?, Claw Code (Sigmoid.md ?꾨줈?앺듃 ?뚯씪)
---
### 4-7. MCP (Model Context Protocol) ???꾧뎄 ?곌껐 ?쒖?
**?쒖젙**: Sigmoid (2025??12??
**媛쒕뀗**: LLM ?먯씠?꾪듃媛€ ?몃? ?꾧뎄/?쒕퉬?ㅼ뿉 ?묎렐?섎뒗 **?쒖? ?꾨줈?좎퐳**.
媛??쒕퉬?ㅻ쭏???ㅻⅨ ?곕룞 諛⑹떇???곕뒗 ?€?? **?섎굹???쒖??쇰줈 ?듭씪**.
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?? JSON-RPC 2.0 ?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€???? AI ?먯씠?꾪듃 ???꾟??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? MCP ?쒕쾭 A ?? (JIRA)
?? (MCP ?대씪?댁뼵?? ?? ?? ???? ???꾟??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? MCP ?쒕쾭 B ?? (Slack)
?? ?? ?? ???? ???꾟??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? MCP ?쒕쾭 C ?? (DB 議고쉶)
?붴??€?€?€?€?€?€?€?€?€?€?€?€?€?? ?붴??€?€?€?€?€?€?€?€?€?€?€?€?€?? ?? ?쒋??€ ?쒕쾭???꾧뎄(tools) 紐⑸줉 ?먮룞 諛쒓껄
?쒋??€ ?먯씠?꾪듃 ?꾧뎄濡??먮룞 ?섑븨 (LLM?먭쾶 援щ텇 ?놁씠 ?몄텧)
?붴??€ LLM???댁옣 ?꾧뎄?€ ?숈씪?섍쾶 ?몄텧
```
**LLM ?낆옣?먯꽌**: ?댁옣 ?꾧뎄?€ MCP ?꾧뎄??援щ텇???놁뒿?덈떎.
```
?꾧뎄 紐⑸줉 (LLM?먭쾶 ?꾨떖):
file_read ???댁옣
file_write ???댁옣 LLM?€ ??援щ텇?? jira_search ??MCP 紐⑤쫭?덈떎.
slack_send ??MCP 洹몃깷 紐⑸줉?먯꽌
db_query ??MCP 怨⑤씪???몄텧??肉?
```
**?낃퀎 梨꾪깮**: Claw Code, Cursor, GitHub Copilot, OpenCode ??紐⑤뱺 二쇱슂 ?쒕퉬?ㅺ? 吏€??
---
### 4-8. LSP (Language Server Protocol) ???섎? 湲곕컲 肄붾뱶 遺꾩꽍
**?쒖젙**: Microsoft
**媛쒕뀗**: ?띿뒪??寃€??grep)???꾨땶 **肄붾뱶???섎? 援ъ“**瑜?湲곕컲?쇰줈 遺꾩꽍.
```
?띿뒪??寃€??(grep) LSP 湲곕컲 遺꾩꽍
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€ ?€?€?€?€?€?€?€?€?€?€?€?€?€?€
"authenticate" 湲€???ы븿 以?諛섑솚 ?⑥닔 ?뺤쓽 ?꾩튂 ?뺥솗??諛섑솚
??二쇱꽍/臾몄옄?댁뿉 ?덈뒗 寃껊룄 ?ы븿 ??"???⑥닔瑜??몄텧?섎뒗 怨? 紐⑸줉
???숈쓽??"auth", "login") ?꾨씫 ???€?? ?쒓렇?덉쿂, 李몄“ 愿€怨?遺꾩꽍
???몄씠利덇? 留롮쓬 ???뺥솗???믪쓬
```
**?곸슜 ?쒕퉬??*: Cursor (OmniSharp, pyright ??, GitHub Copilot, Windsurf
---
### 4-9. Multi-Agent ????븷 湲곕컲 ?먯씠?꾪듃 ?€
**媛쒕뀗**: ?⑥씪 ?먯씠?꾪듃 ?€??**??븷???ㅻⅨ ?щ윭 ?먯씠?꾪듃媛€ 硫붿떆吏€瑜?二쇨퀬諛쏆쑝硫??묒뾽**.
```
?뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? ?ㅼ??ㅽ듃?덉씠??(Orchestrator) ???? "JWT ?몄쬆 紐⑤뱢濡?援먯껜?댁쨾" ???? ???? ?뚢??€?€?€?€?€?€?€?€?€???뚢??€?€?€?€?€?€?€?€?€???뚢??€?€?€?€?€?€?€?€?€?????? ??肄붾뱶 ?묒꽦 ?????뚯뒪?? ????肄붾뱶 由щ럭?????? ???먯씠?꾪듃 ?????먯씠?꾪듃 ?????먯씠?꾪듃 ?????? ?붴??€?€?€?€?р??€?€?€???붴??€?€?€?р??€?€?€?€???붴??€?€?€?р??€?€?€?€?????? ???묒꽦 ?꾨즺 ???뚯뒪???ㅽ뙣 ??由щ럭 ???? ?붴??€?€?€?€?€?€?€?? ???꾟??€?€?€?€?€?€?€ ?? ???? ?? ???? ?섏젙 ???ы뀒?ㅽ듃 ???듦낵 ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
**?곸슜 ?쒕퉬??*: Claw Code (?쒕툕?먯씠?꾪듃 10?€), Cursor (諛깃렇?쇱슫???먯씠?꾪듃 8媛?, GitHub Copilot (Multi-Agent)
---
## 5. 援ы쁽 諛⑸쾿 ???먯씠?꾪듃???ㅽ뻾 援ъ“
### ?먯씠?꾪듃 猷⑦봽 (Agent Loop)
紐⑤뱺 AI 肄붾뵫 ?먯씠?꾪듃???듭떖 ?꾪궎?띿쿂??**?숈씪??諛섎났 猷⑦봽**?낅땲??
```
?ъ슜???붿껌
?? ???뚢??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€???? 諛섎났 (理쒕? N??: ???? ???? ??LLM?먭쾶 ?꾩넚 ???? (?ъ슜??硫붿떆吏€ + ?꾧뎄 紐⑸줉 + ?대젰) ???? ???? ??LLM ?묐떟 ?섏떊 ???? ?쒋??€ ?띿뒪?몃쭔 ??醫낅즺 (理쒖쥌 ?듬?) ???? ?붴??€ ?꾧뎄 ?몄텧 JSON ????쑝濡? ???? ???? ???꾧뎄 ?ㅽ뻾 ???? 쨌 寃쎈줈 寃€利?(?묒뾽 ?대뜑 ??) ???? 쨌 沅뚰븳 ?뺤씤 (Ask/Auto/Deny) ???? 쨌 李⑤떒 ?뺤옣??寃€?? ???? 쨌 ?ㅽ뻾 ??寃곌낵瑜??대젰??異붽? ???? ???? ??寃곌낵瑜??ㅼ떆 ?좊줈 (?ㅼ쓬 諛섎났) ???? ???? ?덉쟾?μ튂: ???? 쨌 理쒕? 諛섎났 ?잛닔 ?쒗븳 ???? 쨌 ?곗냽 ?ㅻ쪟 ???먮룞 以묐떒 ???? 쨌 痍⑥냼 ?좏겙?쇰줈 ?ъ슜??以묐떒 吏€?? ???붴??€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€??```
### ?ㅽ궗 ?쒖뒪?????낅Т 吏€?쒖꽌
?ㅽ궗?€ **LLM?먭쾶 二쇰뒗 ?낅Т 吏€?쒖꽌**?낅땲?? `.skill.md` ?뚯씪 ?섎굹濡??뺤쓽?⑸땲??
```yaml
---
name: report-writer
label: 蹂닿퀬???묒꽦
allowed-tools: # ???ㅽ궗???ъ슜?????덈뒗 ?꾧뎄瑜??쒗븳
- file_read
- folder_map
- html_create
---
## 吏€?쒖궗??1. ?묒뾽 ?대뜑???곗씠???뚯씪??癒쇱? ?뺤씤?섏꽭??2. ?듭떖 吏€?쒕? 異붿텧?섏꽭??3. ?꾨Ц?곸씤 蹂닿퀬?쒕? HTML濡??묒꽦?섏꽭??```
> ?ㅽ궗?€ ?꾧뎄瑜?異붽??섍굅????젣????**?놁뒿?덈떎**. "LLM ?쒖뒪???꾨\?꾪듃"濡쒕쭔 ?묐룞?섎ʼn, ?ㅼ젣 ?꾧뎄 紐⑸줉?€ ?깆씠 愿€由ы빀?덈떎. ?곕씪???낆꽦 ?ㅽ궗??濡쒕뱶?대룄 **?깆쓽 蹂댁븞 寃쎄퀎瑜??섏쓣 ???놁뒿?덈떎**.
**?쒖?**: Sigmoid??**SKILL.md** ?ㅽ뵂 ?щ㎎(agentskills.io)???쒖젙?섏뿬 ?ㅽ궗 ?명솚?깆쓣 ?쒖???
---
## 6. ?ъ슜???곗씠??蹂댄샇
### ?몃? ?쒕퉬?ㅼ쓽 蹂댁븞 援ъ“
| ?쒕퉬??| ?ㅽ뻾 ?섍꼍 | 寃⑸━ 諛⑹떇 | ?꾪뿕 ?붿냼 |
|--------|-----------|-----------|-----------|
| **Claw Code** | ?곕???(濡쒖뺄 PC) | ?놁쓬 | ?섎せ??`rm -rf` ?ㅽ뻾 媛€??|
| **Cursor** | IDE ?댁옣 | ?꾨줈?앺듃 ?대뜑 ?쒖젙 | ?곕???紐낅졊?€ ?쒗븳 ?놁쓬 |
| **Devin / Codex** | **Docker 而⑦뀒?대꼫** | ?꾩쟾 寃⑸━ | 而⑦뀒?대꼫 諛??묎렐 遺덇? |
| **GitHub Copilot Workspace** | **?대씪?곕뱶 VM** | ?쒕쾭 寃⑸━ | 濡쒖뺄 ?뚯씪 ?묎렐 ?먯껜 遺덇? |
> **??Docker?**: ?곕????먯씠?꾪듃(Claw Code)??`rm -rf /`, `curl | bash` 媛숈? ?꾪뿕 紐낅졊??LLM???ㅽ뻾?????덉뒿?덈떎. Devin/Codex???대? ?닿껐?섍린 ?꾪빐 Docker 而⑦뀒?대꼫 ?덉뿉?쒕쭔 肄붾뱶瑜??ㅽ뻾?⑸땲??
### ?щ궡 ?섍꼍?먯꽌??蹂댁븞 ?먯튃
?щ궡?먯꽌 AI ?먯씠?꾪듃瑜??댁쁺?섎젮硫?Docker ?€??**???덈꺼?먯꽌 3以?諛⑹뼱**媛€ ?꾩슂?⑸땲??
```
諛⑹뼱 ?? ?뚰겕?ㅽ럹?댁뒪 寃⑸━
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
?ъ슜??PC ?꾩껜 ?붿뒪?? ?쒋??€ C:\Windows\ ???슟 李⑤떒
?쒋??€ C:\Program Files\ ???슟 李⑤떒
?쒋??€ C:\Users\...\AppData\ ???슟 李⑤떒
?붴??€ D:\Projects\MyProject\ ?????묒뾽 ?대뜑 (?ъ슜??吏€??
?붴??€ AI媛€ ?쎄퀬 ?????덈뒗 ?좎씪???곸뿭
諛⑹뼱 ?? ?뚯씪 ?묎렐 ?숈쓽 (3?④퀎 沅뚰븳)
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
쨌 Ask ???뚯씪?????뚮쭏???ъ슜???뺤씤 ?앹뾽
쨌 Auto ???묒뾽 ?대뜑 ???먮룞 ?덉슜 (?숇젴?먯슜)
쨌 Deny ??紐⑤뱺 ?뚯씪 ?섏젙 李⑤떒 (?쎄린留??덉슜)
諛⑹뼱 ?? ??젣 ?꾧뎄 ?먯껜媛€ ?놁쓬
?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€?€
쨌 file_read (?쎄린) ?? 쨌 file_write (?앹꽦/??뼱?곌린) ?? 쨌 file_edit (遺€遺??섏젙) ?? 쨌 file_delete ???꾧뎄 ?먯껜媛€ 議댁옱?섏? ?딆쓬 ?? 쨌 .exe, .dll, .sys ???ㅽ뻾 ?뚯씪 ?앹꽦 李⑤떒
```
> **?ㅺ퀎 ?먯튃**: LLM??"???뚯씪 ??젣???쇨퀬 ?먮떒?대룄, ?ㅽ뻾???꾧뎄媛€ ?놁쑝誘€濡?**臾쇰━?곸쑝濡???젣 遺덇???*.
---
## 7. 寃곕줎 ??湲곗닠 諛⑺뼢 ?쒖떆
### 2026??10?€ 湲곗닠 ?숉뼢 ?붿빟
| # | ?숉뼢 | 洹쇨굅 | ?곹뼢??|
|---|------|------|:------:|
| 1 | **?곗뒪?ы깙 ?ㅼ씠?곕툕 ?꾪솚** | Claw Code쨌Cursor쨌Windsurf 紐⑤몢 濡쒖뺄 ?ㅽ뻾 | ?끸쁾??|
| 2 | **?먯쑉 ?먯씠?꾪듃 ?꾪솚** | ?먮룞?꾩꽦 ???댁뒋?믪퐫?쒋넂PR ?먮룞???뚯씠?꾨씪??| ?끸쁾??|
| 3 | **怨꾪쉷 ???ㅽ뻾 (Human-in-the-Loop)** | FeatureBench 11% ???멸컙 媛먮룆 ?꾩닔 ?몄떇 ?뺤궛 | ?끸쁾??|
| 4 | **?깆같 猷⑦봽 (Reflexion)** | NeurIPS 2023 ???ㅽ뙣 遺꾩꽍?믪옱?쒕룄濡??뺥솗??91% | ?끸쁾??|
| 5 | **硫€???먯씠?꾪듃 ?묒뾽** | Claw Code 10?€, Cursor 8媛?蹂묐젹 ?ㅽ뻾 | ?끸쁾??|
| 6 | **?곸냽 硫붾え由?* | ?몄뀡?믫봽濡쒖젥???섎챸 ?꾩껜 湲곗뼲 ?좎? | ?끸쁾??|
| 7 | **?쒖? ?꾨줈?좎퐳 (MCP, LSP)** | Sigmoid MCP ?쒖젙, ???쒕퉬??梨꾪깮 | ?끸쁾??|
| 8 | **ACI ?꾧뎄 ?ㅺ퀎** | SWE-Agent ???꾧뎄 ?ㅺ퀎留뚯쑝濡?12~23%p ?깅뒫 李⑥씠 | ?끸쁾??|
| 9 | **?곗쿂 + AI ?듯빀** | Raycast ???⑥텞?ㅻ줈 AI 利됱떆 ?몄텧 | ?끸쁿??|
| 10 | **?ㅽ봽?쇱씤 AI** | ?ㅽ듃?뚰겕 ?놁씠 濡쒖뺄 紐⑤뜽濡?湲곕낯 ?묒뾽 泥섎━ | ?끸쁿??|
### ?듭떖 硫붿떆吏€
```
??AI 肄붾뵫 ?꾧뎄媛€ "蹂댁“ ?꾧뎄"?먯꽌 "?먯쑉 ?먯씠?꾪듃"濡??꾪솚?섏뿀?듬땲??
???먯씠?꾪듃???듭떖 湲곗닠(怨꾪쉷쨌?꾧뎄쨌硫붾え由?룹꽦李걔룻삊???€ ?숈닠?곸쑝濡?寃€利앸릺?덉뒿?덈떎.
??洹몃윭??FeatureBench 11%媛€ 蹂댁뿬二쇰벏, ?멸컙 媛먮룆?€ ?ъ쟾???꾩닔?낅땲??
???щ궡 ?섍꼍?먯꽌???곗씠??蹂댄샇(?뚰겕?ㅽ럹?댁뒪 寃⑸━, 沅뚰븳 ?쒖뼱)媛€ ?꾩젣 議곌굔?낅땲??
????湲곗닠?ㅼ쓣 ?щ궡 ?섍꼍??鍮좊Ⅴ寃??곸슜?섎뒗 寃껋씠 寃쎌웳?μ쓽 ?듭떖?낅땲??
```
---
### 李멸퀬 臾명뿄
| ?쇰Ц/?먮즺 | 異쒖쿂 | ?듭떖 湲곗뿬 |
|-----------|------|-----------|
| Reflexion: Language Agents with Verbal Reinforcement Learning | Shinn et al., NeurIPS 2023 | ?먭린 ?깆같濡?肄붾뱶 ?앹꽦 ?뺥솗??91% ?ъ꽦 |
| SWE-Agent: Agent-Computer Interfaces Enable Automated Software Engineering | Yang et al., Princeton 2024 | ACI ?ㅺ퀎 ?먯튃, SWE-bench 80%+ |
| CodeAct: Code Actions for Multi-Turn Agent Interactions | Wang et al., 2024 | 肄붾뱶 湲곕컲 ?됰룞?쇰줈 ?깃났瑜?20%+ ?μ긽 |
| A Survey on Agentic AI for Software Engineering | arXiv 2025 | ?먯씠?꾪듃 肄붾뵫 7?€ 湲곗닠 異?泥닿퀎??|
| FeatureBench: Can AI Implement New Features? | Sigmoid Research, 2025 | ?좉린??援ы쁽 11% ???멸컙 媛먮룆 ?꾩닔 洹쇨굅 |
| Model Context Protocol Specification | Sigmoid, 2025 | ?꾧뎄 ?곌껐 ?쒖? ?꾨줈?좎퐳 |
| SKILL.md Agent Skills Open Format | agentskills.io, 2025 | ?먯씠?꾪듃 ?ㅽ궗 ?쒖? ?щ㎎ |
---
*諛쒗몴 ?먮즺 ?묒꽦: AX?곌뎄??AI?€ | 臾몄쓽: ?대? 硫붿떊?€*

105
docs/TOOL_PARITY_REPORT.md Normal file
View File

@@ -0,0 +1,105 @@
# Tool/Slash Parity Report
Generated: 2026-04-04 02:06:25
## Summary
- AX slash count: 85
- claw-code slash count: 7
- Common: 7
- AX only: 78
- claw-code only: 0
## Common
- /clear
- /exit
- /help
- /init
- /mcp
- /memory
- /permissions
## AX Only
- /add-dir
- /advisor
- /agents
- /allowed-tools
- /branch
- /btw
- /build
- /chrome
- /color
- /commit
- /compact
- /config
- /context
- /copy
- /cost
- /desktop
- /diff
- /doctor
- /effort
- /explain
- /export
- /fast
- /feedback
- /files
- /fix
- /heapdump
- /hooks
- /ide
- /init-verifiers
- /install-github-app
- /install-slack-app
- /keybindings
- /login
- /logout
- /mobile
- /model
- /new
- /output-style
- /passes
- /plan
- /plugin
- /pr
- /pr-comments
- /privacy-settings
- /rate-limit-options
- /release-notes
- /reload-plugins
- /remote-env
- /rename
- /reset
- /resume
- /review
- /rewind
- /sandbox-toggle
- /search
- /security-review
- /session
- /settings
- /skills
- /stats
- /status
- /statusline
- /stickers
- /structure
- /summary
- /tag
- /tasks
- /terminal-setup
- /test
- /theme
- /thinkback
- /thinkback-play
- /translate
- /ultrareview
- /upgrade
- /usage
- /verify
- /vim
## claw-code Only
## Notes
- claw-code source baseline: claw-code/en/quickstart.md
- AX source baseline: src/AxCopilot/Views/ChatWindow.xaml.cs

65
docs/UI_UX_CHECKLIST.md Normal file
View File

@@ -0,0 +1,65 @@
# AX Agent UI/UX 점검 체크리스트
업데이트: 2026-04-04 12:22 (KST)
## 1. 공통 화면 품질
- [ ] 창 진입 시 레이아웃 깨짐/문자열 깨짐 없이 렌더링된다.
- [ ] 상단 탭(`Chat`, `Cowork`, `Code`) 전환 시 불필요한 새 대화 이력이 자동 생성되지 않는다.
- [ ] 좌측 패널은 탭별 목적에 맞는 최소 메뉴만 표시된다.
- [ ] 입력창 상단의 모델/프리셋 바가 단일 라인으로 정돈되어 표시된다.
- [ ] 메시지 버블(사용자/어시스턴트)의 여백/폰트/액션 배치가 일관된다.
## 2. 슬래시(`/`) 팔레트
- [ ] `/` 입력 시 팝업이 즉시 열리고 첫 가시 항목이 선택된다.
- [ ] 마우스 휠 스크롤이 정상 동작한다.
- [ ] 방향키(Up/Down), `PageUp/PageDown`, `Home/End`, `Enter`, `Esc`가 모두 동작한다.
- [ ] `정리`, `전체 접기/펼치기` 버튼이 정상 동작한다.
- [ ] 모든 그룹을 접었을 때 안내 문구가 노출된다.
- [ ] 핀/최근 정렬 우선순위가 `핀 > 최근 > 이름`으로 유지된다.
## 3. 권한 팝업
- [ ] 권한 버튼 클릭 시 팝업이 즉시 열리고 키보드 포커스가 진입한다.
- [ ] `Tab`으로 항목 이동, `Enter/Space`로 모드 적용, `Esc`로 닫기가 동작한다.
- [ ] 섹션 접힘 상태(요약/예외/거부/고급)가 재오픈 시 복원된다.
- [ ] 하단 권한 표시와 상단 권한 배너의 표현이 현재 모드와 일치한다.
## 4. AX Agent 설정
- [ ] AX Agent 설정 창이 예외 없이 열린다(트레이/앱 내부 모두).
- [ ] 슬래시 핀 최대 개수, 최근 최대 개수 변경 후 즉시 반영된다.
- [ ] 모델 서비스/모델 변경이 입력창 모델 라벨과 일치한다.
## 5. 운영 모드 시나리오
### External 모드
- [ ] AX Agent 설정에서 `operationMode=external` 전환 후 저장한다.
- [ ] `? 검색어`를 실행하면 웹 검색이 정상 수행된다.
- [ ] 외부 LLM 호출(허용된 서비스)이 정상 수행된다.
### Internal 모드
- [ ] AX Agent 설정에서 `operationMode=internal` 전환 후 저장한다.
- [ ] `? 검색어`를 실행하면 외부 검색이 차단되고 안내 메시지가 표시된다.
- [ ] 외부 URL 열기/외부 HTTP 도구가 차단된다.
- [ ] 사내 허용 경로(온프레미스 LLM/MCP)는 정상 동작한다.
## 6. 회귀 확인
- [ ] `dotnet build src/AxCopilot/AxCopilot.csproj` 경고 0 / 오류 0
- [ ] `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj` 전체 통과
## 7. 최근 점검 결과
점검 시각: 2026-04-04 12:22 (KST)
- [x] 권한 모드 표면 명칭/순서 통일 적용 확인
- [x] `/` 팔레트 휠/방향키/PageUp/PageDown/Home/End 동작 경로 반영 확인
- [x] AX Agent 설정 권한 순환 순서와 `/sandbox-toggle` 순환 순서 일치 확인
- [x] 운영 모드 회귀 필터 테스트 18건 통과 (`OperationModePolicy/Readiness/LlmOperationMode`)
- [x] 전체 테스트 436건 통과
점검 시각: 2026-04-04 12:41 (KST)
- [x] 권한 버튼 툴팁에 운영 모드 + 기본 권한 + 예외 개수 표시 확인
- [x] 권한 상태 텍스트(`/permissions`, `/allowed-tools`)를 축약형으로 정리 확인
- [x] 모델 라벨 말줄임 처리(`MaxWidth`, `CharacterEllipsis`) 적용 확인
- [x] 설정창 외부 진입(`OpenAgentSettingsFromExternal`) Dispatcher 경유 오픈 경로 확인
- [x] 운영 모드 필터 테스트 18건 재통과
- [x] 전체 테스트 436건 재통과

View File

@@ -1,674 +0,0 @@
# AX Commander 사용 매뉴얼 (v1.0.3)
> 사내 전용 런처 프로그램 — 키보드 하나로 파일·명령·클립보드·계산까지
---
## 목차
1. [시작하기](#1-시작하기)
2. [기본 사용법](#2-기본-사용법)
3. [명령어 프리픽스 가이드](#3-명령어-프리픽스-가이드)
4. [파일 및 앱 검색](#4-파일-및-앱-검색)
5. [파일 액션 서브메뉴](#5-파일-액션-서브메뉴)
6. [Large Type](#6-large-type)
7. [클립보드 합치기](#7-클립보드-합치기)
8. [설정 변경](#8-설정-변경)
9. [잠금 해제 사용시간 알림](#9-잠금-해제-사용시간-알림)
10. [전체 키보드 단축키 표](#10-전체-키보드-단축키-표)
11. [자주 묻는 질문](#11-자주-묻는-질문)
> **v1.0 정식 릴리스** — 30개+ 명령어, 9개 테마(모양 포함), 클립보드 DPAPI 암호화, 글로벌 캡처 단축키, 잠금 해제 알림, 다국어(ko/en/ja/zh/vi), 텍스트 통계·즐겨찾기·파일 이름변경·시스템 모니터·프로젝트 스캐폴딩, AX Agent AI 대화(프롬프트 카드, 코드 구문 강조, 토큰 사용량, 타이핑 효과, 지연 캡처)
---
## 1. 시작하기
### 설치 방법
| 방법 | 파일 | 설명 |
|------|------|------|
| **오프라인 인스톨러** | `AxCommander_Setup.exe` (~136MB) | 모든 것 내장, 인터넷 불필요. 설치 경로 선택, 바로가기, 프로그램 등록 |
| **온라인 인스톨러 (경량)** | `AxCommander_Setup_Online.exe` (**~1MB**) | .NET 4.8 기반 (Windows 기본). .NET 8 Runtime 없으면 자동 다운로드 설치 |
| **직접 실행** | `AxCommander\` 폴더 | 폴더째 복사 후 `AxCommander.exe` 실행 (설치 과정 없음) |
### 런처 열기
프로그램이 백그라운드에서 실행 중인 상태에서 기본 단축키를 누릅니다.
```
기본 단축키: Alt + Space
```
화면 중앙 상단에 런처 창이 나타납니다.
### 런처 닫기
- `Esc`
- 런처 창 밖을 클릭
### 시스템 트레이
작업 표시줄 우측 트레이 아이콘을 우클릭하면 메뉴가 나타납니다.
| 메뉴 항목 | 아이콘 | 기능 |
|----------|--------|------|
| AX Commander 열기 | ⚡ | 런처 창 표시 |
| 설정 | ⚙ | 설정 창 열기 |
| 사용 통계 | 📊 | 런처 사용 현황 통계 창 열기 |
| 플러그인 재로드 | 🔌 | 외부 플러그인 다시 불러오기 |
| 로그 폴더 열기 | 📁 | 오류 로그 폴더를 탐색기로 열기 |
| 정보 | | 개발자 정보 및 버전 확인 |
| Windows 시작 시 자동 실행 | 💡 | 전구 아이콘 — 활성화되면 **앰버색으로 빛나는** 전구 표시. 체크 시 Windows 로그인 시 자동 시작 등록/해제 |
| 종료 | ✕ | 프로그램 완전 종료 |
> 트레이 메뉴 디자인은 현재 테마 색상을 자동으로 따릅니다. Dark 테마면 어두운 배경, Light 테마면 밝은 배경으로 표시됩니다.
---
## 2. 기본 사용법
### 검색하고 실행하기
1. `Alt+Space`로 런처를 엽니다
2. 원하는 파일명, 앱 이름, 또는 명령어를 입력합니다
3. `↑` / `↓` 방향키로 결과를 탐색합니다
4. `Enter`를 눌러 실행합니다
```
예시:
"chrome" → Google Chrome 실행
"보고서" → 보고서.xlsx 파일 열기
"다운" → 다운로드 폴더 열기
```
### 자동완성
결과 목록에서 항목이 선택된 상태에서 `Tab`을 누르면 해당 항목의 이름이 입력창에 채워집니다.
---
## 3. 명령어 프리픽스 가이드
특수 문자를 맨 앞에 입력하면 해당 기능 모드로 전환됩니다.
입력창 좌측에 컬러 배지가 표시되어 현재 모드를 알려줍니다.
| 프리픽스 | 모드 | 예시 |
|---------|------|------|
| `@` | URL 별칭 열기 | `@gh` → GitHub 열기 |
| `~` | 폴더 별칭 열기 | `~dl` → 다운로드 폴더 열기 |
| `>` | 배치/명령 실행 | `>build` → 빌드 스크립트 실행 |
| `$` | 클립보드 텍스트 변환 | `$json` → 클립보드 내용 JSON 정렬 |
| `!` | 워크스페이스 관리 | `!save work` → 현재 창 배치 저장 |
| `#` | 클립보드 히스토리 | `#` → 최근 복사 내역 표시 |
| `;` | 텍스트 스니펫 | `;addr` → 회사 주소 붙여넣기 |
| `=` | 계산기·단위·통화 변환 | `=100 USD to KRW`, `=100km in miles` |
| `?` | 웹 검색 (10개 엔진) | `? 검색어` → 기본 엔진, `?n 검색어` → 네이버, `?g` 구글, `?y` 유튜브, `?nw` 나무위키 등 |
| `/` | 시스템 명령·타이머·알람 | `/timer 5m`, `/alarm 14:30`, `/lock` |
| `emoji` | 이모지 피커 | `emoji 하트` → ❤️ 클립보드 복사 |
| `color` | 색상 변환기 | `color #FF5500` → HEX/RGB/HSL/HSV |
| `recent` | 최근 파일 | `recent 보고서` → 최근 문서 검색 |
| `note` | 빠른 메모 | `note 내일 회의` → 저장 / `note` → 목록 |
| `uninstall` | 앱 제거 | `uninstall chrome` → 제거 실행 |
| `kill` | 프로세스 종료 | `kill chrome` → 크롬 프로세스 강제 종료 |
| `media` | 미디어 제어 | `media pause` → 재생/일시정지 |
| `info` 또는 `*` | 시스템 정보 | `info` → IP·배터리·볼륨 현황 (`*`로도 동일하게 사용 가능) |
| `cap` *(변경 가능)* | 화면 캡처 | `cap region` → 영역 선택, `cap window` → 창 캡처, `cap scroll` → 스크롤, `cap screen` → 전체 화면. Shift+Enter → 지연 캡처 |
| `pick` | 스포이드 색상 추출 | `pick` → 스포이드 모드, 클릭으로 HEX 색상 코드 추출 |
| `date` | 날짜 계산 · D-day | `date +30d`, `date 2026-12-25`, `date unix` |
| `svc` | 서비스 관리 | `svc` → 서비스 목록, `svc restart clipboard` → 클립보드 재시작 |
| `stats` | 텍스트 통계 분석 | `stats` → 클립보드 텍스트 글자·단어·줄 수 분석 |
| `fav` | 즐겨찾기 | `fav` → 목록, `fav add 보고서 C:\work\report.xlsx` → 등록 |
| `rename` | 파일 일괄 이름변경 | `rename C:\work\*.xlsx 보고서_{n}` → 순번 이름변경 |
| `monitor` | 시스템 리소스 모니터 | `monitor` → CPU·메모리·디스크·프로세스 현황 |
| `scaffold` | 프로젝트 스캐폴딩 | `scaffold webapi` → 프로젝트 폴더 구조 생성 |
| `pipe` | 클립보드 파이프라인 | `pipe upper > trim > b64e` → 변환 체이닝 |
| `journal` | 업무 일지 자동 생성 | `journal` → 오늘 사용 앱/명령어 기반 마크다운 보고서 |
| `routine` | 루틴 자동화 | `routine morning` → 등록된 앱/폴더/URL 일괄 실행 |
| `batch` | 텍스트 일괄 처리 | `batch number` → 줄번호, `batch sort` → 정렬 |
| `diff` | 텍스트/파일 비교 | `diff` → 클립보드 2개 비교, 파일 선택 비교 지원 |
| `win` | 윈도우 스위처 | `win chrome` → 열린 창 검색 후 즉시 전환 |
| `help` | 도움말 | `help` → 카테고리별 페이지 전체 기능 목록 창 |
---
## 4. 파일 및 앱 검색
프리픽스 없이 텍스트를 입력하면 인덱싱된 파일과 앱을 검색합니다.
### 검색 범위
- 바탕화면
- Windows 시작 메뉴 (설치된 앱)
- 설정에서 추가한 인덱스 경로
### 한국어 초성 검색 지원
| 입력 | 검색되는 예시 |
|------|-------------|
| `ㅂㄱㅅ` | 보고서.xlsx |
| `ㅅㅈ` | 사진 폴더, 설정 |
| `ㄱㅅ` | 개선안.docx |
### 빠른 실행 별칭
설정 → 빠른 실행 탭에서 자주 쓰는 파일/폴더/URL에 단축 키워드를 등록할 수 있습니다.
```
예시 등록:
키워드: vscode → C:\...\Code.exe
키워드: gh → https://github.com (@ 없이도 사용 가능)
키워드: work → C:\Projects\
```
---
## 5. 파일 액션 서브메뉴
파일이나 앱을 선택한 후 `→` 키를 누르면 해당 항목에 대한 액션 메뉴가 열립니다.
### 진입 방법
1. 런처에서 파일 또는 앱을 검색합니다
2. 원하는 항목을 `↑` / `↓`로 선택합니다
3. **입력 커서가 텍스트 맨 끝에 있는 상태**에서 `→` 키를 누릅니다
4. 상단에 파란색 breadcrumb 바가 나타나며 액션 목록이 표시됩니다
```
← 보고서_최종.xlsx 에 대한 액션 · Esc로 돌아가기
```
### 제공 액션
| 액션 | 설명 |
|------|------|
| 경로 복사 | 파일의 전체 경로를 클립보드에 복사 |
| 파일 탐색기에서 열기 | 탐색기에서 해당 파일을 선택된 상태로 열기 |
| 관리자 권한으로 실행 | UAC 권한 상승 후 실행 (파일에만 표시) |
| 터미널에서 열기 | Windows Terminal 또는 명령 프롬프트로 해당 경로 열기 |
### 돌아가기
- `Esc`: 이전 검색 결과로 복귀 (이전에 입력한 텍스트 자동 복원)
- 액션 선택 후 `Enter`: 액션 실행 후 런처 자동 닫힘
---
## 6. Large Type
선택된 텍스트를 전체 화면으로 크게 표시합니다. 발표, 화면 공유, 빠른 메모 확인에 유용합니다.
### 사용법
1. 결과 목록에서 항목을 선택합니다
2. `Shift+Enter`를 누릅니다
3. 전체 화면 검은 오버레이 위에 텍스트가 크게 표시됩니다
### 표시 내용
| 선택 항목 유형 | Large Type으로 표시되는 내용 |
|--------------|---------------------------|
| 계산기 결과 (`=`) | 계산 결과 숫자 |
| 클립보드 히스토리 (`#`) | 복사된 텍스트 전체 내용 |
| 그 외 모든 항목 | 항목 제목 |
### 닫기
- `Esc`
- 화면 아무 곳이나 클릭
- 우상단 `×` 버튼
> **팁**: `=3.14159265`를 계산기로 입력한 뒤 `Shift+Enter`를 누르면 파이 값을 크게 표시할 수 있습니다.
---
## 7. 클립보드 합치기
클립보드 히스토리에서 여러 항목을 골라 한 번에 합쳐서 복사합니다.
### 사용법
1. `#`을 입력해 클립보드 히스토리 모드로 진입합니다
2. `Shift+↓` 또는 `Shift+↑`로 합치고 싶은 항목을 선택합니다
- 선택할 때마다 하단 힌트 바에 선택 개수가 표시됩니다
- 같은 키를 다시 누르면 선택이 해제됩니다
3. `Shift+Enter`를 눌러 합치기를 실행합니다
4. 선택한 항목들이 줄바꿈(`\n`)으로 연결되어 클립보드에 복사됩니다
```
예시 결과:
항목 1: "회의 안건"
항목 2: "담당자: 홍길동"
항목 3: "일시: 2026-03-24"
→ 클립보드에 복사되는 내용:
회의 안건
담당자: 홍길동
일시: 2026-03-24
```
### 힌트 바
선택된 항목이 있으면 화면 하단에 보라색 힌트 바가 나타납니다:
```
✓ 2개 선택됨 · Shift+Enter로 합치기 · Esc로 취소
```
### 선택 취소
- `Esc`: 모든 선택을 취소하고 런처 닫기
- 런처를 다시 열면 선택이 초기화됩니다
> **주의**: 클립보드 합치기 선택 항목이 있는 상태에서 `Shift+Enter`를 누르면 Large Type 대신 **합치기**가 실행됩니다.
---
## 8. 설정 변경
`Ctrl+,` 또는 시스템 트레이 → 설정으로 설정 창을 엽니다.
### 일반 탭
#### 글로벌 단축키 변경
현재 등록된 단축키 배지를 클릭하면 녹화 모드로 전환됩니다.
```
[클릭] → 녹화 중... → 원하는 키 조합 입력 → 자동 저장
```
- 최소 하나의 보조 키(`Ctrl`, `Alt`, `Shift`, `Win`)가 포함되어야 합니다
- `Esc`를 누르면 녹화를 취소합니다
- 지원 예시: `Alt+Space`, `Ctrl+Alt+K`, `Win+Space`
#### 기본 검색 엔진
`?` 프리픽스로 검색할 때 사용할 기본 검색 엔진을 선택합니다.
| 옵션 | 검색 엔진 |
|------|---------|
| Google (기본) | www.google.com |
| Naver | search.naver.com |
| DuckDuckGo | duckduckgo.com |
| YouTube | youtube.com |
| Wikipedia | ko.wikipedia.org |
특정 엔진을 직접 지정하려면 `?g 검색어`, `?n 검색어` 형식으로 입력할 수 있습니다.
#### 런처 위치
런처 창이 화면에 나타나는 위치를 선택합니다.
| 옵션 | 위치 |
|------|------|
| 상단 중앙 (기본) | 화면 상단 20% 지점 |
| 정중앙 | 화면 정가운데 |
| 하단 중앙 | 화면 하단 75% 지점 |
#### 최대 결과 수
검색 결과로 표시할 최대 항목 수를 설정합니다 (기본: 7개).
#### 창 투명도
런처 창의 불투명도를 조정합니다 (0.5 ~ 1.0).
### 테마 탭
9가지 내장 테마 중 클릭하면 **즉시 미리보기**가 적용됩니다.
저장하지 않고 닫으면 이전 테마로 자동 복원됩니다.
| 테마 | 특징 |
|------|------|
| System | Windows 다크/라이트 모드 자동 연동 |
| Dark | 기본 다크 모드 — 부드러운 라운딩 |
| Light | 밝은 화이트 테마 |
| OLED | 순수 검정 배경 (OLED 화면 최적화) — 가장 둥근 모양 |
| Nord | 차분한 북유럽 블루 계열 — 약간 각진 느낌 |
| Monokai | 에디터 스타일 컬러 — 직각에 가까운 모양 |
| Catppuccin | 파스텔 톤 — 둥근 모양 |
| Sepia | 따뜻한 베이지 계열 — 클래식한 각진 느낌 |
| Alfred | Alfred 앱 영감 다크 |
| Alfred Light | Alfred 앱 영감 라이트 |
| Custom | 색상 편집 탭에서 직접 지정 |
> 각 테마는 **색상뿐 아니라 창·항목의 모서리 라운딩 비율도 다르게** 설정됩니다. OLED가 가장 둥글고, Monokai·Sepia가 가장 각집니다.
### 스니펫 탭 (`;` 프리픽스)
자주 입력하는 문구를 등록합니다. 런처에서 `;키워드`로 검색 후 `Enter`를 누르면 현재 포커스된 창에 텍스트가 입력됩니다.
#### 글로벌 스니펫 자동 확장
탭 최상단의 토글을 켜면 **런처를 열지 않아도** 모든 앱에서 `;키워드 + Space 또는 Enter`를 입력하는 순간 자동으로 텍스트가 치환됩니다.
```
토글 OFF: 런처에서만 스니펫 사용 가능
토글 ON: 어떤 앱에서든 ;addr + Space → 회사 주소로 자동 치환
```
**동적 변수 사용 가능**:
| 변수 | 치환 내용 |
|------|----------|
| `{date}` | 오늘 날짜 (예: 2026-03-24) |
| `{time}` | 현재 시간 (예: 14:30) |
| `{datetime}` | 날짜+시간 |
| `{year}` / `{month}` / `{day}` | 연/월/일 |
```
예시 스니펫:
키: sign
내용: 안녕하세요, {date} 작성한 홍길동입니다.
```
### 클립보드 탭
| 설정 | 설명 |
|------|------|
| 클립보드 히스토리 활성화 | `#` 모드 사용 여부 |
| 최대 보관 개수 | 저장할 히스토리 항목 수 (기본: 50개) |
| 보안 제외 패턴 | 신용카드·주민번호 등 민감 데이터 자동 차단 패턴 |
### 시스템 탭
`/` 프리픽스 시스템 명령의 표시 여부를 항목별로 켜거나 끌 수 있습니다.
### 빠른 실행 탭
키워드 → 파일/URL/폴더 단축키를 추가/삭제합니다.
| 타입 | 예시 |
|------|------|
| 앱 | `vscode``C:\...\Code.exe` |
| URL | `gh``https://github.com` |
| 폴더 | `dl``%USERPROFILE%\Downloads` |
### 배치 명령 탭
`>` 프리픽스 명령 단축키를 관리합니다.
| 항목 | 설명 |
|------|------|
| 키워드 | `>` 이후 입력할 키워드 (예: `build`, `test`) |
| 명령어 | 실행할 PowerShell 또는 cmd 명령어 |
| 창 표시 | 체크 시 터미널 창이 화면에 표시됨 |
```
예시 등록:
키워드: build → dotnet build (창 표시: ✓)
키워드: open → explorer . (창 표시: ✗)
```
### 캡처 탭
화면 캡처(`cap`) 기능의 세부 설정을 변경합니다.
캡처 결과는 보안 정책에 따라 **클립보드에만 복사**되며, 파일로 저장하는 기능은 제공하지 않습니다.
| 설정 | 설명 |
|------|------|
| 캡처 프리픽스 | `cap` 대신 사용할 다른 단어를 입력합니다 (예: `sc`, `screenshot`). 변경 후 저장하면 즉시 적용됩니다 |
| 글로벌 캡처 단축키 사용 | 런처를 열지 않고 단축키만으로 바로 캡처합니다 (기본: **비활성화**) |
| 캡처 단축키 | 글로벌 단축키 키 조합 (기본: `PrintScreen`). 클릭 후 원하는 키를 누르면 변경됩니다 |
| 단축키 실행 모드 | 단축키를 눌렀을 때 실행할 캡처 모드 — 전체 화면 / 활성 창 / 영역 선택 |
| 스크롤 캡처 대기 시간 | 스크롤 캡처 시 프레임 간 대기 시간 (80~500ms). 느린 페이지에서 누락이 발생하면 값을 높이세요 |
#### 지연 캡처 (Shift+Enter)
캡처 모드에서 항목을 선택한 상태로 `Shift+Enter`를 누르면 지연 캡처 타이머 선택 화면이 표시됩니다.
1. `cap`을 입력해 캡처 모드로 진입합니다
2. 원하는 캡처 모드(영역 선택, 활성 창, 스크롤, 전체 화면)를 선택합니다
3. `Shift+Enter`를 누르면 타이머 선택 목록(3초/5초/10초)이 표시됩니다
4. 원하는 시간을 선택하고 `Enter`를 누르면 카운트다운 알림 후 캡처가 실행됩니다
> **팁**: 메뉴가 숨겨져야 하는 상황이나 특정 UI 상태를 캡처할 때 유용합니다.
#### 영역 선택 캡처 (cap region) 키보드 미세조정
마우스 드래그로 영역을 선택한 뒤 키보드로 미세 조정할 수 있습니다:
| 키 | 동작 |
|----|------|
| `←` `→` `↑` `↓` | 선택 영역 1px 미세 조정 |
| `Shift+방향키` | 10px 단위 조정 |
| `Enter` | 현재 선택 확정 |
| `Esc` | 취소 |
### 알림 탭
PC 잠금 해제 시 오늘 누적 사용 시간을 알려주는 팝업 기능을 설정합니다.
| 설정 | 설명 |
|------|------|
| 잠금 해제 알림 활성화 | 기능 전체를 켜거나 끕니다 |
| 표시 위치 | 팝업이 나타날 화면 모서리를 선택합니다 (우하단/좌하단/우상단/좌상단) |
| 표시 간격 | 알림을 너무 자주 표시하지 않도록 최소 간격을 설정합니다 (30분/1시간/2시간/4시간) |
| 자동 닫힘 | 팝업이 자동으로 닫히기까지의 시간을 설정합니다 (5~30초) |
### 설정 내보내기 / 불러오기
설정 창 하단 좌측의 **내보내기** / **불러오기** 버튼으로 설정을 공유할 수 있습니다.
| 기능 | 설명 |
|------|------|
| 내보내기 | 현재 settings.json을 `.axsettings` 파일로 저장 |
| 불러오기 | `.axsettings` 파일에서 설정을 덮어쓰기 (앱 재시작 필요) |
> 동료에게 설정 파일을 공유하면 동일한 단축키, 스니펫, 별칭을 즉시 사용할 수 있습니다.
### 예약어 충돌 방지
캡처 프리픽스, 빠른 실행 키워드, 배치 명령 키워드가 시스템 예약어(=, ?, #, $, ;, help, cap 등)와 충돌하면 **저장이 거부되고 알림 팝업**이 표시됩니다.
### Windows 시작 시 자동 실행
트레이 아이콘 우클릭 → **Windows 시작 시 자동 실행** 항목을 체크/해제합니다.
- 체크 시: Windows 로그인할 때마다 AX Commander가 자동으로 시작됩니다
- 해제 시: 수동으로 EXE를 실행해야 합니다
- 설정은 Windows 레지스트리(`HKCU\...\Run`)에 저장되며 관리자 권한이 필요하지 않습니다
### 정보 창
트레이 아이콘 우클릭 → **정보**를 클릭하면 개발자 정보와 버전을 확인할 수 있습니다.
- 상단에 **다이아몬드 픽셀 보석** 앱 아이콘이 표시됩니다 (Blue/Green/Red/Green 4색 보석 컷 디자인)
- 개발자 이름을 클릭하면 마스코트 이미지가 오버레이로 표시됩니다
---
## 9. 잠금 해제 사용시간 알림
PC 잠금을 해제할 때 오늘 하루 누적 사용 시간을 작은 팝업으로 알려주는 기능입니다.
### 팝업 내용
```
┌─────────────────────────────────┐
│ 오늘 누적 사용 시간 │
│ 3시간 42분 │
│ │
│ "삶이란 자전거를 타는 것과 같다. │
│ 계속 움직여야 균형을 잡을 수 있다" │
│ — 아인슈타인│
└─────────────────────────────────┘
```
- 매번 잠금 해제 시 표시되는 것이 아니라, **설정한 간격 이상** 시간이 지난 경우에만 나타납니다
- 팝업은 런처와 완전히 별개로 동작하며 포커스를 빼앗지 않습니다
- 클릭하거나 설정한 시간이 지나면 자동으로 닫힙니다
### 활성화 방법
`설정(Ctrl+,)`**알림 탭** → "잠금 해제 알림 활성화" 토글을 켭니다.
### 팝업 위치 설정
| 옵션 | 위치 |
|------|------|
| 우하단 (기본) | 화면 오른쪽 아래 모서리 |
| 좌하단 | 화면 왼쪽 아래 모서리 |
| 우상단 | 화면 오른쪽 위 모서리 |
| 좌상단 | 화면 왼쪽 위 모서리 |
---
## 10. 전체 키보드 단축키 표
### 런처 창
| 단축키 | 동작 |
|--------|------|
| `Alt+Space` | 런처 열기 / 닫기 (기본, 변경 가능) |
| `↑` / `↓` | 결과 목록 위아래 이동 |
| `Enter` | 선택 항목 실행 |
| `Shift+Enter` | Large Type 표시 / 병합 대기 항목 있으면 합치기 실행 / 캡처 모드에서는 지연 캡처(3초/5초/10초) 타이머 선택 |
| `→` | 파일 액션 서브메뉴 진입 (커서가 텍스트 끝에 있을 때) |
| `Shift+↓` | 현재 항목 병합 선택/해제 후 다음 항목으로 이동 |
| `Shift+↑` | 현재 항목 병합 선택/해제 후 이전 항목으로 이동 |
| `Tab` | 선택 항목 제목을 입력창에 자동완성 |
| `Esc` | 액션 서브메뉴 중이면 이전으로 / 아니면 런처 닫기 |
| `Ctrl+,` | 설정 창 열기 |
### Large Type 창
| 단축키 | 동작 |
|--------|------|
| `Esc` | 닫기 |
| 마우스 클릭 | 닫기 |
---
## 11. 자주 묻는 질문
**Q. 단축키를 눌러도 런처가 열리지 않습니다.**
다른 프로그램이 같은 단축키를 사용하고 있을 수 있습니다. 트레이 아이콘에 경고 알림이 표시됩니다. 설정(`Ctrl+,`) → 일반 탭에서 단축키를 변경하세요.
---
**Q. 검색해도 파일이 나오지 않습니다.**
파일이 인덱스 경로에 포함되어 있지 않을 수 있습니다. 설정 → 일반 탭에서 인덱스 경로를 추가하세요 (기본: 바탕화면, 시작 메뉴).
또한 해당 파일의 확장자가 검색 확장자 목록에 포함되어야 합니다. 설정 → 일반 탭 하단의 **검색할 확장자** 섹션에서 확장자를 추가할 수 있습니다. 기본값에는 실행 파일, 문서, 이미지, 텍스트 파일이 포함되어 있습니다. 폴더도 검색 가능하며 Enter로 탐색기에서 열 수 있습니다.
인덱스는 앱 시작 시 자동으로 빌드되며, 이후 파일/폴더 변경을 감지해 자동 갱신됩니다. 설정 저장 시 인덱스가 재빌드되며 프로그레스바가 표시됩니다.
---
**Q. 클립보드 히스토리(`#`)에 내용이 보이지 않습니다.**
설정 → 클립보드 탭에서 "클립보드 히스토리 활성화"가 켜져 있는지 확인하세요. 또한 복사한 내용이 보안 제외 패턴(신용카드 번호 등)에 해당하면 자동으로 저장되지 않습니다.
> **보안 참고**: 클립보드 히스토리는 Windows DPAPI 암호화로 저장됩니다. 현재 Windows 사용자 계정에서만 복호화할 수 있으며, 다른 사용자나 PC에서는 파일을 열어도 내용을 볼 수 없습니다.
---
**Q. 계산기(`=`)에서 어떤 수식을 사용할 수 있나요?**
| 종류 | 예시 |
|------|------|
| 기본 연산 | `=100*12+50` |
| 거듭제곱 | `=2^10` |
| 나머지 | `=17%5` |
| 수학 함수 | `=sqrt(144)`, `=sin(pi/2)` |
| 로그 | `=log(1000)`, `=ln(e)` |
| 상수 | `pi`, `e` |
| 16진수 | `=0xFF+1` |
| 과학적 표기 | `=1.5e3*2` |
| 단위 변환 | `=100km in miles`, `=32f in c`, `=5lb to kg` |
| 통화 변환 | `=100 USD to KRW`, `=50 EUR in JPY` (실시간 환율) |
---
**Q. 타이머는 어떻게 사용하나요?**
`/` 프리픽스를 사용합니다:
| 입력 | 동작 |
|------|------|
| `/timer 5m` | 5분 후 트레이 알림 |
| `/timer 1h30m` | 1시간 30분 후 알림 |
| `/timer 30s 회의 준비` | 30초 후 "회의 준비" 알림 |
| `/alarm 14:30` | 오후 2시 30분에 알림 (지나면 다음날로 자동 설정) |
Enter로 시작하면 백그라운드에서 카운트가 진행되고, 완료 시 트레이 아이콘에서 풍선 알림이 나타납니다.
---
**Q. 이모지를 빠르게 복사하려면?**
`emoji` 를 입력한 뒤 검색어를 입력하세요:
```
emoji 하트 → ❤️ 빨간 하트, 🧡 주황 하트, 💜 보라 하트 …
emoji 웃음 → 😀 😂 🤣 …
emoji thumbs → 👍 👎
emoji → 자주 쓰는 이모지 30개 기본 표시
```
Enter를 누르면 해당 이모지가 클립보드에 복사됩니다.
---
**Q. `→` 키를 눌러도 액션 메뉴가 열리지 않습니다.**
두 가지 조건을 모두 충족해야 합니다:
1. 검색 결과 중 파일 또는 앱 항목이 선택되어 있어야 합니다 (URL, 스니펫, 계산기 결과 불가)
2. 입력 커서가 텍스트의 **맨 끝**에 위치해 있어야 합니다 (`End` 키로 이동 후 시도)
---
**Q. 플러그인을 추가하려면 어떻게 하나요?**
DLL 플러그인은 `IActionHandler` 인터페이스를 구현한 후 트레이 → 설정 → (settings.json의 `plugins` 배열)에 경로를 등록합니다. 등록 후 트레이 → 플러그인 재로드를 클릭하면 즉시 적용됩니다.
---
**Q. `cap` 명령어를 다른 이름으로 바꾸려면?**
설정(`Ctrl+,`) → **캡처 탭** → "캡처 프리픽스" 입력란에 원하는 단어를 입력한 뒤 저장합니다. 예) `sc``sc screen`, `sc window`.
---
**Q. 잠금 해제 알림이 너무 자주 나타납니다.**
설정(`Ctrl+,`) → **알림 탭** → "표시 간격"을 더 긴 시간(2시간 또는 4시간)으로 변경하세요.
---
**Q. `*` 입력이 `info`와 같은 건가요?**
네, `*` 단독 입력 또는 `* ip`, `* battery`처럼 사용하면 `info`, `info ip`와 완전히 동일하게 동작합니다.
---
**Q. `help`는 어떻게 사용하나요?**
- `help` → 전체 기능 목록 창 열기
- `help 계산` → 계산 관련 명령어만 필터
- `help clip` → 클립보드 관련 명령어만 필터
- 항목 선택 후 `Enter` → 해당 예시를 클립보드에 복사
---
**Q. 설정이나 히스토리 파일은 어디에 저장되나요?**
모든 데이터는 `%APPDATA%\AxCommander\` 폴더에 저장됩니다. EXE 파일 옆에는 아무것도 생성되지 않으므로 USB나 네트워크 드라이브에서 실행해도 깨끗합니다.
| 파일 | 설명 | 자동 삭제 |
|------|------|----------|
| `settings.json` | 전체 설정 | 수동 |
| `clipboard_history.dat` | 클립보드 히스토리 (DPAPI 암호화) | 최대 개수 제한 |
| `logs/app-*.log` | 일별 로그 | **14일** 후 자동 삭제 |
| `stats/*.json` | 일별 사용 통계 | **30일** 후 자동 삭제 |
| `favorites.json` | 즐겨찾기 | 수동 |
| `routines.json` | 루틴 정의 | 수동 |
| `notes.txt` | 빠른 메모 | 수동 (`note clear`로 삭제) |
---
*AX Commander — 사내 전용 프로그램*

View File

@@ -3,11 +3,97 @@
## Scope
- Align AX Copilot with claw-code quality for loop reliability, permission/hook behavior, and session durability.
## Update
- Updated: 2026-04-05 15:34 (KST)
- Rebased the AX Agent improvement plan on actual `claw-code` runtime files instead of earlier AX snapshots. The reference spine is now `src/bootstrap/state.ts -> src/bridge/initReplBridge.ts -> src/bridge/sessionRunner.ts -> src/screens/REPL.tsx -> src/components/Messages.tsx -> src/components/StatusLine.tsx`.
- AX Agent work should follow that same quality order: state first, execution second, render last. UI-only fixes that bypass state/execution should be treated as temporary.
- Updated: 2026-04-05 16:55 (KST)
- Current estimated parity vs `claw-code`: core execution engine `82%`, main chat UI `68%`, Cowork/Code status UX `63%`, internal settings linkage `88%`, overall AX Agent `74%`.
- Engine-affecting settings should be handled conservatively during parity work. If a setting changes the main execution route, approval flow, or recovery behavior without representing a stable real-world user choice, it should be moved to developer-only UI or removed from user-facing surfaces.
## Preserved History (Summary)
- Core loop guards and post-tool verification gates are already partially implemented.
- Plan Mode, parallel tool execution, and unknown-tool recovery are in place.
- Session restore hardening is ongoing.
## Reference Map
| claw-code reference | AX apply target | completion criteria | quality criteria |
|---|---|---|---|
| `src/bootstrap/state.ts` | `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`, `src/AxCopilot/Services/ChatStorageService.cs` | one canonical runtime/session state for current turn, queue, retry, execution events, and persisted snapshot | reopen/retry/queue flows do not create duplicate or blank assistant messages |
| `src/bridge/initReplBridge.ts` | `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`, `src/AxCopilot/Services/LlmService.cs` | send/regenerate/retry/queued follow-up/slash all enter through one prepared-execution path | same input under same settings takes same execution route regardless of entry point |
| `src/bridge/sessionRunner.ts` | `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs` | tool start/result/error/progress normalized once inside loop layer | Cowork/Code no longer flash repeated status strings or overshare debug payloads |
| `src/bridge/bridgeMessaging.ts` | `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Services/Agent/AgentLoopService.cs` | inbound execution events separated from display-only events before UI render | execution event replay does not duplicate visible timeline banners |
| `src/screens/REPL.tsx` | `src/AxCopilot/Views/ChatWindow.xaml`, `src/AxCopilot/Views/ChatWindow.xaml.cs` | screen state transitions, queue flow, retry flow, and composer state use shared runtime helpers | window resize, queue chaining, and retry feel stable instead of UI-patched |
| `src/components/Messages.tsx` | `src/AxCopilot/Views/ChatWindow.xaml.cs` | timeline derives from normalized conversation/session state only | no token-only completions, blank cards, or direct injected duplicates |
| `src/components/StatusLine.tsx` | `src/AxCopilot/Views/ChatWindow.xaml`, `src/AxCopilot/Views/ChatWindow.xaml.cs` | status strip computed from debounced runtime state, not multiple imperative refresh calls | metadata stays lightweight and does not overpower message timeline |
## AX Agent Improvement Phases
### Phase A. Runtime State Canonicalization
- Reference: `src/bootstrap/state.ts`
- AX apply location: `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`, `src/AxCopilot/Services/ChatStorageService.cs`
- Completion criteria:
- `Chat`, `Cowork`, `Code` all update one shared runtime/session state model.
- queue, retry, post-compaction, and execution-event state can be restored after reopen.
- Quality criteria:
- reopening a conversation reproduces the same visible timeline without extra assistant cards.
- queue and execution badges remain in sync with the stored conversation.
### Phase B. Prepared Execution Unification
- Reference: `src/bridge/initReplBridge.ts`
- AX apply location: `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`, `src/AxCopilot/Services/LlmService.cs`
- Completion criteria:
- prompt stack assembly, execution mode choice, and final assistant commit are engine-owned.
- send/regenerate/retry/queued follow-up/slash flows all call the same preparation API.
- Quality criteria:
- behavior is deterministic per tab/settings combination.
- UI stops building different prompt stacks for the same conversation state.
### Phase C. AgentLoop Event Normalization
- Reference: `src/bridge/sessionRunner.ts`, `src/bridge/bridgeMessaging.ts`
- AX apply location: `src/AxCopilot/Services/Agent/AgentLoopService.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.cs`, `src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs`
- Completion criteria:
- loop events are normalized into bounded activity/event records before UI consumption.
- permission requests, failure states, retries, and completion states use a stable event shape.
- Quality criteria:
- Cowork/Code no longer flash rapidly during long-running tool sequences.
- file path/debug detail remains collapsed by default.
### Phase D. Timeline Render Parity
- Reference: `src/screens/REPL.tsx`, `src/components/Messages.tsx`
- AX apply location: `src/AxCopilot/Views/ChatWindow.xaml`, `src/AxCopilot/Views/ChatWindow.xaml.cs`
- Completion criteria:
- assistant/user messages, execution logs, compact boundaries, and queue summaries are rendered from one derived timeline model.
- direct imperative bubble injection is removed from normal send/regenerate/retry flows.
- Quality criteria:
- no blank assistant cards.
- no token-only completion without visible content.
- no duplicate event banners after re-render.
### Phase E. Composer and Status Strip Simplification
- Reference: `src/screens/REPL.tsx`, `src/components/StatusLine.tsx`
- AX apply location: `src/AxCopilot/Views/ChatWindow.xaml`, `src/AxCopilot/Views/ChatWindow.xaml.cs`
- Completion criteria:
- composer height grows only on explicit line breaks.
- status strip, queue summary, and runtime activity all use debounced runtime updates.
- Chat/Cowork/Code share one responsive width calculation policy.
- Quality criteria:
- resizing feels natural.
- composer does not keep growing after send.
- metadata remains subordinate to the message timeline.
### Phase F. Recovery, Resume, and Verification
- Reference: `src/bootstrap/state.ts`, `src/bridge/sessionRunner.ts`, `src/screens/REPL.tsx`
- AX apply location: `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`, `src/AxCopilot/Services/ChatStorageService.cs`
- Completion criteria:
- reopen after interruption keeps queue, runtime summary, and latest visible assistant state consistent.
- retry-last and regenerate do not depend on mutating `InputBox.Text`.
- all three tabs pass reopen/retry/manual compact/manual stop/manual resume scenarios.
- Quality criteria:
- stored conversation and rendered conversation stay identical after restore.
- final reopened state matches the last completed runtime state.
## Execution Tracks
1. Hook contract parity
- Structured hook output support (`updatedInput`, `updatedPermissions`, `additionalContext`).
@@ -28,3 +114,308 @@
- Internal parity scenarios pass target threshold.
- Resume/replay failures: zero.
- `dotnet build` warnings/errors: zero.
## Validation Matrix
- Build: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
- Manual scenario 1: Chat send -> answer visible -> retry -> regenerate -> reopen conversation
- Manual scenario 2: Cowork tool run -> progress summary -> completion -> queue next request -> reopen
- Manual scenario 3: Code task with execution log noise -> completion -> compact -> next turn -> reopen
- Manual scenario 4: AX Agent internal settings change -> immediate runtime reflection without layout regression
## Canonical Prompt Set
- Updated: 2026-04-05 22:04 (KST)
- The following prompt set should be used for AX vs `claw-code` parity checks. The goal is not byte-identical output, but equivalent execution route, approval behavior, and artifact/result quality.
- Operational checklist copy: `docs/AX_AGENT_REGRESSION_PROMPTS.md`
1. Chat basic answer
- Prompt: `회의 일정 조정 메일을 정중한 한국어로 써줘`
- Apply to: `Chat`
- Verify: normal reply render, retry/regenerate stability, reopen durability
2. Chat long-form explanation
- Prompt: `RAG와 fine-tuning 차이를 실무 관점으로 7가지로 설명해줘`
- Apply to: `Chat`
- Verify: long response rendering, compaction follow-up continuity
3. Cowork document task
- Prompt: `신규 ERP 도입 제안서 초안을 작성해줘. 목적, 범위, 기대효과, 추진일정 포함`
- Apply to: `Cowork`
- Verify: topic/task preset routing, plan-first execution, actual document-oriented output path
4. Cowork data task
- Prompt: `매출 CSV를 분석해서 월별 추세와 이상치를 요약해줘`
- Apply to: `Cowork`
- Verify: data-analysis tool choice, reduced runtime noise, final summary quality
5. Code bug-fix task
- Prompt: `현재 프로젝트에서 설정 저장 버그 원인 찾고 수정해줘`
- Apply to: `Code`
- Verify: read/search/edit path, diff persistence, reopen consistency
6. Code build/test task
- Prompt: `빌드 오류를 재현하고 수정한 뒤 다시 빌드해줘`
- Apply to: `Code`
- Verify: build/test loop, failure retry, final completion message
7. Queued follow-up
- Prompt sequence:
- `이 창 레이아웃 문제 원인 찾아줘`
- `끝나면 README도 같이 갱신해줘`
- Apply to: `Cowork`, `Code`
- Verify: queue chaining, next-turn pickup without UI mutation
8. Post-compaction continuity
- Prompt: `지금까지 논의한 내용을 5줄로 이어서 정리하고 다음 작업 제안해줘`
- Apply to: `Chat`, `Cowork`, `Code`
- Verify: compact-after-next-turn continuity, no token-only completion
9. Permission approval
- Prompt: `이 파일을 수정해서 저장해줘`
- Apply to: `Code`
- Verify: permission request, approve/reject rendering, final transcript consistency
10. Slash / skill entry
- Prompt: `/bug-hunt src 폴더 잠재 버그 찾아줘`
- Apply to: `Code`
- Verify: slash entry uses the same prepared-execution route as normal send
## Tool / Skill Delta Snapshot
- Updated: 2026-04-05 22:04 (KST)
- AX tool registry count is larger than `claw-code`, but the shape is different.
- AX reference: `src/AxCopilot/Services/Agent/ToolRegistry.cs`
- `claw-code` reference: `src/tools/*`, `src/skills/bundledSkills.ts`
### AX stronger areas
- Document/office generation and conversion (`ExcelSkill`, `DocxSkill`, `PptxSkill`, `DocumentPlannerTool`, `DocumentAssemblerTool`)
- Data/business utilities (`DataPivotTool`, `SqlTool`, `FormatConvertTool`, `TextSummarizeTool`)
- WPF-integrated enterprise UX and Korean workflow presets
### claw-code stronger areas
- Transcript-native tool use / rejection / approval message taxonomy
- Plan approval request/response rendering in the message stream
- Permission and tool-result message consistency
- Bundled skill registry and skill message integration
### Remaining parity target
- Keep AX's richer business/document tool set
- Bring transcript rendering and approval/status UX closer to `claw-code`
## Transcript-First Approval / Ask UX
- Updated: 2026-04-05 18:58 (KST)
- `plan approval` and `user ask` should both resolve inside the transcript first.
- Secondary windows are allowed only as detail surfaces, not as the primary decision flow.
- AX implementation status:
- `plan approval`: transcript-first, detail view via `PlanViewerWindow`
- `user ask`: transcript-first inline question card with choices / direct input / submit
## Tool / Skill UX Parity Follow-up
- Updated: 2026-04-05 19:04 (KST)
- Default transcript should prefer role-oriented badges and readable labels over raw internal tool names.
- AX implementation status:
- tool event badges: simplified to role-first labels
- item naming: normalized into readable Korean labels or `/skill-name` style
- observability panels: permission/background diagnostics reduced outside debug mode
- Remaining quality target:
- move more tool-result and permission-result presentation into smaller message-type-specific helpers, closer to `claw-code` component separation
## Current Snapshot
- Updated: 2026-04-05 19:42 (KST)
- Estimated parity:
- Core engine: `89%`
- Main transcript UI: `96%`
- Cowork/Code runtime UX: `92%`
- Internal settings linkage: `88%`
- Overall AX Agent parity: `93%`
## Remaining Gaps
1. Prompt lifecycle parity
- `claw-code` reference: `src/utils/handlePromptSubmit.ts`, `src/utils/processUserInput/processTextPrompt.ts`
- AX gap:
- `send / retry / regenerate` are mostly unified, but `slash / compact 후 다음 턴 / 일부 queue 후처리`는 아직 `ChatWindow.xaml.cs`에서 UI 상태를 먼저 만지는 구간이 남아 있습니다.
- 목표는 모든 입력 진입점이 `AxAgentExecutionEngine`의 동일한 prepare/execute/finalize 축만 타게 만드는 것입니다.
2. Plan / approval rendering parity
- `claw-code` reference: `src/components/messages/PlanApprovalMessage.tsx`
- AX gap:
- 기본 transcript에서는 compact pill 위주로 줄였지만, 승인/계획 결과 표현이 아직 `Popup/Window + WPF 카드`와 섞여 있습니다.
## Quality Uplift Plan
- Updated: 2026-04-06 00:22 (KST)
- Goal: move AX Agent from parity-oriented stability into `claw-code`-grade maintainability and transcript quality, without copying implementation expression.
### Track 1. Transcript Renderer Decomposition
- `claw-code` references:
- `src/components/Messages.tsx`
- `src/components/MessageRow.tsx`
- `src/components/messages/AssistantToolUseMessage.tsx`
- `src/components/messages/PlanApprovalMessage.tsx`
- AX apply targets:
- `src/AxCopilot/Views/ChatWindow.xaml.cs`
- new partial/helper files under `src/AxCopilot/Views/`
- Completion criteria:
- `plan / permission / ask / tool-result / task-summary` rendering no longer lives as one large block inside `ChatWindow.xaml.cs`
- each transcript concern has a dedicated helper/partial/class boundary
- Quality criteria:
- render changes for one message type do not regress unrelated timeline behavior
- transcript behavior remains stable after reopen / retry / regenerate
### Track 2. Permission Presentation Catalog
- `claw-code` references:
- `src/components/permissions/PermissionRequest.tsx`
- `src/components/permissions/PermissionDialog.tsx`
- tool-specific permission request components under `src/components/permissions/*`
- AX apply targets:
- `src/AxCopilot/Services/Agent/PermissionModeCatalog.cs`
- new `src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs`
- `src/AxCopilot/Views/ChatWindow.xaml.cs`
- Completion criteria:
- permission request title, subtitle, icon, severity, and choice set are resolved by tool/request type
- file edit / shell / skill / ask-user / web-like permission requests use distinct presentation metadata
- Quality criteria:
- permission prompts feel explicit and predictable
- user can distinguish request type without reading raw tool names or payload
### Track 3. Tool Result Message Taxonomy
- `claw-code` references:
- `src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx`
- `src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx`
- `src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx`
- `src/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx`
- AX apply targets:
- new `src/AxCopilot/Services/Agent/ToolResultPresentationCatalog.cs`
- `src/AxCopilot/Views/ChatWindow.TranscriptPolicy.cs`
- `src/AxCopilot/Views/ChatWindow.xaml.cs`
- Completion criteria:
- transcript display rules differ for `success / error / reject / cancel`
- tool-result badges and summaries are resolved from presentation metadata instead of inline ad-hoc branches
- Quality criteria:
- result cards read as stable UX language, not raw execution logs
- failed and rejected tool runs are visually distinct without increasing noise
### Track 4. Plan Approval Transcript-Only Flow
- `claw-code` references:
- `src/components/messages/PlanApprovalMessage.tsx`
- `src/components/messages/UserPlanMessage.tsx`
- AX apply targets:
- `src/AxCopilot/Views/ChatWindow.xaml.cs`
- `src/AxCopilot/Views/PlanViewerWindow.cs`
- Completion criteria:
- default approval / reject / revise flow completes inline in transcript
- `PlanViewerWindow` is detail-only and never required for primary approval flow
- Quality criteria:
- planning feels like part of the conversation, not a modal interruption
- approval history is replayable from persisted conversation state
### Track 5. Runtime Summary Layer
- `claw-code` references:
- `src/components/StatusLine.tsx`
- `src/components/PromptInput/PromptInputFooter.tsx`
- `src/bootstrap/state.ts`
- AX apply targets:
- `src/AxCopilot/Services/AppStateService.cs`
- `src/AxCopilot/Views/ChatWindow.xaml.cs`
- Completion criteria:
- one runtime/status summary model feeds the status line, queue summary, runtime badge, and completion hint
- status rendering no longer depends on scattered imperative refresh branches
- Quality criteria:
- no contradictory or stale runtime badges
- long-running Cowork/Code sessions stay visually calm
### Track 6. Regression Prompt Ritual
- `claw-code` references:
- runtime validation scenarios implied by `sessionRunner`, `Messages`, `StatusLine`, and permission components
- AX apply targets:
- `docs/AX_AGENT_REGRESSION_PROMPTS.md`
- `docs/claw-code-parity-plan.md`
- developer workflow / release checklist
- Completion criteria:
- Chat / Cowork / Code prompt set is treated as mandatory regression for runtime-affecting changes
- each prompt is mapped to a failure class (`blank reply`, `duplicate banner`, `bad approval flow`, `queue drift`, `restore drift`)
- Quality criteria:
- parity claims are based on repeatable checks instead of visual spot-checks
- regressions are easier to catch before release
## Recommended Execution Order
1. Transcript renderer decomposition
2. Permission presentation catalog
3. Tool result taxonomy
4. Plan approval transcript-only flow
5. Runtime summary layer
6. Regression prompt ritual hardening
## Settings and Logic Review
- Updated: 2026-04-06 00:22 (KST)
- Candidate to move to developer-only:
- `FreeTierDelaySeconds`
- `MaxAgentIterations`
- `MaxRetryOnError`
- Keep as runtime-critical user settings:
- `OperationMode`
- `MaxContextTokens`
- `ContextCompactTriggerPercent`
- `EnableProactiveContextCompact`
- `EnableCoworkVerification`
- `EnableCodeVerification`
- code tool exposure toggles
- Rule:
- if a setting changes the main execution route or recovery semantics without representing a stable real-world user choice, move it out of default user-facing surfaces
- 목표는 “본문 우선 + 필요 시 열기” 기준으로 더 단일한 timeline 언어로 수렴시키는 것입니다.
3. Status line / composer parity
- `claw-code` reference: `src/components/StatusLine.tsx`, `src/components/PromptInput/PromptInput.tsx`
- AX gap:
- 하단 상태바와 composer 옵션은 많이 줄었지만, 상태 메타가 여전히 분산돼 있고 일부 토글/빠른 설정이 별도 행으로 남아 있습니다.
- 목표는 transcript 하단의 작업 바 한 축으로 더 압축하는 것입니다.
4. Runtime event density parity
- `claw-code` reference: `src/bridge/sessionRunner.ts`, `src/components/StatusNotices.tsx`
- AX gap:
- non-debug 기본 로그는 줄었지만, 일부 Cowork/Code 이벤트는 여전히 timeline을 자주 흔듭니다.
- 목표는 `permission / tool / error / complete / paused / resumed`를 더 안정된 event shape로 정규화하는 것입니다.
## Settings Review
- Remove candidate:
- `PlanMode`
- current state: 사용자 노출 UI와 저장 경로는 `off` 고정으로 정리됐지만 `AppSettings`, `SettingsViewModel`, `AppStateService` 타입 잔재가 남아 있음
- rationale: 현재 정책이 `off` 고정이라 사용자 선택값이 엔진에 의미 있게 기여하지 않음
- `Code.EnablePlanModeTools`
- current state: UI/저장 경로와 기본값은 `false` 고정으로 정리됐지만 모델/설정 타입에 호환용 잔재가 남아 있음
- rationale: 현재 엔진 정책에서 실제 실행 경로를 더 이상 바꾸지 않음
- Move to developer-only candidate:
- `FreeTierDelaySeconds`
- rationale: 일반 사용자가 조정할 이유가 적고 엔진 지연 정책에 직접 영향
- `MaxAgentIterations`
- `MaxRetryOnError`
- rationale: 핵심 실행 루프 품질에 직접 영향하는 런타임 튜닝값
- Keep as runtime-critical:
- `OperationMode`
- `MaxContextTokens`
- `ContextCompactTriggerPercent`
- `EnableProactiveContextCompact`
- `EnableCoworkVerification`
- `EnableCodeVerification`
- `Code.EnableWorktreeTools / EnableTeamTools / EnableCronTools`
## Known UX / Performance Risks
- Topic preset hover flicker was caused by duplicate hover systems:
- custom hover label
- default WPF `ToolTip`
- AX fix:
- remove default `ToolTip` from topic cards and keep a single hover label path
- Remaining runtime performance review targets:
- `RefreshContextUsageVisual()` frequency
- `BuildTopicButtons()` rebuild frequency
- `OnAgentEvent` timeline churn during long Cowork/Code runs
- compact queue summary still needs one more pass to fully match `claw-code` footer minimalism
## Progress Notes
- 업데이트: 2026-04-06 00:58 (KST)
- transcript renderer 분리 1차 완료
- AX 적용: [ChatWindow.InlineInteractions.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.InlineInteractions.cs), [ChatWindow.TaskSummary.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.TaskSummary.cs)
- 완료 조건: `plan / ask / task-summary` 렌더 helper가 메인 `ChatWindow.xaml.cs` 밖으로 이동
- permission / tool-result presentation catalog 도입
- AX 적용: [PermissionRequestPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs), [ToolResultPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ToolResultPresentationCatalog.cs)
- 완료 조건: `AddAgentEventBanner(...)`가 권한/도구 결과 badge 메타를 inline switch가 아니라 catalog에서 해석
- runtime summary 전용 계층 1차 반영
- AX 적용: [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs)
- 완료 조건: 상태선 UI가 `OperationalStatusPresentationState`를 소비해 strip/runtime badge visibility를 계산

View File

@@ -1,244 +0,0 @@
const fs = require("fs");
const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
Header, Footer, AlignmentType, LevelFormat, HeadingLevel,
BorderStyle, WidthType, ShadingType, PageNumber, PageBreak,
TabStopType, TabStopPosition } = require("docx");
const border = { style: BorderStyle.SINGLE, size: 1, color: "D0D0D0" };
const borders = { top: border, bottom: border, left: border, right: border };
const cellMargins = { top: 80, bottom: 80, left: 120, right: 120 };
function h1(text) {
return new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun(text)] });
}
function h2(text) {
return new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(text)] });
}
function h3(text) {
return new Paragraph({ heading: HeadingLevel.HEADING_3, children: [new TextRun(text)] });
}
function p(text, opts = {}) {
return new Paragraph({ spacing: { after: 120 }, children: [new TextRun({ text, ...opts })] });
}
function bold(text) {
return new TextRun({ text, bold: true });
}
function para(...runs) {
return new Paragraph({ spacing: { after: 120 }, children: runs });
}
function bullet(text, ref = "bullets") {
return new Paragraph({ numbering: { reference: ref, level: 0 }, spacing: { after: 60 },
children: [new TextRun(text)] });
}
function bulletBold(label, desc) {
return new Paragraph({ numbering: { reference: "bullets", level: 0 }, spacing: { after: 60 },
children: [new TextRun({ text: label, bold: true }), new TextRun(` ${desc}`)] });
}
function featureTable(rows) {
const colW = [1800, 2400, 5160];
return new Table({
width: { size: 9360, type: WidthType.DXA },
columnWidths: colW,
rows: [
new TableRow({ children: ["Category", "Prefix", "Description"].map((t, i) =>
new TableCell({ borders, width: { size: colW[i], type: WidthType.DXA }, margins: cellMargins,
shading: { fill: "2E3A8C", type: ShadingType.CLEAR },
children: [new Paragraph({ children: [new TextRun({ text: t, bold: true, color: "FFFFFF", font: "Malgun Gothic", size: 20 })] })] }))
}),
...rows.map(([cat, prefix, desc]) =>
new TableRow({ children: [cat, prefix, desc].map((t, i) =>
new TableCell({ borders, width: { size: colW[i], type: WidthType.DXA }, margins: cellMargins,
children: [new Paragraph({ children: [new TextRun({ text: t, font: "Malgun Gothic", size: 20, ...(i === 1 ? { font: "Consolas" } : {}) })] })] }))
})
)
]
});
}
const doc = new Document({
styles: {
default: { document: { run: { font: "Malgun Gothic", size: 22 } } },
paragraphStyles: [
{ id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 36, bold: true, font: "Malgun Gothic", color: "1A1B2E" },
paragraph: { spacing: { before: 360, after: 200 }, outlineLevel: 0 } },
{ id: "Heading2", name: "Heading 2", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 28, bold: true, font: "Malgun Gothic", color: "2E3A8C" },
paragraph: { spacing: { before: 280, after: 160 }, outlineLevel: 1 } },
{ id: "Heading3", name: "Heading 3", basedOn: "Normal", next: "Normal", quickFormat: true,
run: { size: 24, bold: true, font: "Malgun Gothic", color: "4B5EFC" },
paragraph: { spacing: { before: 200, after: 120 }, outlineLevel: 2 } },
]
},
numbering: {
config: [
{ reference: "bullets",
levels: [{ level: 0, format: LevelFormat.BULLET, text: "\u2022", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
{ reference: "numbers",
levels: [{ level: 0, format: LevelFormat.DECIMAL, text: "%1.", alignment: AlignmentType.LEFT,
style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
]
},
sections: [{
properties: {
page: {
size: { width: 11906, height: 16838 },
margin: { top: 1440, right: 1260, bottom: 1440, left: 1260 }
}
},
headers: {
default: new Header({ children: [
new Paragraph({ children: [
new TextRun({ text: "AX Commander \u2014 Blog Post", font: "Malgun Gothic", size: 16, color: "999999" })
], alignment: AlignmentType.RIGHT })
]})
},
footers: {
default: new Footer({ children: [
new Paragraph({ alignment: AlignmentType.CENTER, children: [
new TextRun({ text: "Page ", font: "Malgun Gothic", size: 16, color: "999999" }),
new TextRun({ children: [PageNumber.CURRENT], font: "Malgun Gothic", size: 16, color: "999999" })
]})
]})
},
children: [
// ?€?€?€ ?€?댄? ?€?€?€
new Paragraph({ spacing: { after: 80 }, alignment: AlignmentType.CENTER, children: [
new TextRun({ text: "AX Commander", font: "Malgun Gothic", size: 48, bold: true, color: "1A1B2E" })
]}),
new Paragraph({ spacing: { after: 40 }, alignment: AlignmentType.CENTER,
border: { bottom: { style: BorderStyle.SINGLE, size: 6, color: "4B5EFC", space: 8 } },
children: [
new TextRun({ text: "\ud0a4\ubcf4\ub4dc \ud558\ub098\ub85c \ubaa8\ub4e0 \uc5c5\ubb34\ub97c \uc81c\uc5b4\ud558\ub294 \uc0ac\ub0b4 \uc804\uc6a9 \ub7f0\ucc98", font: "Malgun Gothic", size: 26, color: "555577" })
]}),
new Paragraph({ spacing: { after: 300 }, alignment: AlignmentType.CENTER, children: [
new TextRun({ text: "\ubc31\uc2b9\uc7ac \u00b7 AX\uc5f0\uad6c\uc18c AI\ud300 \u00b7 SW Architect", font: "Malgun Gothic", size: 20, color: "888899" })
]}),
// ?€?€?€ 1. ?쒕Ц ?€?€?€
h1("1. \uc65c \ub9cc\ub4e4\uc5c8\ub294\uac00"),
p("\uc5c5\ubb34 \uc911 \uac00\uc7a5 \ub9ce\uc774 \ubc18\ubcf5\ud558\ub294 \ub3d9\uc791\uc774 \ubb50\ub0d0\uace0 \ubb3c\uc73c\uba74, \ub300\ubd80\ubd84\uc758 \uc0ac\ubb34\uc9c1 \uc9c1\uc6d0\uc774 \uc774\ub807\uac8c \ub300\ub2f5\ud569\ub2c8\ub2e4:"),
bullet("\uc571\uc744 \ucc3e\uc544\uc11c \uc2e4\ud589\ud558\uae30"),
bullet("\ud30c\uc77c\uc744 \ucc3e\uc544\uc11c \uc5f4\uae30"),
bullet("\ud074\ub9bd\ubcf4\ub4dc\uc5d0\uc11c \ubcf5\uc0ac\ud55c \ub0b4\uc6a9 \ub2e4\uc2dc \ucc3e\uae30"),
bullet("\uacc4\uc0b0\uae30 \uc5f4\uace0 \uac04\ub2e8\ud55c \uacc4\uc0b0\ud558\uae30"),
p("\uc774 \ubaa8\ub4e0 \ub3d9\uc791\uc5d0 \ub9c8\uc6b0\uc2a4\ub97c \ub4e4\uace0, \ud0d0\uc0c9\uae30\ub97c \uc5f4\uace0, \ud074\ub9ad\ud558\uace0\u2026 \ud0a4\ubcf4\ub4dc\uc5d0\uc11c \uc190\uc744 \ub5bc \uc218\uac00 \uc5c6\uc2b5\ub2c8\ub2e4."),
para(bold("AX Commander"), new TextRun("\ub294 \uc774 \ubb38\uc81c\ub97c \ud574\uacb0\ud569\ub2c8\ub2e4. Alt+Space \ud55c \ubc88\uc73c\ub85c \ubaa8\ub4e0 \uac83\uc744 \ud0a4\ubcf4\ub4dc\ub85c \uc81c\uc5b4\ud560 \uc218 \uc788\ub294 \ub7f0\ucc98\uc785\ub2c8\ub2e4.")),
p("\ud2b9\ud788 \uc774 \ud504\ub85c\uc81d\ud2b8\ub294 LLM(Sigmoid)\uacfc \ud568\uaed8 \uae30\ud68d\ubd80\ud130 \uad6c\ud604\uae4c\uc9c0 \uc9c4\ud589\ud55c \uc0ac\ub840\ub85c, AI\uc640 \ud611\uc5c5\ud558\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc758 \uc2e4\uc81c \uacbd\ud5d8\uc744 \ub2f4\uace0 \uc788\uc2b5\ub2c8\ub2e4."),
new Paragraph({ children: [new PageBreak()] }),
// ?€?€?€ 2. AX Commander?€? ?€?€?€
h1("2. AX Commander\ub780?"),
para(new TextRun({ text: "Alt+Space", bold: true, font: "Consolas" }), new TextRun("\ub97c \ub204\ub974\uba74 \ud654\uba74 \uc0c1\ub2e8\uc5d0 \uae54\ub054\ud55c \ub7f0\ucc98 \ucc3d\uc774 \ub098\ud0c0\ub0a9\ub2c8\ub2e4. \uc5ec\uae30\uc5d0 \uc6d0\ud558\ub294 \uba85\ub839\uc744 \uc785\ub825\ud558\uba74 \ub429\ub2c8\ub2e4.")),
bullet("\uc571 \uc774\ub984\uc744 \uce58\uba74 \uc571\uc774 \uc2e4\ud589\ub429\ub2c8\ub2e4"),
bullet("= \ub97c \uce58\uba74 \uacc4\uc0b0\uae30\uac00 \ub429\ub2c8\ub2e4"),
bullet("# \uc744 \uce58\uba74 \ud074\ub9bd\ubcf4\ub4dc \ud788\uc2a4\ud1a0\ub9ac\uac00 \ub098\ud0c0\ub0a9\ub2c8\ub2e4"),
bullet("cap screen \uc744 \uce58\uba74 \ud654\uba74\uc774 \ucea1\ucc98\ub429\ub2c8\ub2e4"),
bullet("win chrome \uc744 \uce58\uba74 \ud06c\ub86c \ucc3d\uc73c\ub85c \uc989\uc2dc \uc804\ud658\ub429\ub2c8\ub2e4"),
p("\ud504\ub9ac\ud53d\uc2a4(\uc811\ub450\uc5b4) \uae30\ubc18\uc73c\ub85c 40\uac1c \uc774\uc0c1\uc758 \uba85\ub839\uc5b4\ub97c \uc9c0\uc6d0\ud558\uba70, \ud55c\uad6d\uc5b4 \ucd08\uc131 \uac80\uc0c9\ub3c4 \ub429\ub2c8\ub2e4 (\u3145\u3137 \u2192 \uc124\uc815)."),
// ?€?€?€ 3. ?듭떖 湲곕뒫 ?€?€?€
h1("3. \ud575\uc2ec \uae30\ub2a5 \uc18c\uac1c"),
p("AX Commander\ub294 \ub2e8\uc21c\ud55c \uc571 \ub7f0\ucc98\uac00 \uc544\ub2d9\ub2c8\ub2e4. \uc544\ub798\ub294 \uce74\ud14c\uace0\ub9ac\ubcc4 \uc8fc\uc694 \uae30\ub2a5\uc785\ub2c8\ub2e4."),
h3("\uac80\uc0c9"),
bullet("\ud37c\uc9c0 \uac80\uc0c9: \uc571/\ud30c\uc77c\uba85\uc744 \uc77c\ubd80\ub9cc \uc785\ub825\ud574\ub3c4 \ucc3e\uc544\uc90c"),
bullet("\ud55c\uad6d\uc5b4 \ucd08\uc131: \u3147\u314e\u3134 \u2192 \uc544\ud55c\uae00 \uac80\uc0c9"),
bullet("\uc2e4\ud589 \ube48\ub3c4 \ud559\uc2b5: \uc790\uc8fc \uc4f0\ub294 \uc571\uc774 \uc0c1\ub2e8\uc73c\ub85c"),
h3("\uacc4\uc0b0 \u00b7 \ubcc0\ud658"),
bullet("= sqrt(144), = 0xFF + 1, = 100km in miles"),
bullet("= 100 USD to KRW (\uc2e4\uc2dc\uac04 \ud658\uc728)"),
bullet("date +30d (30\uc77c \ud6c4 \ub0a0\uc9dc), date unix (\ud0c0\uc784\uc2a4\ud0ec\ud504)"),
h3("\ud074\ub9bd\ubcf4\ub4dc"),
bullet("# \ud788\uc2a4\ud1a0\ub9ac: \ubcf5\uc0ac \uc774\ub825 \uac80\uc0c9 \u00b7 \uc7ac\uc0ac\uc6a9 \u00b7 \ubcd1\ud569"),
bullet("$ \ubcc0\ud658: JSON \uc815\ub82c, Base64, URL \uc778\ucf54\ub529 \ub4f1 12\uc885"),
bullet("pipe \ud30c\uc774\ud504\ub77c\uc778: pipe upper > trim > b64e"),
bullet("batch \uc77c\uad04 \ucc98\ub9ac: \uc904\ubc88\ud638, \uc815\ub82c, \uc911\ubcf5\uc81c\uac70, \ucebc\ub2f8\uc138 \uac10\uc2f8\uae30"),
bullet("DPAPI \uc554\ud638\ud654: \ud074\ub9bd\ubcf4\ub4dc \ud788\uc2a4\ud1a0\ub9ac \ud30c\uc77c\uc774 \ud604\uc7ac Windows \uacc4\uc815\uc5d0\uc11c\ub9cc \ubcf5\ud638\ud654 \uac00\ub2a5"),
h3("\uac1c\ubc1c\uc790 \ub3c4\uad6c"),
bullet("json format / minify / validate"),
bullet("encode base64 / url / sha256"),
bullet("color #FF5500 \u2192 HEX/RGB/HSL/HSV 4\uc885 \ubcc0\ud658"),
bullet("port 3000 \u2192 \uc810\uc720 \ud504\ub85c\uc138\uc2a4 \ud655\uc778"),
bullet("env PATH \u2192 \ud658\uacbd\ubcc0\uc218 \uac80\uc0c9"),
bullet("pick \u2192 \uc2a4\ud3ec\uc774\ub4dc\ub85c \ud654\uba74 \uc0c9\uc0c1 HEX \ucf54\ub4dc \ucd94\ucd9c"),
h3("\ud654\uba74 \ucea1\ucc98"),
bullet("cap screen / window / scroll / region"),
bullet("\uc2a4\ud3ec\uc774\ub4dc(pick): \ub3cb\ubcf4\uae30 + \uc2e4\uc2dc\uac04 HEX \ud45c\uc2dc + 5\ucd08 \uacb0\uacfc\ucc3d"),
bullet("\uae00\ub85c\ubc8c \ub2e8\ucd95\ud0a4(PrintScreen \ub4f1) \uc9c0\uc6d0"),
bullet("\ubcf4\uc548: \ud074\ub9bd\ubcf4\ub4dc\uc5d0\ub9cc \ubcf5\uc0ac (\ud30c\uc77c \uc800\uc7a5 \uae30\ub2a5 \uc5c6\uc74c)"),
h3("\ucc3d \uad00\ub9ac \u00b7 \uc2dc\uc2a4\ud15c"),
bullet("! save/restore: \ucc3d \ubc30\uce58 \uc2a4\ub0c5\uc0f7"),
bullet("snap left/right/full: \ucc3d \ubd84\ud560 \ub808\uc774\uc544\uc6c3"),
bullet("win: \uc5f4\ub9b0 \ucc3d \uac80\uc0c9 \u2192 \uc989\uc2dc \uc804\ud658 (Alt+Tab \ub300\uccb4)"),
bullet("/lock, /timer 5m, /alarm 14:30"),
bullet("svc: Windows \uc11c\ube44\uc2a4 \uad00\ub9ac + \ud074\ub9bd\ubcf4\ub4dc \uac15\uc81c \uc7ac\uc2dc\uc791"),
h3("\uc5c5\ubb34 \uc790\ub3d9\ud654"),
bullet("journal: \uc624\ub298 \uc0ac\uc6a9\ud55c \uc571/\uba85\ub839\uc5b4 \uae30\ubc18 \uc5c5\ubb34 \uc77c\uc9c0 \ub9c8\ud06c\ub2e4\uc6b4 \uc790\ub3d9 \uc0dd\uc131"),
bullet("routine: \ucd9c\uadfc/\ud1f4\uadfc \ub8e8\ud2f4 \ub4f1\ub85d \u2192 \ud55c \ubc88\uc5d0 \uc2e4\ud589"),
bullet("scaffold: \ud504\ub85c\uc81d\ud2b8 \ud3f4\ub354 \uad6c\uc870 \ud15c\ud50c\ub9bf \uc77c\uad04 \uc0dd\uc131"),
new Paragraph({ children: [new PageBreak()] }),
// ?€?€?€ 4. 蹂댁븞 ?€?€?€
h1("4. \ubcf4\uc548 \u2014 \uc0ac\ub0b4 \uc804\uc6a9 \uc6d0\uce59"),
p("AX Commander\ub294 \uc0ac\ub0b4 \uc804\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc73c\ub85c, \uc678\ubd80 \ub124\ud2b8\uc6cc\ud06c \ud1b5\uc2e0\uc744 \uc77c\uccb4 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4."),
bullet("\uc678\ubd80 HTTP/HTTPS \ud638\ucd9c \uae08\uc9c0 \u2014 HttpClient, WebClient \ub4f1 \uc0ac\uc6a9 \ubd88\uac00"),
bullet("\uc678\ubd80 SDK \uc5f0\ub3d9 \uae08\uc9c0 \u2014 \ud074\ub77c\uc6b0\ub4dc AI, SaaS \ub77c\uc774\ube0c\ub7ec\ub9ac \ubd88\uac00"),
bullet("\ud074\ub9bd\ubcf4\ub4dc \ud788\uc2a4\ud1a0\ub9ac \u2014 Windows DPAPI \uc554\ud638\ud654 (CurrentUser \ubc94\uc704)"),
bullet("\ud654\uba74 \ucea1\ucc98 \u2014 \ud074\ub9bd\ubcf4\ub4dc\uc5d0\ub9cc \ubcf5\uc0ac, \ud30c\uc77c \uc800\uc7a5 \uae30\ub2a5 \uc644\uc804 \uc81c\uac70"),
bullet("\uc2dc\uc2a4\ud15c \uba85\ub839 \u2014 \uc7ac\uc2dc\uc791/\uc885\ub8cc \ub4f1 \uc704\ud5d8 \uba85\ub839 \uc2e4\ud589 \uc804 2\ub2e8\uacc4 \ud655\uc778 \ub2e4\uc774\uc5bc\ub85c\uadf8"),
// ?€?€?€ 5. ?뚮쭏 ?€?€?€
h1("5. \ud14c\ub9c8 \uc2dc\uc2a4\ud15c"),
p("9\uac1c \ub0b4\uc7a5 \ud14c\ub9c8(Dark, Light, OLED, Nord, Monokai, Catppuccin, Sepia, Alfred, Alfred Light) + \ucee4\uc2a4\ud140 \ud14c\ub9c8\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4."),
bullet("\uac01 \ud14c\ub9c8\ub294 \uc0c9\uc0c1\ubfd0 \uc544\ub2c8\ub77c \ubaa8\uc11c\ub9ac \ub77c\uc6b4\ub529 \ube44\uc728\ub3c4 \ub2e4\ub985\ub2c8\ub2e4 (OLED\uac00 \uac00\uc7a5 \ub465\uae00\uace0, Monokai\uac00 \uac00\uc7a5 \uac01\uc9d0)"),
bullet("\ucee4\uc2a4\ud140 \ud14c\ub9c8\ub294 14\uac1c \uc0c9\uc0c1 + \ubaa8\uc11c\ub9ac \ub77c\uc6b4\ub529 \uc2ac\ub77c\uc774\ub354\ub85c \uc790\uc720\ub86d\uac8c \ud3b8\uc9d1"),
bullet("\ud2b8\ub808\uc774 \uba54\ub274\ub3c4 \ud604\uc7ac \ud14c\ub9c8\ub97c \uc790\ub3d9\uc73c\ub85c \ub530\ub77c\uac10"),
// ?€?€?€ 6. 湲곗닠 ?ㅽ깮 ?€?€?€
h1("6. \uae30\uc220 \uc2a4\ud0dd"),
bullet(".NET 8, WPF (UseWPF=true), WinForms (ColorDialog/FolderBrowser \ub4f1 \uc81c\ud55c\uc801 \uc0ac\uc6a9)"),
bullet("P/Invoke: SetWindowPos, PrintWindow, GlobalMemoryStatusEx, EnumWindows, GetPixel \ub4f1 Windows API \uc9c1\uc811 \ud638\ucd9c"),
bullet("\ub2e8\uc77c EXE \ubc30\ud3ec: Self-Contained + PublishSingleFile + IncludeNativeLibrariesForSelfExtract"),
bullet("\ubcf4\uc548: DPAPI(System.Security.Cryptography.ProtectedData), HKCU \ub808\uc9c0\uc2a4\ud2b8\ub9ac"),
bullet("\ud14c\uc2a4\ud2b8: xUnit 2.9.0 + FluentAssertions (57\uac1c \ub2e8\uc704 \ud14c\uc2a4\ud2b8)"),
// ?€?€?€ 7. 留덈Т由??€?€?€
h1("7. \ub9c8\ubb34\ub9ac \u2014 LLM\uacfc \ud568\uaed8 \ub9cc\ub4e0 \ud504\ub85c\uc81d\ud2b8"),
p("AX Commander\ub294 \uae30\ud68d\ubd80\ud130 \uad6c\ud604, \ud14c\uc2a4\ud2b8, \ubb38\uc11c\ud654\uae4c\uc9c0 LLM(Sigmoid)\uacfc \ud568\uaed8 \uc9c4\ud589\ud55c \ud504\ub85c\uc81d\ud2b8\uc785\ub2c8\ub2e4."),
bullet("\uae30\ud68d: Alfred, Raycast \ub4f1 \uae30\uc874 \ub7f0\ucc98\uc758 \uc7a5\uc810\uc744 \ubd84\uc11d\ud558\uace0, \uc0ac\ub0b4 \ud658\uacbd\uc5d0 \ub9de\ub294 \uae30\ub2a5 \uc120\ubcc4"),
bullet("\uad6c\ud604: WPF + P/Invoke \uae30\ubc18\uc73c\ub85c \uc678\ubd80 \uc758\uc874\uc131 \uc5c6\uc774 40\uac1c+ \uae30\ub2a5 \uad6c\ud604"),
bullet("\uac80\uc218: \ucf54\ub4dc \ub9ac\ubdf0, \uc624\ub958 \ubd84\uc11d, \ubcf4\uc548 \uc810\uac80, \uc131\ub2a5 \ucd5c\uc801\ud654\ub97c LLM\uacfc \ud568\uaed8 \ubc18\ubcf5"),
bullet("\ubb38\uc11c: \uac1c\ubc1c \ubb38\uc11c, \uc0ac\uc6a9\uc790 \ub9e4\ub274\uc5bc, \ube14\ub85c\uadf8 \uae00\uae4c\uc9c0 LLM\uc774 \uc791\uc131"),
p(""),
para(new TextRun({ text: "\uac1c\uc778\uc801\uc73c\ub85c \ub290\ub080 \uac83\uc740, LLM\uc740 \u2018\ucf54\ub4dc \uc0dd\uc131\uae30\u2019\uac00 \uc544\ub2c8\ub77c \u2018\ud568\uaed8 \uc0dd\uac01\ud558\ub294 \ub3d9\ub8cc\u2019\uc5d0 \uac00\uae5d\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.", italics: true })),
para(new TextRun({ text: "\u201c\uc774 \uae30\ub2a5\uc740 \uc774\ub807\uac8c \ud558\uba74 \uc5b4\ub5a0\ub0d0?\u201d \u201c\uc774 \ubd80\ubd84\uc740 \ubcf4\uc548 \ub9ac\uc2a4\ud06c\uac00 \uc788\uc5b4\u201d \u201c\uc0ac\uc6a9\uc790\uac00 \uc774\ub807\uac8c \uc4f0\uba74 \ubb38\uc81c\ub420 \uc218 \uc788\uc5b4\u201d \u2014 \uc774\ub7f0 \ud53c\ub4dc\ubc31\uc744 \uc8fc\uace0\ubc1b\uc73c\uba70 \ud504\ub85c\uc81d\ud2b8\ub97c \uc644\uc131\ud588\uc2b5\ub2c8\ub2e4.", italics: true })),
p(""),
p("AX Commander v1.0 \u2014 \ubaa8\ub4e0 \uc5c5\ubb34\ub97c \ud0a4\ubcf4\ub4dc \ud558\ub098\ub85c.", { bold: true }),
new Paragraph({ spacing: { before: 400 },
border: { top: { style: BorderStyle.SINGLE, size: 2, color: "CCCCCC", space: 8 } },
children: [
new TextRun({ text: "\ubc31\uc2b9\uc7ac \u00b7 AX\uc5f0\uad6c\uc18c AI\ud300 \u00b7 SW Architect \u00b7 www.swarchitect.net", size: 18, color: "999999" })
]
}),
]
}]
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync("E:\\AX Commander\\docs\\AX_Commander_釉붾줈洹??뚭컻湲€.docx", buffer);
console.log("Blog post DOCX created successfully!");
});

View File

@@ -0,0 +1,128 @@
using AxCopilot.Models;
using AxCopilot.Services;
namespace AxCopilot.Services.Agent;
/// <summary>
/// AX Agent execution-prep engine.
/// Inspired by the `claw-code` split between input preparation and session execution,
/// so the UI layer stops owning message assembly and final assistant commit logic.
/// </summary>
public sealed class AxAgentExecutionEngine
{
public sealed record PreparedTurn(List<ChatMessage> Messages);
public sealed record ExecutionMode(bool UseAgentLoop, bool UseStreamingTransport, string? TaskSystemPrompt);
public IReadOnlyList<string> BuildPromptStack(
string? conversationSystem,
string? slashSystem,
string? taskSystem = null)
{
var prompts = new List<string>();
if (!string.IsNullOrWhiteSpace(conversationSystem))
prompts.Add(conversationSystem.Trim());
if (!string.IsNullOrWhiteSpace(slashSystem))
prompts.Add(slashSystem.Trim());
if (!string.IsNullOrWhiteSpace(taskSystem))
prompts.Add(taskSystem.Trim());
return prompts;
}
public ExecutionMode ResolveExecutionMode(
string runTab,
bool streamingEnabled,
string resolvedService,
string? coworkSystemPrompt,
string? codeSystemPrompt)
{
if (string.Equals(runTab, "Cowork", StringComparison.OrdinalIgnoreCase))
return new ExecutionMode(true, false, coworkSystemPrompt);
if (string.Equals(runTab, "Code", StringComparison.OrdinalIgnoreCase))
return new ExecutionMode(true, false, codeSystemPrompt);
return new ExecutionMode(false, false, null);
}
public PreparedTurn PrepareTurn(
ChatConversation conversation,
IEnumerable<string?> systemPrompts,
string? fileContext = null,
IReadOnlyList<ImageAttachment>? images = null)
{
var outbound = conversation.Messages
.Select(CloneMessage)
.ToList();
if (!string.IsNullOrWhiteSpace(fileContext))
{
var lastUserIndex = outbound.FindLastIndex(m => string.Equals(m.Role, "user", StringComparison.OrdinalIgnoreCase));
if (lastUserIndex >= 0)
outbound[lastUserIndex].Content = (outbound[lastUserIndex].Content ?? string.Empty) + fileContext;
}
if (images is { Count: > 0 })
{
var lastUserIndex = outbound.FindLastIndex(m => string.Equals(m.Role, "user", StringComparison.OrdinalIgnoreCase));
if (lastUserIndex >= 0)
outbound[lastUserIndex].Images = images.Select(CloneImage).ToList();
}
var promptList = systemPrompts
.Where(prompt => !string.IsNullOrWhiteSpace(prompt))
.Select(prompt => prompt!.Trim())
.ToList();
for (var i = promptList.Count - 1; i >= 0; i--)
outbound.Insert(0, new ChatMessage { Role = "system", Content = promptList[i] });
return new PreparedTurn(outbound);
}
public ChatMessage CommitAssistantMessage(
ChatSessionStateService? session,
ChatConversation conversation,
string tab,
string content,
ChatStorageService? storage = null)
{
var assistant = new ChatMessage
{
Role = "assistant",
Content = content,
};
if (session != null)
{
session.AppendMessage(tab, assistant, storage);
return assistant;
}
conversation.Messages.Add(assistant);
conversation.UpdatedAt = DateTime.Now;
return assistant;
}
private static ChatMessage CloneMessage(ChatMessage source)
{
return new ChatMessage
{
Role = source.Role,
Content = source.Content,
Timestamp = source.Timestamp,
MetaRunId = source.MetaRunId,
AttachedFiles = source.AttachedFiles?.ToList(),
Images = source.Images?.Select(CloneImage).ToList(),
};
}
private static ImageAttachment CloneImage(ImageAttachment source)
{
return new ImageAttachment
{
Base64 = source.Base64,
MimeType = source.MimeType,
FileName = source.FileName,
};
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 449 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,63 @@
$ErrorActionPreference = "Stop"
$repoRoot = Split-Path -Parent $PSScriptRoot
$chatWindow = Join-Path $repoRoot "src\AxCopilot\Views\ChatWindow.xaml.cs"
$clawQuickstart = Join-Path $repoRoot "claw-code\en\quickstart.md"
$outFile = Join-Path $repoRoot "docs\TOOL_PARITY_REPORT.md"
if (-not (Test-Path $chatWindow)) {
throw "ChatWindow.xaml.cs not found: $chatWindow"
}
$axSlash = Select-String -Path $chatWindow -Pattern '^\s*\["/[^"]+"\]\s*=' |
ForEach-Object {
if ($_.Line -match '^\s*\["(/[^"]+)"\]\s*=') { $Matches[1] }
} |
Where-Object { -not [string]::IsNullOrWhiteSpace($_) } |
Sort-Object -Unique
$clawSlash = @()
if (Test-Path $clawQuickstart) {
$clawSlash = Select-String -Path $clawQuickstart -Pattern '^\|\s*`/[^`]+`\s*\|' |
ForEach-Object {
if ($_.Line -match '`\s*(/[a-zA-Z0-9\-]+)\s*`') { $Matches[1] }
} |
Where-Object { $_.StartsWith("/") } |
Sort-Object -Unique
}
$axOnly = $axSlash | Where-Object { $clawSlash -notcontains $_ }
$common = $axSlash | Where-Object { $clawSlash -contains $_ }
$clawOnly = $clawSlash | Where-Object { $axSlash -notcontains $_ }
$lines = New-Object System.Collections.Generic.List[string]
$lines.Add("# Tool/Slash Parity Report")
$lines.Add("")
$lines.Add("Generated: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')")
$lines.Add("")
$lines.Add("## Summary")
$lines.Add("- AX slash count: $($axSlash.Count)")
$lines.Add("- claw-code slash count: $($clawSlash.Count)")
$lines.Add("- Common: $($common.Count)")
$lines.Add("- AX only: $($axOnly.Count)")
$lines.Add("- claw-code only: $($clawOnly.Count)")
$lines.Add("")
$lines.Add("## Common")
foreach ($s in $common) { $lines.Add("- $s") }
$lines.Add("")
$lines.Add("## AX Only")
foreach ($s in $axOnly) { $lines.Add("- $s") }
$lines.Add("")
$lines.Add("## claw-code Only")
foreach ($s in $clawOnly) { $lines.Add("- $s") }
$lines.Add("")
$lines.Add("## Notes")
$lines.Add("- claw-code source baseline: claw-code/en/quickstart.md")
$lines.Add("- AX source baseline: src/AxCopilot/Views/ChatWindow.xaml.cs")
Set-Content -Path $outFile -Value $lines -Encoding UTF8
Write-Output "Generated: $outFile"

View File

@@ -7,7 +7,7 @@
<Nullable>annotations</Nullable>
<AssemblyName>AxCopilot_Setup</AssemblyName>
<ApplicationIcon>..\AxCopilot\Assets\icon.ico</ApplicationIcon>
<Version>1.7.2</Version>
<Version>0.7.3</Version>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
@@ -23,3 +23,4 @@
</EmbeddedResource>
</ItemGroup>
</Project>

View File

@@ -15,7 +15,7 @@ namespace AxCopilot.Installer.Offline
public class SetupForm : Form
{
private const string AppName = "AX Copilot";
private const string AppVer = "1.7.2";
private const string AppVer = "0.7.3";
private const string Org = "AX\uC5F0\uAD6C\uC18C AI\uD300";
private const string RegUn = @"Software\Microsoft\Windows\CurrentVersion\Uninstall\AxCopilot";
private const string RegRun = @"Software\Microsoft\Windows\CurrentVersion\Run";
@@ -322,3 +322,4 @@ namespace AxCopilot.Installer.Offline
}
}
}

Some files were not shown because too many files have changed in this diff Show More