- 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
- 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
- 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
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개입니다.
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개입니다.
- 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
- 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
- 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)
- 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)
- 트레이 우클릭 메뉴 상단에 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개
- .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개
- 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
- 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
- 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
- InputBox_PreviewKeyDown에서 슬래시 네비게이션 키를 우선 처리
- TryHandleSlashNavigationKey로 창/입력창 키 경로 통합(Up/Down/Pg/Home/End/Tab/Enter/Esc)
- 가시 항목 0일 때 SlashScrollViewer 오프셋 fallback 추가
- README/DEVELOPMENT 이력(2026-04-04 16:18 KST) 동기화
- 권한 팝업 핵심 영역에 Deny(활용하지 않음) 포함, 고급은 DontAsk만 유지
- LoadConversationSettings가 대화 권한 미설정 시 탭 기본권한(Chat=Deny, Cowork/Code=DefaultAgentPermission) 즉시 적용
- PermissionModePresentationCatalog 한글 라벨/설명 문자열 정리
- README/DEVELOPMENT 이력(2026-04-04 15:52 KST) 동기화
- ChatSessionStateService.SaveCurrentConversation에 persistable-content 검사 추가
- 무의미한 빈 새 대화는 저장/탭 기억 대상에서 제외
- ChatWindow 대화 목록에서 빈 노이즈 항목 필터링
- ChatSessionStateServiceTests 회귀 추가 및 문서 이력(2026-04-04 15:48 KST) 동기화
- PermissionModeCatalog에 none/passive/active/planning/fullauto/silent 별칭 추가
- ChatWindow /permissions,/allowed-tools 액션 파서에 동일 별칭 반영
- PermissionModeCatalogTests 회귀 케이스 추가 및 빌드/테스트/문서 이력 동기화(2026-04-04 14:57 KST)
- ChatWindow 권한 팝업 섹션 헤더/본문 간격과 폰트를 축소해 카드 밀도를 정돈
- 권한 요약/예외/최근 거부 카드 및 빠른 액션 버튼의 패딩·폰트·마진을 압축
- 핵심 권한 모드 행(아이콘/제목/설명/체크) 크기를 줄여 slash 팝업과 시각 리듬 통일
- README.md, docs/DEVELOPMENT.md에 2026-04-04 14:16(KST) 기준 이력 반영
- 검증: dotnet build 0경고/0오류, 관련 필터 테스트 82건 통과
- 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건 통과
- ChatWindow slash 이동 경로를 RenderSlashPage 기반에서 선택 하이라이트 갱신 기반으로 전환
- 휠/방향키/Home/End 이동 시 UpdateSlashSelectionVisualState + EnsureSlashSelectionVisible 호출로 통일
- 항목 hover 시에도 동일 선택 상태 동기화 경로를 사용해 체감 일관성 개선
- README.md, docs/DEVELOPMENT.md에 2026-04-04 14:01(KST) 기준 이력 반영
- 검증: dotnet build 0경고/0오류, 관련 필터 테스트 84건 통과
- 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건 통과
- PermissionModePresentationCatalog 신규 추가: 모드 라벨/설명/아이콘/색을 단일 소스로 관리
- ChatWindow 권한 팝업에서 하드코딩 튜플을 제거하고 카탈로그 기반 렌더링으로 전환
- 유지보수 관점에서 권한 표면 기준 변경 포인트를 1곳으로 축소
- README.md 업데이트 시각(2026-04-04 13:25 KST) 및 변경 이력 항목 갱신
- docs/DEVELOPMENT.md 연속 실행 27차 기록 추가
- 검증: dotnet build 경고 0/오류 0, slash+operation mode 필터 테스트 43건 통과
- 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 업데이트 시각 및 변경 이력 항목을 최신 상태로 갱신
- 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건 통과
- 권한 상태 텍스트(/permissions,/allowed-tools)를 운영 모드 포함 축약형으로 재정리
- 하단 권한 버튼 툴팁에 운영 모드/기본값/예외 개수 정보를 일관 반영
- 탭 전환 시 좌측 메뉴 Visibility 재할당을 최소화해 UI 흔들림 완화
- 상단 모델 라벨에 MaxWidth+말줄임 적용으로 긴 모델명 레이아웃 깨짐 방지
- AX Agent 설정창 오픈 시 리소스 병합 예외를 방어하고 외부 진입 경로를 Dispatcher 기반으로 안정화
- UI 체크리스트/개발문서/README에 2026-04-04 12:41 기준 점검 이력 업데이트
- 검증: build 경고0/오류0, 운영모드 필터 18건 통과, 전체 테스트 436건 통과
- 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 정리 후 정상 재생성 확인
- 권한 명칭을 활용하지 않음/소극 활용/적극 활용/계획 중심/완전 자동/질문 없이 진행 체계로 통일
- 권한 팝업 선택 순서를 Deny 우선 순서로 재정렬하고 고급 분리를 줄여 단일 흐름으로 정리
- 하단 권한 라벨/상단 권한 배너/작업요약 권한 액션 버튼의 용어·색상·설명을 동일 체계로 맞춤
- Chat 탭 기본 권한 적용을 활용하지 않음으로 조정하여 보수적 기본 동작 강화
- /sandbox-toggle 및 AgentSettingsWindow 권한 순환 순서를 동일 체계로 통일
- 좌측 패널 모드 배지 헤더를 숨겨 탭별 핵심 선택 중심으로 UI 밀도 단순화
- 개발문서 업데이트: README.md, docs/DEVELOPMENT.md (2026-04-04 12:22 KST)
- 운영 모드 점검 근거 반영: OperationModePolicy/Readiness/LlmOperationMode 테스트 필터 18건 통과 기록
- 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 회귀 시나리오)
- /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 통과
- /chrome: 인자 없는 진단 모드와 실행 라우팅 분리, MCP 재연결 자동 재시도 경로 보강
- /mcp: status/enable/disable/reconnect 명령 정리 및 상태 라벨 표준화
- /settings, /permissions 하위 액션 명확화, /verify·/commit 로컬 실행 흐름 정리
- /commit files:path1,path2 :: message 형태의 부분 커밋 지원 추가
- GitTool commit 경로의 레거시 비활성 응답 제거로 정책 일관성 확보
- ChatWindowSlashPolicyTests 신규 추가 및 AgentParityToolsTests 회귀 방지 테스트 보강
- docs/DEVELOPMENT.md, docs/AGENT_ROADMAP.md에 2026-04-04 진행 기록/스냅샷 반영
- 전역 권한 모드를 Ask/Plan/Auto/Deny 4단계로 확장
- claw-code 계열 권한 값(default/acceptEdits/dontAsk/bypassPermissions) 입력 시 내부 모드로 정규화
- AgentContext 권한 판정 경로(전역/도구 오버라이드/패턴 오버라이드) 정규화 적용
- Chat/Settings UI에서 Plan 모드 노출 및 인라인 순환(Ask->Plan->Auto->Deny) 반영
- AppState/SettingsViewModel/SettingsService에 권한값 정규화 및 저장 시 일관성 적용
- Permission lifecycle 이벤트 메시지에 유효 모드 표기 보강
- 빌드/테스트 검증: dotnet build 경고0 오류0, dotnet test 372/372 통과
- ChatWindow.xaml에서 hover/selected/상태 배지/토스트/입력 칩/파일 미리보기 영역의 하드코딩 색상을 DynamicResource 기반으로 정리해 Codex/claude-code 지향 테마 일관성 강화
- 상단/하단 상태 배지와 데이터그리드 시각 요소를 PrimaryText/AccentColor/HintBackground/BorderColor로 통일해 라이트·다크 전환 시 가독성 확보
- ChatWindow.xaml.cs에서 ContextMenu/MenuItem 기반 구현 제거, 공통 커스텀 Popup 메뉴 빌더(CreateThemedPopupMenu/CreatePopupMenuItem)로 최근 폴더/메시지 우클릭 메뉴를 통합
- 기본 MessageBox.Show 사용 경로를 CustomMessageBox.Show로 교체하여 지침 준수(메시지 삭제/파일 삭제 확인)
- 검증: dotnet build 경고 0 오류 0, dotnet test(371/371 통과)