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개입니다.
- 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
변경 목적: 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개를 확인했습니다.
- 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
- 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)
- .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개
- 권한 팝업 핵심 영역에 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)
- AgentContext 권한 규칙 파서가 tool@pattern 외 tool|pattern, tool(pattern) 표기를 해석하도록 확장
- deny 우선순위 체인은 유지하면서 claw-code 계열 표기 차이로 인한 규칙 누락을 방지
- OperationModePolicyTests에 파이프/함수형 패턴 및 deny 우선 회귀 테스트 추가
- README/DEVELOPMENT에 2026-04-04 14:55(KST) 기준 이력 동기화
- 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건 통과
- PermissionModePresentationCatalog 신규 추가: 모드 라벨/설명/아이콘/색을 단일 소스로 관리
- ChatWindow 권한 팝업에서 하드코딩 튜플을 제거하고 카탈로그 기반 렌더링으로 전환
- 유지보수 관점에서 권한 표면 기준 변경 포인트를 1곳으로 축소
- README.md 업데이트 시각(2026-04-04 13:25 KST) 및 변경 이력 항목 갱신
- docs/DEVELOPMENT.md 연속 실행 27차 기록 추가
- 검증: dotnet build 경고 0/오류 0, slash+operation mode 필터 테스트 43건 통과
- 권한 명칭을 활용하지 않음/소극 활용/적극 활용/계획 중심/완전 자동/질문 없이 진행 체계로 통일
- 권한 팝업 선택 순서를 Deny 우선 순서로 재정렬하고 고급 분리를 줄여 단일 흐름으로 정리
- 하단 권한 라벨/상단 권한 배너/작업요약 권한 액션 버튼의 용어·색상·설명을 동일 체계로 맞춤
- Chat 탭 기본 권한 적용을 활용하지 않음으로 조정하여 보수적 기본 동작 강화
- /sandbox-toggle 및 AgentSettingsWindow 권한 순환 순서를 동일 체계로 통일
- 좌측 패널 모드 배지 헤더를 숨겨 탭별 핵심 선택 중심으로 UI 밀도 단순화
- 개발문서 업데이트: README.md, docs/DEVELOPMENT.md (2026-04-04 12:22 KST)
- 운영 모드 점검 근거 반영: OperationModePolicy/Readiness/LlmOperationMode 테스트 필터 18건 통과 기록
- /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 진행 기록/스냅샷 반영
- TaskRunService의 권한/도구/완료/오류 기본 요약 문자열에서 깨진 문자(인코딩 깨짐) 제거
- Permission/Hook/Tool 이벤트별 기본 타이틀·요약 문구를 일관된 표현으로 정리하여 replay/요약 가독성 개선
- StopRequested 기본 요약 문구가 잘못 치환되는 문제를 수정해 취소 흐름 의미를 복구
- AGENT_ROADMAP, NEXT_ROADMAP의 테스트 스냅샷을 최신 실측값(Parity 13/13, Replay 14/14, 전체 379/379)으로 동기화
- TaskRunService에 AgentEventType.Paused/Resumed 처리 로직을 추가해 런타임 상태(일시정지/재개)가 task store에 일관되게 반영되도록 개선
- TaskRunService에 AgentEventType.StopRequested 처리 로직을 추가해 실행 중단 요청 시 agent/tool/permission/hook 범주의 run-scoped 태스크가 cancel 상태로 정리되도록 보강
- replay 복원 경로에서 StopRequested를 terminal 이벤트로 인식하도록 확장하고, TryGetScopedId/IsTerminalExecutionEvent/RemoveRunScopedActiveTasks 연계를 통해 dangling active task가 남지 않도록 수정
- OperationModePolicyTests에 Deny 모드 경계 테스트를 추가(쓰기 차단 + 읽기 허용)하여 권한 4모드 정책의 기대 동작을 명시적으로 고정
- TaskRunServiceTests에 ReplayStability 시나리오 3건 추가: (1) Paused→Resumed 후 agent active 유지, (2) StopRequested 후 dangling task 정리, (3) live StopRequested 적용 시 pending 권한/에이전트 상태 정리
- AgentParityToolsTests에 core agentic loop 도구 등록 검증 추가(file_read/write/edit, glob/grep/process, git/build/test, spawn/wait, task/todo, checkpoint/diff/suggest/tool_search/skill_manager)
- 검증 수행: dotnet build AxCopilot.sln (경고 0 / 오류 0), 대상 테스트(OperationModePolicyTests/TaskRunServiceTests/AgentParityToolsTests) 통과, ReplayStability+ParityBenchmark 필터 테스트 통과
- PermissionModeCatalog를 AX 고유 모드 어휘(Ask/Plan/Auto/Deny)만 처리하도록 단순화
- 외부 제품 특화 별칭 문자열(default/acceptEdits/dontAsk/bypassPermissions) 제거
- 주석/설명도 AX-native 기준으로 정리
- 검증: dotnet build 경고0 오류0, dotnet test 374/374 통과
- 전역 권한이 Auto일 때 고위험 도구(process, spawn_agent, snippet_runner)는 자동 허용을 ask로 강등
- AgentContext 권한 계산 경로에 dangerous auto guard를 통합하여 우발적 무승인 실행 방지
- OperationModePolicyTests에 guard 동작 회귀 테스트 2건 추가
- 패리티 문서에 permissionSetup 기반 보강 항목 추가
- 로드맵/패리티 문서 테스트 수치 동기화: 374/374
- 검증: dotnet build 경고0 오류0, ParityBenchmark 12/12, ReplayStability 12/12, 전체 테스트 374/374
- 전역 권한 모드를 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 통과
- 도구 동등화: task/todo/tool-search + plan/worktree/team/cron 도구군 추가 및 ToolRegistry 등록\n- claw-code CamelCase 별칭 정규화 확장: EnterPlanMode/EnterWorktree/TeamCreate/CronCreate 등 -> 내부 snake_case 매핑\n- AgentLoop 런타임 강화: Code 탭 전용 도구 토글(CodeSettings) 반영, 비활성 도구 자동 차단\n- Worktree 상태 복원 연결: .ax/worktree_state.json 기반 루트 탐색/활성 worktree 복원 및 BuildContext 연동\n- 권한/플러그인 하드닝 기존 반영분 유지: target 기반 권한 판정 + internal 모드 플러그인 경로/manifest 검증\n- 설정 연동(UI): SettingsWindow Code 패널에 Plan/Worktree/Team/Cron 도구 on/off 토글 추가\n- 테스트 보강: AgentParityTools/AgentLoopE2E에 worktree 지속성, alias 정규화, 설정 차단 시나리오 추가\n- 검증 완료: dotnet build(경고0/오류0), ParityBenchmark 11/11, ReplayStability 12/12, 전체 371/371, release-gate 통과\n- 문서 동기화: AGENT_ROADMAP/NEXT_ROADMAP/CLAW_CODE_PARITY_PLAN 수치 및 기준 최신화