개발 문서를 AX 기준 계획 중심으로 정리하고 비교성 표현을 제거
- README와 DEVELOPMENT, 로드맵 문서에서 비교·모사 뉘앙스가 강한 문구를 AX 기준 설명으로 정리함 - 비교/패리티 성격의 문서를 AX Agent 구조 리뷰, 실행 개선 계획, 품질 계획, 런타임 품질 계획, 도구 커버리지 문서로 재구성함 - 회귀 프롬프트와 보조 개발 문서의 용어를 공통 핵심 명령과 운영 기준 중심으로 정리함 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_docs_cleanup\\ -p:IntermediateOutputPath=obj\\verify_docs_cleanup\\ (경고 0 / 오류 0)
This commit is contained in:
246
README.md
246
README.md
@@ -1,12 +1,14 @@
|
||||
# AX Commander
|
||||
# AX Commander
|
||||
|
||||
Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
|
||||
> Alfred (macOS)에서 영감을 받아 Windows 환경에 최적화된 키보드 중심 생산성 도구입니다.
|
||||
|
||||
개발 참고: Claw Code 동등성 작업 추적 문서
|
||||
`docs/claw-code-parity-plan.md`
|
||||
개발 참고: AX Agent 실행 개선 작업 추적 문서
|
||||
`docs/AX_AGENT_EXECUTION_IMPROVEMENT_PLAN.md`
|
||||
|
||||
- 업데이트: 2026-04-15 18:20 (KST)
|
||||
- 개발 문서와 로드맵에서 비교·모사 뉘앙스가 강한 문구를 정리하고, AX 기준의 실행 계획·검증 내용만 남도록 문서명과 설명을 정돈했습니다.
|
||||
- 업데이트: 2026-04-15 16:49 (KST)
|
||||
- 런처 `~` 워크스페이스 복원 경로를 검토하고, 여러 브라우저/앱 창이 있을 때 같은 `exe`의 첫 창 하나만 반복 재사용하던 매칭 문제를 수정했습니다. 기존 [ContextManager.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Core/ContextManager.cs)는 저장된 스냅샷마다 `exe`만 보고 첫 HWND를 잡아 여러 Chrome/Edge 창 배치가 쉽게 꼬일 수 있었습니다.
|
||||
- 이제 [ContextManager.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Core/ContextManager.cs)는 열린 창 후보를 수집한 뒤 `exe + 제목 유사도 + 이미 배정된 창 제외` 기준으로 복원 대상을 고릅니다. 이미 다른 스냅샷에 배정된 핸들은 다시 쓰지 않아, 같은 프로세스의 다중 창이 한 창으로 덮여 이동되던 문제를 줄였습니다.
|
||||
@@ -110,7 +112,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ArtifactQualityReviewServiceTests|DocxSkillTemplateFeaturesTests|ExcelSkillExecutiveSummaryLinkTests|DocumentAssemblerSemanticTests|DocumentPlannerBusinessDocumentTests|HtmlSkillConsultingSectionsTests|ExcelSkillSummarySheetTests" -p:OutputPath=bin\\verify_doc_phase2_tests\\ -p:IntermediateOutputPath=obj\\verify_doc_phase2_tests\\` 통과 9
|
||||
|
||||
- 업데이트: 2026-04-14 19:13 (KST)
|
||||
- `claude-code` 기준 Phase 4 범위를 이어서 반영했습니다. MCP 서버 메타데이터를 `mcp` 스코프의 synthetic skill로 노출하는 [McpSkillCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/McpSkillCatalog.cs)를 추가했고, 스킬 source 정책은 `managed/user/additional/project/plugin/mcp/legacy` 단위로 켜고 끌 수 있게 확장했습니다.
|
||||
- `기준 구조` 기준 Phase 4 범위를 이어서 반영했습니다. MCP 서버 메타데이터를 `mcp` 스코프의 synthetic skill로 노출하는 [McpSkillCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/McpSkillCatalog.cs)를 추가했고, 스킬 source 정책은 `managed/user/additional/project/plugin/mcp/legacy` 단위로 켜고 끌 수 있게 확장했습니다.
|
||||
- 슬래시 명령 합성도 정리했습니다. [SlashCommandCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SlashCommandCatalog.cs)와 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)가 이제 builtin command와 skill을 우선순위 기반으로 dedupe해 같은 `/명령`이 겹칠 때 더 안정적으로 하나만 노출합니다.
|
||||
- 일반 설정과 AX Agent 내부 설정의 스킬 섹션에도 source 정책 토글을 추가했고, [SkillGalleryWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SkillGalleryWindow.xaml.cs)는 MCP 카테고리/배지를 지원하도록 보강했습니다. synthetic MCP 스킬처럼 실제 파일이 없는 항목은 편집/복제/내보내기 액션을 숨겨 런타임 오류도 피합니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_phase4\\ -p:IntermediateOutputPath=obj\\verify_phase4\\` 경고 0 / 오류 0
|
||||
@@ -118,7 +120,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 참고: 테스트 프로젝트의 기존 파일 `src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs(76)` nullable 경고 1건은 유지됩니다.
|
||||
|
||||
- 업데이트: 2026-04-14 19:50 (KST)
|
||||
- AX Agent의 내부 실행 품질을 `claude-code` 기준으로 한 단계 더 끌어올렸습니다. 실행 중 추가 입력은 [AgentCommandQueue.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentCommandQueue.cs)에서 우선순위와 인터럽트 여부를 함께 보존하고, [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)는 이를 주기적으로 소진해 대화 중 새 지시가 들어와도 더 안정적으로 반영합니다.
|
||||
- AX Agent의 내부 실행 품질을 `기준 구조` 기준으로 한 단계 더 끌어올렸습니다. 실행 중 추가 입력은 [AgentCommandQueue.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentCommandQueue.cs)에서 우선순위와 인터럽트 여부를 함께 보존하고, [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)는 이를 주기적으로 소진해 대화 중 새 지시가 들어와도 더 안정적으로 반영합니다.
|
||||
- 컨텍스트 관리도 보강했습니다. [AgentToolResultBudget.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentToolResultBudget.cs), [AgentQueryContextBuilder.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentQueryContextBuilder.cs), [ChatModels.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Models/ChatModels.cs)가 tool result preview를 대화 메시지에 캐시해 긴 세션과 재질문에서도 같은 축약 결과를 재사용하도록 정리했습니다.
|
||||
- 코드 탭의 언어 지원도 내장 중심으로 넓혔습니다. [CodeLanguageCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/CodeLanguageCatalog.cs)를 추가해 코드 분류, 시스템 프롬프트, LSP 언어 판정, 인덱싱 확장자를 한 카탈로그로 묶었고, 설정의 코드 탭에는 `지원 언어(LSP)`와 `코드 탭 기본 지원`을 명시적으로 노출했습니다. 격리 환경에서는 외부 설치를 전제하지 않고 내장 분석과 로컬에 이미 있는 언어 서버만 활용합니다.
|
||||
- PPT 생성 품질도 크게 올렸습니다. [PptxSkill.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/PptxSkill.cs)에 `executive_summary`, `recommendation`, `roadmap`, `comparison`, `kpi_dashboard` 레이아웃을 추가했고, [DocumentPlannerTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocumentPlannerTool.cs)는 발표용 문서 계획을 `Executive Summary -> Situation & Imperative -> Key Findings -> Options & Recommendation -> Implementation Roadmap -> Impact & Ask` 구조로 생성하도록 바꿨습니다. [pptx-creator.skill.md](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/skills/pptx-creator.skill.md)도 Python 우선 흐름에서 AX native `pptx_create` 중심으로 재작성했습니다.
|
||||
@@ -143,7 +145,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_skilllabel\\ -p:IntermediateOutputPath=obj\\verify_skilllabel\\` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-14 18:37 (KST)
|
||||
- `claude-code` 로컬 스냅샷을 다시 확인했지만, 바로 가져다 쓸 만한 PPT/문서 전용 번들 스킬은 뚜렷하지 않았습니다. 대신 AX에 이미 포함된 `pptx-creator`, `docx-creator`, `report-writer`, `prd-generator`, `meeting-minutes`, `weekly-report`, `markdown-to-doc` 같은 문서형 스킬을 기본 제공 자산으로 더 분명하게 노출하도록 정리했습니다.
|
||||
- `기준 구조` 로컬 스냅샷을 다시 확인했지만, 바로 가져다 쓸 만한 PPT/문서 전용 번들 스킬은 뚜렷하지 않았습니다. 대신 AX에 이미 포함된 `pptx-creator`, `docx-creator`, `report-writer`, `prd-generator`, `meeting-minutes`, `weekly-report`, `markdown-to-doc` 같은 문서형 스킬을 기본 제공 자산으로 더 분명하게 노출하도록 정리했습니다.
|
||||
- 문서형 스킬에는 `when_to_use`와 `argument-hint` 메타를 보강해 자동 추천 품질을 높였습니다. 이제 발표자료, Word 문서, 보고서, PRD, 회의록, Markdown 문서 변환 요청에서 관련 스킬이 더 자연스럽게 선택될 수 있습니다.
|
||||
- 설정 화면과 스킬 갤러리도 `managed` 스코프를 별도 `기본 제공 스킬`로 분리해, 앱에 기본 포함되어 배포되는 문서/프레젠테이션 스킬이 사용자 추가 스킬과 섞여 보이지 않게 맞췄습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_docskills\\ -p:IntermediateOutputPath=obj\\verify_docskills\\` 경고 0 / 오류 0
|
||||
@@ -167,7 +169,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 참고: 테스트 빌드 중 기존 파일 `src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs`의 nullable 경고 1건은 유지됩니다.
|
||||
|
||||
- 업데이트: 2026-04-14 18:08 (KST)
|
||||
- 스킬 런타임을 `claude-code` 동등 품질 기준으로 한 단계 더 끌어올렸습니다. 이제 작업 폴더 기준의 프로젝트 `.claude/skills`를 재귀 스캔해 namespaced `SKILL.md`를 로드하고, 번들 스킬/사용자 스킬/프로젝트 스킬을 함께 노출합니다.
|
||||
- 스킬 런타임을 `기준 구조` 동등 품질 기준으로 한 단계 더 끌어올렸습니다. 이제 작업 폴더 기준의 프로젝트 `.claude/skills`를 재귀 스캔해 namespaced `SKILL.md`를 로드하고, 번들 스킬/사용자 스킬/프로젝트 스킬을 함께 노출합니다.
|
||||
- 슬래시 스킬 호출도 실제 실행 경로에 맞게 확장했습니다. `/skill args...` 호출 시 `$ARGUMENTS`, named argument placeholder, 스킬 폴더 변수 치환을 적용하고, inline shell 블록은 호출 시점의 작업 폴더에서만 실행해 프롬프트를 조립합니다.
|
||||
- 자동/조건부 스킬도 엔진에 연결했습니다. `when_to_use`, `paths`, `user-invocable` 메타데이터를 기준으로 보조 스킬을 선택해 일반 대화 요청에도 필요한 가이드를 붙이고, 오버레이/설정 화면도 같은 분류를 기준으로 직접 호출/자동 스킬을 보여줍니다.
|
||||
- 도구 노출 단계도 보강했습니다. blanket deny 상태인 도구는 실행 시점 차단만 하는 것이 아니라 모델에 전달하는 활성 도구 목록에서 먼저 제외해 불필요한 도구 제안과 권한 소음을 줄였습니다.
|
||||
@@ -186,12 +188,12 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- Cowork 문서 생성이 단조로워지고 마지막 요약이 약해진 부분을 다시 보강했습니다. 문서 태스크 가이드에 반복적인 동일 패턴 섹션 작성을 피하고, 목적에 따라 요약/핵심 발견/비교표/타임라인/권고안/부록 같은 richer section pattern을 쓰도록 다시 유도했습니다.
|
||||
- Cowork 시스템 프롬프트도 같은 기준으로 조정했습니다. 새 문서 생성 시 filler paragraph 대신 bullets, tables, structured comparison을 적극적으로 쓰게 하고, 최종 응답에는 생성 후 점검 항목까지 포함한 구조화 요약을 남기도록 복원했습니다.
|
||||
- 문서형 최종 보고는 `simple`에서도 출력 파일 경로와 핵심 섹션을 남기고, `balanced/rich`에서는 문서 유형, 출력 경로, 핵심 섹션, 분량/구성 규모, 생성 후 확인 사항까지 요약하도록 다시 강화했습니다.
|
||||
- 실행 프로필도 AX 품질 기준으로 일부 되돌렸습니다. `balanced`, `reasoning_first`, `document_heavy`는 문서 검증 게이트와 최종 보고 재정리 게이트를 다시 활성화해, 컨텍스트 관리만 `claude-code`에 맞추고 품질 강제는 AX 쪽 기준을 유지하도록 조정했습니다.
|
||||
- 코드 탭도 같은 원칙으로 재정렬했습니다. 컨텍스트 압축/전송만 `claude-code` 기준으로 두고, 일반 코드 수정에도 post-tool verification과 구조화된 최종 보고를 다시 요구해 검증 품질과 변경 요약 밀도를 AX 원래 수준에 가깝게 복원했습니다.
|
||||
- 실행 프로필도 AX 품질 기준으로 일부 되돌렸습니다. `balanced`, `reasoning_first`, `document_heavy`는 문서 검증 게이트와 최종 보고 재정리 게이트를 다시 활성화해, 컨텍스트 관리만 `기준 구조`에 맞추고 품질 강제는 AX 쪽 기준을 유지하도록 조정했습니다.
|
||||
- 코드 탭도 같은 원칙으로 재정렬했습니다. 컨텍스트 압축/전송만 `기준 구조` 기준으로 두고, 일반 코드 수정에도 post-tool verification과 구조화된 최종 보고를 다시 요구해 검증 품질과 변경 요약 밀도를 AX 원래 수준에 가깝게 복원했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-12 23:45 (KST)
|
||||
- `claude-code` 기준으로 남아 있던 provider/compact/UI 후속 차이를 더 줄였습니다. OpenAI 호환 도구 호출은 이제 모델 계열별 호환 프로파일을 적용해 Qwen·LLaMA·DeepSeek 같은 취약한 vLLM 계열에서 최근 structured tool history 범위를 더 좁히고, 병렬 tool call과 reasoning_effort도 더 보수적으로 전송합니다.
|
||||
- `기준 구조` 기준으로 남아 있던 provider/compact/UI 후속 차이를 더 줄였습니다. OpenAI 호환 도구 호출은 이제 모델 계열별 호환 프로파일을 적용해 Qwen·LLaMA·DeepSeek 같은 취약한 vLLM 계열에서 최근 structured tool history 범위를 더 좁히고, 병렬 tool call과 reasoning_effort도 더 보수적으로 전송합니다.
|
||||
- tool forcing fallback도 보강했습니다. IBM 배포형뿐 아니라 일반 OpenAI 호환 경로에서도 `tool_choice`가 400으로 거부되면, plain text 지시를 덧붙인 대체 요청으로 한 번 더 재시도해 `채팅은 되지만 Cowork/Code만 막히는` 조합을 줄였습니다.
|
||||
- compact 이후 query view에는 복원된 branch context와 최근 tool state까지 함께 다시 주입합니다. UI는 표현 수준(`rich/balanced/simple`)에 맞춰 compact 카드와 컨텍스트 사용 팝업 밀도를 다르게 보여주고, 최종 보고 프롬프트도 같은 수준에 맞춰 더 짧거나 더 구조적으로 정리되도록 맞췄습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
@@ -199,14 +201,14 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 업데이트: 2026-04-10 14:30 (KST)
|
||||
- **UI 프리징 근본 수정**: 스트리밍 중 렌더링 쓰로틀(1.5초 최소 간격), 이중 RenderMessages 제거, 타이머 Stop→Start 무한 루프 차단, 불필요 타이머 4개 일시 정지, 타이머 간격 2-10배 증가(350ms→5s, 500ms→2s 등). 에이전트 이벤트 디스패처 우선순위를 Normal→Background로 하향.
|
||||
- **모델 프로파일 도구 사용 버그 수정**: Ollama 모델에 `tool_choice: "required"` 미전달 버그 수정 — `BuildOpenAiToolBody`에서 Ollama 조기 리턴 전에 `tool_choice` 주입. `FindRegisteredModel`의 대소문자 민감 비교를 `OrdinalIgnoreCase`로 변경하여 프로파일 매칭 실패 방지.
|
||||
- **트랜스크립트 UI 개선**: "처리 중..." / "작업을 준비하는 중입니다..." 트랜스크립트 힌트를 제거하고 PulseDotBar로만 상태 표시 (Claude Desktop 스타일). 완료 이벤트의 이모지 깨짐("?챗셝?콺듦") 수정 — 서로게이트 쌍(비-BMP 유니코드) 자동 제거.
|
||||
- **트랜스크립트 UI 개선**: "처리 중..." / "작업을 준비하는 중입니다..." 트랜스크립트 힌트를 제거하고 PulseDotBar로만 상태 표시하도록 정리했습니다. 완료 이벤트의 이모지 깨짐("?챗셝?콺듦") 수정 — 서로게이트 쌍(비-BMP 유니코드) 자동 제거.
|
||||
- **PPT 기능 확장**: 이미지 삽입(BlipFill+aspect ratio), 아이콘 라이브러리(170+ 유니코드/120+ OpenXML), 슬라이드 복제(전체/개별), 네이티브 차트(bar/line/pie ChartPart), theme_file 마스터 복제.
|
||||
- **아이콘 공유**: 새 `IconLibrary.cs`를 DOCX/XLSX/HTML 스킬에서 공유. `{icon:name}` 인라인 구문 + 블록 아이콘 지원.
|
||||
- **마스코트 개선**: 3배 크기(300px), NearestNeighbor 픽셀아트 렌더, 투명 배경, 좌우 이동 애니메이션 10종.
|
||||
- 검증: `dotnet build` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-10 09:02 (KST)
|
||||
- `claude-code` 기준으로 Cowork/Code의 남은 차이를 더 줄였습니다. Cowork/Code 프롬프트의 텍스트-only 완료 조건을 완화해, 작업이 이미 끝났거나 충분한 근거가 있을 때는 불필요한 도구 호출을 더 강제하지 않도록 정리했습니다.
|
||||
- `기준 구조` 기준으로 Cowork/Code의 남은 차이를 더 줄였습니다. Cowork/Code 프롬프트의 텍스트-only 완료 조건을 완화해, 작업이 이미 끝났거나 충분한 근거가 있을 때는 불필요한 도구 호출을 더 강제하지 않도록 정리했습니다.
|
||||
- 에이전트 루프도 같이 손봤습니다. 텍스트-only 재시도는 이제 실제 산출물 생성이나 코드 수정처럼 구체적인 실행이 필요한 경우에만 다시 도구를 강제하고, 문서 생성 fallback도 같은 범위로 좁혔습니다.
|
||||
- Code 검증 게이트는 `diff` 또는 최근 build/test 근거가 이미 있으면 추가 재검증을 덜 하도록 줄였고, `folder_map`은 기본 노출 우선순위에서 한 단계 내려 보조 탐색 도구로 배치했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
@@ -217,7 +219,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-10 00:08 (KST)
|
||||
- `claude-code`와 비교했을 때 AX에 남아 있던 계획 선행과 후속 권유 톤을 더 줄였습니다. 기본 Cowork/Code 루프 안에 남아 있던 plan prelude/승인용 죽은 코드를 제거해, 별도 계획 생성 단계를 끼우지 않고 바로 모델+도구 실행으로 들어갑니다.
|
||||
- `기준 구조`와 비교했을 때 AX에 남아 있던 계획 선행과 후속 권유 톤을 더 줄였습니다. 기본 Cowork/Code 루프 안에 남아 있던 plan prelude/승인용 죽은 코드를 제거해, 별도 계획 생성 단계를 끼우지 않고 바로 모델+도구 실행으로 들어갑니다.
|
||||
- Code 최종 보고 재강제도 review 작업과 고영향 변경으로 좁혔습니다. 일반 수정은 변경 내용과 검증 근거가 충분하면 후속 계획이나 남은 리스크를 덧붙이도록 다시 유도하지 않고 마무리할 수 있습니다.
|
||||
- Cowork/Code 시스템 프롬프트도 같은 방향으로 정리했습니다. Cowork는 새 문서 생성 시 `document_plan`을 기본 선행 단계처럼 밀지 않고 필요할 때만 쓰게 했고, Code는 마지막 보고에서 미해결 사항이 있을 때만 리스크를 언급하게 바꿨습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
@@ -228,40 +230,40 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
|
||||
- 업데이트: 2026-04-09 23:02 (KST)
|
||||
- IBM/Qwen 후속 호환을 한 단계 더 보강했습니다. 이제 IBM 배포형 응답에서 `generated_text`, `output_text`, `message.content`, `reasoning_content`가 문자열뿐 아니라 배열/블록 형태로 와도 텍스트를 추출하고, `content` 배열 안의 `tool_use/tool_call` 블록도 직접 읽어 도구 호출로 복구합니다.
|
||||
- 활성 도구 노출 순서도 다시 정리했습니다. `file_read/file_edit/glob/grep/lsp_code_intel/build_run/document_plan` 같은 기본 도구를 먼저 보여주고, `document_review/format_convert/tool_search/code_search`는 그 다음, `mcp_*`, `spawn_agent`, `wait_agents`, `task_*`는 더 뒤로 미뤄 `claude-code`처럼 기본 작업 도구가 먼저 선택되도록 했습니다.
|
||||
- 활성 도구 노출 순서도 다시 정리했습니다. `file_read/file_edit/glob/grep/lsp_code_intel/build_run/document_plan` 같은 기본 도구를 먼저 보여주고, `document_review/format_convert/tool_search/code_search`는 그 다음, `mcp_*`, `spawn_agent`, `wait_agents`, `task_*`는 더 뒤로 미뤄 `기준 구조`처럼 기본 작업 도구가 먼저 선택되도록 했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-09 22:48 (KST)
|
||||
- `claude-code` 기준 후속 과제를 이어서 반영했습니다. IBM 배포형 vLLM/Qwen 경로에서는 과거 `tool_calls`/`role=tool` 이력을 그대로 재전송하지 않고, `<tool_call>...</tool_call>` 중심의 평탄한 transcript로 직렬화해 엄격한 tool history 검사에 덜 걸리도록 전용 분기를 넣었습니다.
|
||||
- `기준 구조` 기준 후속 과제를 이어서 반영했습니다. IBM 배포형 vLLM/Qwen 경로에서는 과거 `tool_calls`/`role=tool` 이력을 그대로 재전송하지 않고, `<tool_call>...</tool_call>` 중심의 평탄한 transcript로 직렬화해 엄격한 tool history 검사에 덜 걸리도록 전용 분기를 넣었습니다.
|
||||
- Cowork 문서 생성 프롬프트는 `document_review`와 `format_convert`를 상시 기본 단계처럼 밀지 않도록 다시 낮췄습니다. 이제 기본 검증은 `file_read/document_read` 중심이고, `document_review`는 큰 문서 품질 점검이나 명시적 요청일 때만 권장합니다.
|
||||
- Code/Cowork 공통 런타임 복구 문구도 정리했습니다. `tool_search`는 후보만으로 충분할 때는 바로 실제 도구를 고르도록 하고, 정말 모호할 때만 사용하게 바꿨습니다. `spawn_agent`도 기본 전면 노출 대신 병렬 조사가 실제로 도움이 될 때만 고려하도록 완화했습니다.
|
||||
- Code의 의미 기반 탐색도 한 단계 더 보강했습니다. 정의/참조/구현/호출관계 질문은 `lsp_code_intel`을 더 앞에 두고, LSP 결과는 파일 수·대표 위치·첫 결과를 함께 요약해 다음 액션 판단에 바로 쓸 수 있게 정리했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-09 22:38 (KST)
|
||||
- Code 탭의 구조적 코드 읽기를 `claude-code`에 더 가깝게 확장했습니다. AX에 이미 있던 `lsp_code_intel` 도구를 `goto_definition`, `find_references`, `hover`, `goto_implementation`, `workspace_symbols`, `prepare_call_hierarchy`, `incoming_calls`, `outgoing_calls`까지 넓혀, 단순 `grep/file_read`만이 아니라 정의/참조/호출관계를 입체적으로 볼 수 있게 했습니다.
|
||||
- Code 탭의 구조적 코드 읽기를 `기준 구조`에 더 가깝게 확장했습니다. AX에 이미 있던 `lsp_code_intel` 도구를 `goto_definition`, `find_references`, `hover`, `goto_implementation`, `workspace_symbols`, `prepare_call_hierarchy`, `incoming_calls`, `outgoing_calls`까지 넓혀, 단순 `grep/file_read`만이 아니라 정의/참조/호출관계를 입체적으로 볼 수 있게 했습니다.
|
||||
- Code 프롬프트와 탐색 우선순위도 이에 맞춰 조정했습니다. 이제 특정 심볼의 정의, 참조, 구현, 호출자/피호출자를 볼 때는 `lsp_code_intel`을 우선 후보로 제시하고, 텍스트 검색이 더 적합한 경우에만 `grep/glob`를 쓰도록 유도합니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-09 21:48 (KST)
|
||||
- Cowork/Code 생성 로직을 `claude-code` 기준으로 다시 정리했습니다. Cowork는 순수 문서 생성 요청이면 `glob/grep/document_read/folder_map`로 먼저 새지 않고 `document_plan -> 생성 도구`로 바로 가도록 프롬프트와 탐색 우선순위를 맞췄습니다.
|
||||
- Cowork/Code 생성 로직을 `기준 구조` 기준으로 다시 정리했습니다. Cowork는 순수 문서 생성 요청이면 `glob/grep/document_read/folder_map`로 먼저 새지 않고 `document_plan -> 생성 도구`로 바로 가도록 프롬프트와 탐색 우선순위를 맞췄습니다.
|
||||
- Code는 시작 흐름을 더 얇게 바꿨습니다. `targeted file_read` 또는 `grep/glob`로 가장 작은 범위만 확인한 뒤 바로 `file_edit/file_write`로 이어지고, `build_run/test_loop`와 `git_tool(diff)`는 필요할 때 쓰는 방향으로 정리했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-09 21:58 (KST)
|
||||
- Cowork/Code 기본 실행 정책을 더 `claude-code`답게 완화했습니다. `balanced`, `reasoning_first` 프로필에서 초기 도구 호출 강제와 post-tool 검증, 문서 검증 게이트를 기본 비활성화해 불필요한 재호출을 줄였습니다.
|
||||
- Cowork/Code 기본 실행 정책을 더 `기준 구조`답게 완화했습니다. `balanced`, `reasoning_first` 프로필에서 초기 도구 호출 강제와 post-tool 검증, 문서 검증 게이트를 기본 비활성화해 불필요한 재호출을 줄였습니다.
|
||||
- Cowork는 문서 생성 완료 뒤 추가 검증 턴을 기본으로 붙이지 않고, 결과 파일이 만들어지면 바로 완료 경로로 빠지도록 정리했습니다. 문서 품질 확인은 가벼운 self-check 성격으로 프롬프트도 완화했습니다.
|
||||
- Code는 일반 수정의 완료 근거를 `diff` 또는 최근 build/test 같은 가벼운 증거로도 인정하도록 바꿔, 고영향 수정이 아닐 때 `CodeQualityGate`가 과하게 재발동하지 않게 했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-09 21:03 (KST)
|
||||
- 핵심 엔진 계층도 `claude-code` 기준으로 더 정리했습니다. 스트리밍 도구 코디네이터는 재시도 전에 중간 스트림 상태를 끊는 `RetryReset` 이벤트를 보내도록 바꿔, 부분 응답이 누적된 채 다시 이어지는 현상을 줄였습니다.
|
||||
- 핵심 엔진 계층도 `기준 구조` 기준으로 더 정리했습니다. 스트리밍 도구 코디네이터는 재시도 전에 중간 스트림 상태를 끊는 `RetryReset` 이벤트를 보내도록 바꿔, 부분 응답이 누적된 채 다시 이어지는 현상을 줄였습니다.
|
||||
- 조기 실행 대상 읽기 도구는 `file_read`와 `document_read` 중심의 가벼운 도구로 다시 좁혔고, `folder_map` 같은 구조 탐색 도구는 더 이상 엔진 레벨 prefetch 대상에 넣지 않도록 조정했습니다.
|
||||
- Cowork/Code에서 최종 텍스트 응답이 비어 있을 때도 무조건 완료 문구를 합성하지 않고, 실행 이벤트 근거가 있을 때만 요약을 만들도록 보수적으로 바꿨습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
|
||||
- 업데이트: 2026-04-09 20:46 (KST)
|
||||
- AX Code 핵심 루프의 과한 검증 개입을 줄여 `claude-code`에 더 가깝게 정리했습니다. 일반 코드 수정 뒤에는 즉시 별도 검증 루프를 다시 돌리지 않고, 고영향 수정일 때만 post-tool verification을 유지하도록 조정했습니다.
|
||||
- AX Code 핵심 루프의 과한 검증 개입을 줄여 `기준 구조`에 더 가깝게 정리했습니다. 일반 코드 수정 뒤에는 즉시 별도 검증 루프를 다시 돌리지 않고, 고영향 수정일 때만 post-tool verification을 유지하도록 조정했습니다.
|
||||
- Code 종료 게이트도 순서를 다듬어, diff/build/test 근거가 이미 있는 일반 수정은 `CodeQualityGate`를 과하게 반복하지 않게 했고 `FinalReportGate`는 실제 검증 공백이 해소된 뒤에만 작동하도록 바꿨습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
|
||||
|
||||
@@ -301,11 +303,11 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- AX Agent 상단 탭의 세로 정렬을 미세 조정했습니다. 탭 버튼의 콘텐츠 정렬을 중앙 기준으로 다시 맞추고, 내부 패딩과 높이를 손봐 위아래 여백이 더 균형 있게 보이도록 보정했습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 19:46 (KST)
|
||||
- AX Agent 테마 프리셋에서 `Claw` 표기를 `Claude`로 바꿨고, 기존 저장값 `claw`는 자동으로 `claude`로 읽히도록 하위 호환을 유지했습니다.
|
||||
- `Claude` 다크/라이트 팔레트는 실제 앱 톤에 더 가깝게, `Codex` 다크는 제공된 레퍼런스 화면처럼 중성 회갈색 계열로, `Nord`는 공식 팔레트 기준으로 다시 맞췄습니다. `Slate`도 더 표준적인 슬레이트 계열 명암으로 정리했습니다.
|
||||
- AX Agent 테마 프리셋 명칭과 저장값 호환 규칙을 정리했습니다. 기존 저장값도 자동으로 새 프리셋 이름으로 읽히도록 하위 호환을 유지했습니다.
|
||||
- 다크/라이트 팔레트의 배경, 보조 텍스트, 호버, 경계선 톤을 다시 조정해 프리셋별 시각 차이가 더 분명하게 느껴지도록 보정했습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 19:33 (KST)
|
||||
- AX Agent 라이트 테마 계층을 다시 정리했습니다. `Codex/Claw` 라이트 팔레트의 배경, 선택 배경, 호버, 경계선, 보조 텍스트 톤을 더 따뜻하게 보정해 사이드바와 본문 위계가 레퍼런스처럼 자연스럽게 느껴지도록 조정했습니다.
|
||||
- AX Agent 라이트 테마 계층을 다시 정리했습니다. 주요 라이트 팔레트의 배경, 선택 배경, 호버, 경계선, 보조 텍스트 톤을 더 따뜻하게 보정해 사이드바와 본문 위계가 자연스럽게 느껴지도록 조정했습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 19:24 (KST)
|
||||
- 런처 색인 진행 상태를 런처 하단 완료 문구 대신 설정창 `인덱싱 속도` 아래에서 확인할 수 있게 바꿨습니다. 전체 색인 중에는 진행률 바와 상태/남은 시간 문구가 보이고, 완료 후에는 최근 색인 결과가 같은 위치에 남습니다.
|
||||
@@ -339,12 +341,12 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 사용자 메시지 하단 바는 이제 전용 컬럼을 나눠 시간과 액션이 항상 분리되어 보이며, hover 상태와 무관하게 메타 행이 안정적으로 유지됩니다.
|
||||
|
||||
- 업데이트: 2026-04-06 09:27 (KST)
|
||||
- `claw-code`와 AX Agent를 다시 대조해 남은 품질 향상 작업을 3트랙으로 재정리했습니다. 앞으로 계획은 `사용자 체감 UI/UX`, `LLM·작업 처리`, `유지보수·추가기능 구조`로 분리해 관리합니다.
|
||||
- `docs/claw-code-parity-plan.md`에 각 트랙별 참조 파일, AX 적용 위치, 완료 조건, 품질 판정 기준, 권장 실행 순서를 고정했습니다.
|
||||
- `기준 구조`와 AX Agent를 다시 대조해 남은 품질 향상 작업을 3트랙으로 재정리했습니다. 앞으로 계획은 `사용자 체감 UI/UX`, `LLM·작업 처리`, `유지보수·추가기능 구조`로 분리해 관리합니다.
|
||||
- `docs/AX_AGENT_EXECUTION_IMPROVEMENT_PLAN.md`에 각 트랙별 참조 파일, AX 적용 위치, 완료 조건, 품질 판정 기준, 권장 실행 순서를 고정했습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 09:14 (KST)
|
||||
- AX Agent 워크트리 선택 팝업과 공통 선택 row 렌더를 `ChatWindow.SelectionPopupPresentation.cs`로 분리했습니다. 작업 위치/워크트리 전환 메뉴와 선택 상태 row 조립이 메인 창 코드 밖으로 이동해 footer 선택 UX를 별도 파일에서 정리할 수 있게 됐습니다.
|
||||
- `ChatWindow.xaml.cs`는 대화 상태와 세션 orchestration 쪽에 더 집중하도록 정리했고, 향후 브랜치/워크트리/선택형 팝업 UX를 `claw-code` 기준으로 계속 다듬기 쉬운 구조를 만들었습니다.
|
||||
- `ChatWindow.xaml.cs`는 대화 상태와 세션 orchestration 쪽에 더 집중하도록 정리했고, 향후 브랜치/워크트리/선택형 팝업 UX를 `기준 구조` 기준으로 계속 다듬기 쉬운 구조를 만들었습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 09:03 (KST)
|
||||
- AX Agent 공통 선택 팝업 조립 로직을 `ChatWindow.PopupPresentation.cs`로 분리했습니다. 테마 팝업 컨테이너, 공통 메뉴 아이템, 구분선, 최근 폴더 우클릭 컨텍스트 메뉴가 메인 창 코드 밖으로 이동해 footer/file-browser 쪽 팝업 품질 작업을 이어가기 쉬운 구조로 정리했습니다.
|
||||
@@ -352,27 +354,27 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
|
||||
- 업데이트: 2026-04-06 08:55 (KST)
|
||||
- AX Agent 파일 브라우저 렌더를 `ChatWindow.FileBrowserPresentation.cs`로 분리했습니다. 파일 탐색기 열기/닫기, 폴더 트리 구성, 파일 헤더/아이콘/크기 표시, 우클릭 메뉴, 디바운스 새로고침 흐름이 메인 창 코드 밖으로 이동했습니다.
|
||||
- `ChatWindow.xaml.cs`는 transcript·runtime orchestration 중심으로 더 정리됐고, claw-code 기준 사이드 surface 품질 작업을 이어가기 쉬운 구조로 맞췄습니다.
|
||||
- `ChatWindow.xaml.cs`는 transcript·runtime orchestration 중심으로 더 정리됐고, 기준 구조 기준 사이드 surface 품질 작업을 이어가기 쉬운 구조로 맞췄습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 08:47 (KST)
|
||||
- AX Agent 우측 프리뷰 패널 렌더를 `ChatWindow.PreviewPresentation.cs`로 분리했습니다. 프리뷰 탭 목록, 헤더, 파일 로드, CSV/텍스트/마크다운/HTML 표시, 숨김/열기, 우클릭 메뉴, 별도 창 미리보기 흐름이 메인 창 코드 밖으로 이동했습니다.
|
||||
- `ChatWindow.xaml.cs`는 transcript 및 런타임 orchestration 중심으로 더 정리됐고, claw-code 기준 preview surface 품질 작업을 이어가기 쉬운 구조로 맞췄습니다.
|
||||
- `ChatWindow.xaml.cs`는 transcript 및 런타임 orchestration 중심으로 더 정리됐고, 기준 구조 기준 preview surface 품질 작업을 이어가기 쉬운 구조로 맞췄습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 08:39 (KST)
|
||||
- AX Agent 하단 상태바 이벤트 처리와 회전 애니메이션을 `ChatWindow.StatusPresentation.cs`로 옮겼습니다. `UpdateStatusBar`, `StartStatusAnimation`, `StopStatusAnimation`이 상태 표현 파일로 이동해 메인 창 코드의 runtime/status 분기가 더 줄었습니다.
|
||||
- `ChatWindow.xaml.cs`는 대화 실행 orchestration 중심으로 더 정리됐고, claw-code 기준 status line 정교화와 footer presentation 개선을 계속 이어가기 쉬운 구조로 맞췄습니다.
|
||||
- `ChatWindow.xaml.cs`는 대화 실행 orchestration 중심으로 더 정리됐고, 기준 구조 기준 status line 정교화와 footer presentation 개선을 계속 이어가기 쉬운 구조로 맞췄습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 08:27 (KST)
|
||||
- AX Agent 메시지 액션/메타/편집 렌더를 `ChatWindow.MessageInteractions.cs`로 분리했습니다. 좋아요·싫어요 피드백 버튼, 응답 메타 텍스트, 메시지 등장 애니메이션, 사용자 메시지 편집·재생성 흐름이 메인 창 코드 밖으로 이동했습니다.
|
||||
- `ChatWindow.xaml.cs`는 transcript 오케스트레이션과 상태 흐름에 더 집중하도록 정리했고, claw-code 기준 메시지 타입 분리와 renderer 구조화를 계속 진행하기 쉬운 기반을 만들었습니다.
|
||||
- `ChatWindow.xaml.cs`는 transcript 오케스트레이션과 상태 흐름에 더 집중하도록 정리했고, 기준 구조 기준 메시지 타입 분리와 renderer 구조화를 계속 진행하기 쉬운 기반을 만들었습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 08:28 (KST)
|
||||
- AX Agent 하단 composer와 대기열 UI 렌더를 `ChatWindow.ComposerQueuePresentation.cs`로 분리했습니다. 입력창 높이 계산, draft kind 해석, 후속 요청 큐 카드/요약 pill/배지/액션 버튼 생성 책임을 메인 창 코드에서 떼어냈습니다.
|
||||
- `ChatWindow.xaml.cs`는 대기열 실행 orchestration과 세션 변경 흐름만 더 선명하게 남겨, claw-code 기준 입력부/queued command UX 개선을 계속하기 쉬운 구조로 정리했습니다.
|
||||
- `ChatWindow.xaml.cs`는 대기열 실행 orchestration과 세션 변경 흐름만 더 선명하게 남겨, 기준 구조 기준 입력부/queued command UX 개선을 계속하기 쉬운 구조로 정리했습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 08:12 (KST)
|
||||
- AX Agent 하단 작업 바 관련 presentation 메서드를 메인 창 코드에서 더 분리했습니다. `ChatWindow.FooterPresentation.cs`를 추가해 폴더 바, 선택된 프리셋 안내, Git 브랜치 버튼/팝업 렌더, 요약 pill 생성 책임을 별도 partial로 옮겼습니다.
|
||||
- `ChatWindow.xaml.cs`는 대화 흐름과 런타임 orchestration 중심으로 더 정리했고, claw-code 기준으로 footer/preset/Git popup 품질 작업을 계속 이어가기 쉬운 구조를 만들었습니다.
|
||||
- `ChatWindow.xaml.cs`는 대화 흐름과 런타임 orchestration 중심으로 더 정리했고, 기준 구조 기준으로 footer/preset/Git popup 품질 작업을 계속 이어가기 쉬운 구조를 만들었습니다.
|
||||
|
||||
- 업데이트: 2026-04-06 01:37 (KST)
|
||||
- AX Agent의 계획 승인 흐름을 더 transcript 우선 구조로 정리했습니다. 인라인 승인 카드가 기본 경로를 맡고, `계획` 버튼은 저장된 계획 요약/단계를 여는 상세 보기 역할만 하도록 분리했습니다.
|
||||
@@ -392,7 +394,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 업데이트: 2026-04-05 19:04 (KST)
|
||||
- AX Agent transcript와 작업 요약에서 도구/스킬 이름을 사람이 읽기 쉬운 표시명으로 정리했습니다. raw snake_case 도구명 대신 `파일 읽기`, `빌드/실행`, `Git`, `/bug-hunt` 같은 표시명 중심으로 보입니다.
|
||||
- 도구/스킬 이벤트 배지는 역할 중심(`도구`, `도구 결과`, `스킬`)으로 단순화하고, 실제 도구명은 본문 보조 텍스트로만 노출되게 바꿨습니다.
|
||||
- 작업 요약 팝업의 권한/배경 작업 관측성 섹션은 `debug` 성격일 때만 두껍게 보여서 기본 UX가 더 `claw-code`처럼 조용하게 유지됩니다.
|
||||
- 작업 요약 팝업의 권한/배경 작업 관측성 섹션은 `debug` 성격일 때만 두껍게 보여서 기본 UX가 더 `기준 구조`처럼 조용하게 유지됩니다.
|
||||
|
||||
- 업데이트: 2026-04-05 18:58 (KST)
|
||||
- AX Agent의 `의견 요청`/`질문` 흐름을 transcript 내 카드 우선 구조로 전환했습니다.
|
||||
@@ -400,32 +402,32 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 계획 승인과 사용자 질문이 같은 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 내부의 승인/수정/취소 버튼을 우선 보여주며, 계획 상세는 하단 `계획` 버튼으로만 여는 보조 경로를 사용합니다.
|
||||
- `기준 구조`와 AX Agent를 같은 기준으로 비교할 수 있도록 canonical prompt set 10종을 parity 문서에 고정했습니다. Chat 기본/장문, Cowork 문서/데이터, Code 수정/빌드, queue follow-up, post-compaction, permission 승인, slash skill 진입까지 핵심 회귀 흐름을 한 세트로 검증하도록 정리했습니다.
|
||||
- 도구/스킬 비교 기준도 parity 문서에 추가했습니다. AX는 문서/오피스/데이터/업무형 도구가 더 풍부하고, `기준 구조`는 transcript-native tool/approval/permission 메시지 구조가 더 정교하다는 차이를 명시했습니다.
|
||||
- 계획 승인 UX는 `기준 구조` 쪽 흐름에 더 가깝게 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%`입니다.
|
||||
- `기준 구조` 대비 AX Agent 추정 진척율 기준선을 문서에 남겼습니다. 현재 기준은 핵심 엔진 `82%`, 채팅 메인 UI `68%`, Cowork/Code 상태 UX `63%`, 내부 설정 연결 `88%`, 전체 AX Agent 동등 품질 `74%`입니다.
|
||||
- 메인 핵심 엔진 로직에 직접 영향을 주는 설정은 최소화 원칙으로 다시 검토하기 시작했습니다. 이미 실질 선택지가 사라진 `계획 모드` 계열은 사용자 노출을 더 줄였고, 남은 엔진성 설정은 개발자 탭 중심으로 계속 정리합니다.
|
||||
- 메시지 행과 좌측 대화 목록도 `claw-code` 방향으로 다시 단순화했습니다. 사용자/assistant 버블의 패딩, 라운드, 메타 텍스트를 줄였고, 대화 목록의 실행 상태도 배지 카드보다 얇은 텍스트 요약 중심으로 바꿔 읽는 축이 먼저 보이도록 눌렀습니다.
|
||||
- 메시지 행과 좌측 대화 목록도 `기준 구조` 방향으로 다시 단순화했습니다. 사용자/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`처럼 중심선이 크게 흔들리지 않게 맞췄습니다.
|
||||
- AX Agent UI를 `기준 구조` 쪽 시각 언어에 더 가깝게 맞추기 위해 레이아웃 골격을 다시 조정했습니다. 좌측 패널 폭과 헤더/액션 행 높이, 축소 아이콘 바, 상태 스트립, 메시지 축, 컴포저 폭과 코너 반경을 전반적으로 더 얇고 평평하게 정리했습니다.
|
||||
- 반응형 폭 계산도 새 골격에 맞춰 다시 조정했습니다. 메시지 축은 최대 `880`, 컴포저는 최대 `820` 기준으로 더 자연스럽게 줄어들도록 바꿔 창 크기가 변해도 `기준 구조`처럼 중심선이 크게 흔들리지 않게 맞췄습니다.
|
||||
- 검증 예정: `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`처럼 보조 레이어로 낮췄습니다. 메시지 액션은 텍스트 버튼 대신 작은 아이콘 버튼 중심으로 바꾸고, 실행 배너는 여백·폰트·토큰 배지·파일 경로 표시를 한 단계 더 얇게 줄여 본문보다 덜 튀게 정리했습니다.
|
||||
- 메시지 내부 액션 바와 Cowork/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` 후속 호출 유도가 실제로 이어집니다.
|
||||
- `document_plan` 후속 실행 분기를 `기준 구조` 기준으로 다시 보강했습니다. 이제 문서 플래너 출력에서 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
|
||||
@@ -435,7 +437,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 이제 실행 이벤트/최근 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 개선 계획 기준을 이전 AX 비교본이 아니라 실제 `기준 구조` 런타임 축으로 다시 고정했습니다. 현재 참조 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)
|
||||
@@ -449,7 +451,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- AX Agent 채팅 전송 경로에서 빈 assistant 메시지를 먼저 대화 모델에 넣던 흐름을 제거했습니다. 이제 응답이 끝난 뒤 최종 assistant 메시지만 추가되어, 토큰은 갔는데 빈 말풍선만 남는 현상을 줄입니다.
|
||||
- 메인 설정 `TabControl`에서 구형 AX Agent 탭이 선택되더라도 내부 설정 바로가기로 즉시 우회되도록 연결해, 숨김 탭 경로로 다시 들어가는 흐름을 막았습니다.
|
||||
- 메인 설정에만 남아 있던 `Temperature`도 AX Agent 내부 설정 오버레이에 추가했습니다. 이제 내부 설정에서 값 확인과 수정이 가능하며, 포커스가 빠지면 0.0~2.0 범위로 정규화해 저장됩니다.
|
||||
- `claw-code`의 입력 처리/실행 분리 흐름을 참고해 AX Agent 내부 실행 엔진 `AxAgentExecutionEngine`을 추가했습니다. ChatWindow는 전송 메시지 조립과 최종 assistant 메시지 반영을 이 엔진으로 넘기기 시작했습니다.
|
||||
- `기준 구조`의 입력 처리/실행 분리 흐름을 참고해 AX Agent 내부 실행 엔진 `AxAgentExecutionEngine`을 추가했습니다. ChatWindow는 전송 메시지 조립과 최종 assistant 메시지 반영을 이 엔진으로 넘기기 시작했습니다.
|
||||
|
||||
|
||||
- 업데이트: 2026-04-05 07:11 (KST)
|
||||
@@ -509,7 +511,7 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
||||
- 검증: `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 로그는 자동으로 줄입니다.
|
||||
- AX Agent 루프도 `기준 구조`의 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
|
||||
@@ -600,7 +602,7 @@ dotnet publish src/AxCommander -c Release -r win-x64 --self-contained
|
||||
|
||||
### 릴리즈 게이트 실행
|
||||
|
||||
릴리즈 전에는 아래 스크립트로 빌드/패리티/리플레이/전체 테스트를 일괄 검증합니다.
|
||||
릴리즈 전에는 아래 스크립트로 빌드/벤치마크/리플레이/전체 테스트를 일괄 검증합니다.
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1
|
||||
@@ -766,7 +768,7 @@ public class MyHandler : IActionHandler
|
||||
| AX Agent 권한 UI 반영 | 권한 팝업, 상단 배너, slash 명령 결과가 새 권한 모드 의미를 표시하도록 정리 |
|
||||
| AX Agent 설정창 복구 | `AgentSettingsWindow`의 깨진 한글 문자열을 정리하고 운영 모드, 계획 모드, 추론 강도, 폴더 데이터 활용 라벨을 현재 AX 표현 체계로 복구 |
|
||||
| 권한 용어 통일 | 권한 팝업과 인라인 설정에서 `계획 중심`, `완전 자동`, `질문 없이 진행` 등 한국어 표기를 일관되게 사용하도록 정리 |
|
||||
| 권한 UI·로직 결합 정리 | `claw-code` 권한 팝업 흐름에 맞춰 코어 4개(`권한 요청/편집 자동 승인/계획 모드/권한 건너뛰기`)를 기본 선택 순서로 정렬하고, 토글 순환도 동일 축으로 단순화 |
|
||||
| 권한 UI·로직 결합 정리 | `기준 구조` 권한 팝업 흐름에 맞춰 코어 4개(`권한 요청/편집 자동 승인/계획 모드/권한 건너뛰기`)를 기본 선택 순서로 정렬하고, 토글 순환도 동일 축으로 단순화 |
|
||||
| 슬래시 팔레트 단순화 | `/` 팝업의 기본 선택을 첫 항목으로 바꾸고, 즐겨찾기 버튼/배지 UI를 제거해 `아이콘+명령+설명` 중심의 단순 리스트 탐색으로 정리 |
|
||||
| 컴포저 패널 축소 | 하단 인라인 설정을 `Fast/추론/계획/권한` 중심으로 축소하고, 스킬/브라우저/MCP 버튼은 숨겨 입력 중심 UX로 정리 |
|
||||
| 모델/프리셋 바 컴팩트화 | 입력창 상단 바를 더 촘촘한 크기로 정리하고, 긴 모델명은 자동 말줄임 처리해 레이아웃이 흔들리지 않도록 보강 |
|
||||
@@ -782,7 +784,7 @@ public class MyHandler : IActionHandler
|
||||
| 카드 아이콘 규칙 통일 | 작업 종류별 아이콘/색을 공통 매핑으로 통일하고, 작업·훅·백그라운드 카드 헤더에 아이콘을 배치해 상태 인지가 한눈에 되도록 정리 |
|
||||
| 권한 팝업 선택 강조 개선 | 권한 모드 리스트에서 활성 항목에 배경/테두리/체크 아이콘을 적용하고 설명 줄간격·아이콘 정렬을 조정해 선택 상태와 읽기 흐름을 명확화 |
|
||||
| 권한 예외/거부 영역 압축 | 권한 팝업의 `도구별 예외`와 `최근 권한 거부` 블록을 아이콘 헤더+간결 라벨 체계로 정리하고 버튼 명칭을 권한 용어(`권한 요청/편집 자동 승인/활용하지 않음/예외 해제`)로 통일 |
|
||||
| 권한 팝업 섹션 접힘/펼침 | 기본 화면은 `핵심 권한 모드`만 노출하고 `현재 권한 요약/도구별 예외/최근 권한 거부/고급 모드`는 접힘 섹션으로 전환해 codex/claude식 간결 흐름으로 정리 |
|
||||
| 권한 팝업 섹션 접힘/펼침 | 기본 화면은 `핵심 권한 모드`만 노출하고 `현재 권한 요약/도구별 예외/최근 권한 거부/고급 모드`는 접힘 섹션으로 전환해 업무형 간결 흐름으로 정리 |
|
||||
| 권한 팝업 섹션 상태 기억 | 접힘 섹션의 마지막 펼침 상태를 `settings.dat`에 저장해 팝업 재오픈 시 사용자 마지막 선택을 복원 |
|
||||
| 슬래시 팔레트 그룹 상태 기억 | `/` 팔레트에 `명령/스킬` 접힘 헤더를 추가하고 마지막 펼침 상태를 저장해 재오픈 시 복원, Up/Down 이동도 펼쳐진 그룹 항목만 순회하도록 보정 |
|
||||
| 슬래시 최근 사용 상단 고정 | `/` 팔레트의 `명령/스킬` 그룹 내부 항목을 최근 사용(MRU) 기준으로 상단 정렬하고 `최근` 배지를 표시, 선택 스크롤도 실제 렌더 항목 기준으로 정확히 보정 |
|
||||
@@ -796,12 +798,12 @@ public class MyHandler : IActionHandler
|
||||
| 설정 즉시 반영 가시성 보강 | AX Agent 설정의 슬래시 핀/최근 상한 항목에 `저장 후 즉시 반영` 안내를 추가해 조작 결과를 명확히 인지하도록 정리 |
|
||||
| 회귀 패키지 통과 | 전체 테스트 436개 통과로 슬래시/권한/설정 저장 경로 변경 후 회귀 안정성 확보 |
|
||||
| 슬래시 탐색 입력 확장 | `/` 팝업에서 휠/방향키 외에 `PageUp/PageDown/Home/End` 이동을 추가하고 고해상도 휠 델타를 단계 이동으로 보정해 스크롤 사용성을 개선 |
|
||||
| 모델 빠른설정 단일 라인 강화 | 입력창 상단 모델 버튼을 AX Agent 내부 빠른 설정 토글로 전환하고, 모델/프리셋 버튼 높이와 패딩을 정돈해 Codex/Claude형 단일 라인 흐름에 맞춤 |
|
||||
| 모델 빠른설정 단일 라인 강화 | 입력창 상단 모델 버튼을 AX Agent 내부 빠른 설정 토글로 전환하고, 모델/프리셋 버튼 높이와 패딩을 정돈해 업무형 단일 라인 흐름에 맞춤 |
|
||||
| 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`)를 운영 모드 포함 축약형으로 정리하고 권한 버튼 툴팁에 동일 정보를 반영 |
|
||||
@@ -829,10 +831,10 @@ public class MyHandler : IActionHandler
|
||||
| 슬래시 네비게이션 입력 보강 | 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 개편 기반 마련 |
|
||||
| 권한 팝업 밀도/정렬 미세조정 | 권한 행의 패딩·폰트·아이콘·체크마크 간격을 컴팩트하게 재정렬하고 요약 카드 타이포를 축소해 `기준 구조` 스타일의 빠른 스캔 밀도를 강화 |
|
||||
| Slash palette 상태 분리 시작 | `ChatWindow`에 몰려 있던 slash 상태를 `SlashPaletteState`로 분리해 이후 업무형 composer 개편 기반 마련 |
|
||||
| 런처 이미지 미리보기 추가 | `#` 클립보드 이미지 항목에서 `Shift+Enter`로 전용 미리보기 창을 열고, 줌·원본 해상도 확인·PNG/JPEG/BMP 저장·클립보드 복사를 지원 |
|
||||
| AX Agent 모델 선택 단순화 | AX Agent 서비스 설정에서 내부 서비스 모델 선택을 등록 모델 칩 중심으로 고정하고, 채팅 오버레이/보조 설정창의 숨은 모델 텍스트 입력 의존을 제거 |
|
||||
| vLLM SSL 위치 정리 | 전역 서비스 설정/채팅 오버레이에서 vLLM SSL 우회 노출을 걷어내고, 모델 등록/편집 다이얼로그에서만 모델별로 설정하도록 정리 |
|
||||
@@ -1107,7 +1109,7 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- [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` 기준으로 한 단계 더 분리했습니다.
|
||||
- AX Agent 실행 경로를 `기준 구조` 기준으로 한 단계 더 분리했습니다.
|
||||
- [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
|
||||
@@ -1164,12 +1166,12 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 검증: `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`처럼 입력과 전송에 더 집중된 구조로 단순화했습니다.
|
||||
- AX Agent 채팅 UI는 `기준 구조` 기준으로 다시 정리하기 전에 현재 상태를 `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` 기준으로 넓히면서 입력 셸을 하나의 안정적인 하단 컬럼으로 다시 정리했습니다. 같은 수정에서 컴포저 안의 `대화 내보내기` 버튼은 숨겨 `기준 구조`처럼 입력과 전송에 더 집중된 구조로 단순화했습니다.
|
||||
- [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` 기준으로 더 밀 때도 준비 로직은 엔진 한 곳만 고치면 되게 정리했습니다.
|
||||
- 이 변경으로 `SendMessageAsync()`와 `SendRegenerateAsync()`가 각자 따로 Cowork/Code 시스템 프롬프트와 실행 모드를 계산하던 중복 분기가 줄었고, 이후 Cowork/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()`로 묶었습니다. 전송과 재생성이 같은 정리 경로를 공유하게 해서, 응답 완료 뒤 상태 복구와 대화 저장, 대기열 완료/실패 처리 흐름도 더 한 축으로 정리했습니다.
|
||||
@@ -1184,8 +1186,8 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- `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` 축으로 넓히면서 라운드와 그림자를 조금 눌러, 화면 장식보다는 메시지/입력 흐름이 먼저 보이게 다듬은 단계입니다.
|
||||
- 이어서 구형 본문 재시도 카드도 제거했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AddRetryButton()` 경로를 걷어내고, 실패 시에는 본문에 임시 재시도 카드를 꽂지 않고 짧은 토스트로만 안내한 뒤 작업 요약/실패 이력 쪽 재시도 액션을 사용하도록 정리했습니다. 본문을 메시지와 상태 중심으로 유지하는 `기준 구조` 방향에 더 가깝게 맞춘 것입니다.
|
||||
- UI도 `기준 구조` 기준으로 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)
|
||||
@@ -1202,11 +1204,11 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 업데이트: 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 메시지 카드의 좌우 마진, 코너 라운드, 패딩, 폰트 크기, 타임스탬프 크기를 전반적으로 낮췄습니다.
|
||||
- 메시지 행 UI도 `기준 구조` 기준으로 한 단계 더 눌렀습니다. [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` 폭을 함께 다시 계산하도록 연결했습니다.
|
||||
- 폭 계산도 `기준 구조`처럼 반응형으로 다시 맞췄습니다. [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`의 높이, 패딩, 아이콘/폰트 크기를 함께 낮춰 입력축보다 옵션 카드가 먼저 튀지 않게 정리했습니다.
|
||||
- 이어서 컴포저 상단 구조도 `기준 구조` 방향으로 더 눌렀습니다. [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는 더 보조적인 레이어로 남고, 메시지 본문이 먼저 읽히는 쪽으로 가까워졌습니다.
|
||||
@@ -1215,40 +1217,40 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 같은 축으로 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 헤더 아이콘/이름 크기를 한 단계 더 낮춰 본문 텍스트가 더 먼저 읽히도록 조정했습니다.
|
||||
- 메시지 자체 메타와 완료 카드 문구도 더 `기준 구조` 쪽으로 눌렀습니다. [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 실행 타임라인 배너도 더 `기준 구조`처럼 얇게 줄였습니다. [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) 에서 상단 탭 버튼의 폰트/패딩/코너를 다시 낮추고, 탭 그룹 래퍼와 제목 서브 바의 높이와 패딩도 함께 줄였습니다.
|
||||
- 상단 헤더도 더 `기준 구조` 쪽 밀도로 줄였습니다. [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](/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(...)` 에서 계획 카드 라운드, 패딩, 헤더 아이콘/텍스트, 진행률 텍스트, 단계 행 폰트를 전반적으로 줄였고, 계획 헤더 문구도 더 짧게 정리했습니다.
|
||||
- 큰 카드형 요소도 더 `기준 구조` 쪽으로 눌렀습니다. [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`처럼 차분한 상태가 됐습니다.
|
||||
- 같은 변경에서 계획 이벤트는 기본적으로 큰 카드가 아니라 얇은 요약 pill로만 보이고, `debug` 로그일 때만 `AddPlanningCard(...)`가 펼쳐지도록 바꿨습니다. 문서형 Cowork/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](/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`처럼 목록 자체가 먼저 튀지 않도록 정리했습니다.
|
||||
- 대화 목록 행 카드와 축소 아이콘 바도 같은 시각 언어로 더 정리했습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 `AddConversationItem(...)`에서 선택 강조 배경과 좌측 액센트 바 두께를 더 얇게 줄이고, 행 패딩/아이콘/폰트/배지 크기를 전반적으로 낮춰 `기준 구조`처럼 목록 자체가 먼저 튀지 않도록 정리했습니다.
|
||||
- `진행 중`, `성공`, `실패` 배지와 실행 요약 텍스트도 더 작고 중립적인 톤으로 줄였고, 호버 시 확대 애니메이션은 제거해 목록이 더 차분하게 반응하도록 맞췄습니다. 편집 버튼도 더 작은 규격과 낮은 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`로 고정해, 코워크/코드에서 매번 계획 승인 팝업이 뜨지 않도록 바꿨습니다.
|
||||
- `기준 구조` 기준으로 계획 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 메인 레이아웃의 사이드바 폭, 메시지 축, 빈 상태 카드, 컴포저 외곽선을 더 압축해 메시지 중심 구조로 다시 정리했고, 상단/보조 스트립과 토큰 카드 노출도 더 보수적으로 줄였습니다.
|
||||
- `기준 구조` 기준 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)
|
||||
@@ -1259,21 +1261,21 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 같은 변경에서 `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%` 정도입니다.
|
||||
- AX Agent 메인 UI도 `기준 구조` 기준으로 한 번 더 크게 재배치했습니다. [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` 축으로 다시 맞춰 창이 줄어들 때 `기준 구조`처럼 더 자연스럽게 따라가도록 조정했습니다.
|
||||
- 현재 `기준 구조` 대비 추정 진척율은 핵심 엔진 `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%` 정도입니다.
|
||||
- 같은 변경에서 `BuildHookSummaryCard(...)`, `BuildActiveBackgroundSummaryCard(...)`, `BuildRecentBackgroundJobCard(...)`, `AddTaskSummaryObservabilitySections(...)`를 더 보수적으로 정리해 훅/백그라운드/권한 이력이 기본 팝업을 점유하지 않게 했습니다. 백그라운드 작업은 현재 활성 상태만 짧게 요약하고, 세부 이동/필터 버튼은 대부분 제거해 `기준 구조`처럼 “필요할 때만 보이는 진단 패널”에 가깝게 맞췄습니다.
|
||||
- 현재 `기준 구조` 대비 추정 진척율은 핵심 엔진 `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%` 정도입니다.
|
||||
- 현재 `기준 구조` 대비 추정 진척율은 핵심 엔진 `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 스타일을 되돌려 폰트와 패딩을 키우고, 래퍼 패딩도 약간 넓혀 예전처럼 더 또렷하게 보이도록 조정했습니다.
|
||||
@@ -1294,9 +1296,9 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 탭 래퍼 배경은 `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` 은 단순 카운트가 있을 때 자동 노출되지 않고, 사용자가 실제로 `진행 중만 보기` 또는 정렬 전환을 켰을 때만 보이도록 바꿨습니다.
|
||||
- `기준 구조`의 `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가 아니면 계획이 카드 형태로 본문을 밀어내지 않습니다.
|
||||
- `AgentEventType.Planning` 도 더 `기준 구조`처럼 기본 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`으로 넓히고 `새 대화`, `검색`, 필터 드롭다운, 탭별 메뉴의 폰트/패딩/아이콘을 전반적으로 키워 첫 번째 레퍼런스 이미지처럼 더 읽기 쉽게 정리했습니다.
|
||||
@@ -1304,7 +1306,7 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 하단 컨텍스트 사용량 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 차이, 런타임 영향 설정 정리안을 기록했습니다.
|
||||
- `기준 구조` 대비 AX Agent 남은 차이와 제거 후보 설정도 다시 정리했습니다. [docs/AX_AGENT_EXECUTION_IMPROVEMENT_PLAN.md](/E:/AX%20Copilot%20-%20Codex/docs/AX_AGENT_EXECUTION_IMPROVEMENT_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)
|
||||
@@ -1320,18 +1322,18 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 업데이트: 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와 상태선이 더 차분하게 유지되도록 맞춘 변경입니다.
|
||||
- Cowork/Code 상태바 소음도 줄였습니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `UpdateStatusBar(...)` 는 이제 `debug` 로그가 아닐 때 `ToolCall`, `SkillCall`, `Paused`, `Resumed` 이벤트로 상태줄을 흔들지 않습니다. `기준 구조`처럼 기본 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 요약은 이제 기본적으로 `실행 / 다음 / 실패`만 표시하고, `보류`, `완료` 배지는 `상세 보기`를 펼쳤을 때만 보입니다.
|
||||
- Cowork/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는 기본 상태에서 `실행 / 다음 / 실패`가 하나도 없으면 아예 접히도록 바꿨습니다. 완료/보류만 남은 경우에는 기본 화면에서 보이지 않습니다.
|
||||
- 하단 보조 UI도 더 `기준 구조`처럼 최소 노출로 조정했습니다. [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)
|
||||
@@ -1343,13 +1345,13 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 같은 파일의 `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/재시도 대기만으로는 기본 헤더를 흔들지 않습니다.
|
||||
- `기준 구조` 기준으로 남아 있던 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) 의 운영 상태 요약도 더 `기준 구조`처럼 조용하게 맞췄습니다. 기본 `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로 보이게 맞춘 변경입니다.
|
||||
- [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs) 의 `RuntimeLabel` 도 queue/재시도 대기 수를 기본 라벨에서 제거해 `실행 / 승인 대기 / 백그라운드` 중심으로 단순화했습니다. `기준 구조`처럼 기본 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)
|
||||
@@ -1370,11 +1372,11 @@ ow + toggle 시각 언어로 통일했습니다.
|
||||
- 이번 정리 후 추정 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단계 + 진행률 + 펼치기` 요약만 먼저 보여줍니다. 필요할 때만 `펼치기/접기`로 상세 단계를 보게 해 본문 읽기 흐름을 덜 방해하도록 조정했습니다.
|
||||
- transcript UI 마감 쪽으로 계획 카드도 더 `기준 구조`처럼 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가 있을 때만 뜨도록 더 보수적으로 조정했습니다.
|
||||
- 마지막 transcript polish로 하단 상태 메타와 quick strip도 더 `기준 구조`처럼 조용하게 맞췄습니다. [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)
|
||||
@@ -1455,7 +1457,7 @@ MIT License
|
||||
- 업데이트: 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 고정까지 포함한 품질 향상 계획을 문서에 구체화했다.
|
||||
- `기준 구조`와 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)
|
||||
@@ -1469,7 +1471,7 @@ MIT License
|
||||
- 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)를 추가해 권한 프리뷰 카드의 제목/요약/본문 박스 구조를 공통화했다.
|
||||
- `기준 구조`의 `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)
|
||||
@@ -1486,7 +1488,7 @@ MIT License
|
||||
- 업데이트: 2026-04-05 22:36 (KST)
|
||||
- AX Agent 내부 설정 `도구 훅 실행 타임아웃`과 `등록된 훅` 영역에서 잘림이 보이던 레이아웃을 보정했다. 슬라이더/값 배지 컬럼 폭과 `훅 추가` 버튼 최소 폭을 넉넉히 늘려 텍스트와 컨트롤이 서로 밀리지 않게 정리했다.
|
||||
- 업데이트: 2026-04-05 22:40 (KST)
|
||||
- AX Agent 테마를 다시 점검해 기존 `Claw / Codex / Slate` 외에 `Nord`, `Ember` 2종을 추가했다. `Nord`는 차분한 블루그레이 업무형 톤, `Ember`는 따뜻한 앰버 문서 작업 톤으로 구성했다.
|
||||
- AX Agent 테마를 다시 점검해 기존 프리셋 외에 `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)에서 분리했다.
|
||||
@@ -1496,7 +1498,7 @@ MIT License
|
||||
- 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`를 사용자 선택값으로 저장하지 않는다.
|
||||
- 업데이트: 2026-04-06 01:24 (KST)
|
||||
- `claw-code` 기준 transcript 품질 향상을 위해 권한 요청/도구 결과/도구 이름 display catalog를 다시 정리했다. [AgentTranscriptDisplayCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentTranscriptDisplayCatalog.cs)는 파일/문서/빌드/Git/웹/스킬/질문 카테고리를 더 명확한 한국어 display name과 badge label로 분류하고, [PermissionRequestPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs)는 `명령 실행 / 웹 요청 / 스킬 실행 / 의견 요청 / 파일 수정 / 파일 접근` 권한 요청을 타입별 presentation으로 나누도록 보강했다.
|
||||
- `기준 구조` 기준 transcript 품질 향상을 위해 권한 요청/도구 결과/도구 이름 display catalog를 다시 정리했다. [AgentTranscriptDisplayCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentTranscriptDisplayCatalog.cs)는 파일/문서/빌드/Git/웹/스킬/질문 카테고리를 더 명확한 한국어 display name과 badge label로 분류하고, [PermissionRequestPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs)는 `명령 실행 / 웹 요청 / 스킬 실행 / 의견 요청 / 파일 수정 / 파일 접근` 권한 요청을 타입별 presentation으로 나누도록 보강했다.
|
||||
- [ToolResultPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ToolResultPresentationCatalog.cs)는 `success / error / reject / cancel`을 도구 종류에 따라 `파일 작업 완료`, `빌드/테스트 실패`, `웹 요청 거부`처럼 더 읽기 쉬운 결과 라벨로 바꾸도록 확장했다.
|
||||
- transcript renderer 분리 2차로 [ChatWindow.AgentEventRendering.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.AgentEventRendering.cs)를 추가해 `CreateCompactEventPill`, `AddAgentEventBanner`, `GetDecisionBadgeMeta`를 메인 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 밖으로 옮겼다. 이제 메인 파일은 대화 흐름과 상태 처리에 더 집중하고, 이벤트 배너 렌더는 별도 partial에서 관리한다.
|
||||
- 업데이트: 2026-04-06 09:36 (KST)
|
||||
@@ -1538,9 +1540,9 @@ MIT License
|
||||
- footer 작업 바의 chip 버튼 시각 언어를 맞췄다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml)에 `FooterChipBtn` 스타일을 추가하고, 하단의 `권한`, `Git 브랜치` 버튼이 같은 라운드/테두리/패딩 규칙을 쓰도록 정리했다.
|
||||
- 이 단계는 구조 분리 이후의 visual polish 후속 작업으로, footer의 기능 버튼이 각각 다른 컨트롤처럼 보이던 차이를 줄이고 작업 바 전체를 하나의 도구 행처럼 느끼게 만드는 데 초점을 맞췄다.
|
||||
- 업데이트: 2026-04-06 11:52 (KST)
|
||||
- `claw-code` 대비 남아 있던 `도구/권한/스킬 표현 정교화` 1차를 반영했다. [PermissionRequestPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs)는 `bash`, `powershell`, `command`, `web_fetch`, `mcp`, `skill`, `question`, `file_edit`, `file_write`, `git`, `document`, `filesystem`까지 세분화하고 `ActionHint`, `Severity`, `RequiresPreview` 메타를 추가했다.
|
||||
- `기준 구조` 대비 남아 있던 `도구/권한/스킬 표현 정교화` 1차를 반영했다. [PermissionRequestPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs)는 `bash`, `powershell`, `command`, `web_fetch`, `mcp`, `skill`, `question`, `file_edit`, `file_write`, `git`, `document`, `filesystem`까지 세분화하고 `ActionHint`, `Severity`, `RequiresPreview` 메타를 추가했다.
|
||||
- [ToolResultPresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ToolResultPresentationCatalog.cs)는 기존 `success / error / reject / cancel`에 더해 `approval_required`, `partial` 상태와 `FollowUpHint`, `NeedsAttention` 메타를 추가해 후속 안내 품질을 높일 기반을 마련했다.
|
||||
- [SkillGalleryWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SkillGalleryWindow.xaml.cs)는 스킬 상세에 `모델`, `추론 강도`, `실행 컨텍스트`, `에이전트`, `모델 호출 비활성화`, `추천 상황`을 표시하도록 확장해, AX 스킬도 `claw-code`처럼 실행 정책이 보이는 방향으로 정리했다.
|
||||
- [SkillGalleryWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/SkillGalleryWindow.xaml.cs)는 스킬 상세에 `모델`, `추론 강도`, `실행 컨텍스트`, `에이전트`, `모델 호출 비활성화`, `추천 상황`을 표시하도록 확장해, AX 스킬도 `기준 구조`처럼 실행 정책이 보이는 방향으로 정리했다.
|
||||
- 업데이트: 2026-04-06 13:01 (KST)
|
||||
- [ChatWindow.AgentEventRendering.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.AgentEventRendering.cs)에 `AppendAgentEventPresentationMeta(...)`와 공통 chip helper를 추가해, 권한 요청/도구 결과 metadata를 실제 transcript 카드에 반영했다.
|
||||
- 권한 요청 이벤트는 이제 `ActionHint`, `Severity`, `RequiresPreview`를 이용해 `미리보기 권장`, `주의 필요`, `검토 권장` 같은 보조 chip과 안내 문구를 보여준다.
|
||||
@@ -1578,7 +1580,7 @@ MIT License
|
||||
- 업데이트: 2026-04-06 16:02 (KST)
|
||||
- 코워크 문서 생성이 항상 비슷한 HTML로 수렴하던 원인을 줄이기 위해 [DocumentPlannerTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocumentPlannerTool.cs), [DocumentAssemblerTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DocumentAssemblerTool.cs)의 기본 포맷/무드 선택 로직을 재정리했다.
|
||||
- 이제 인자 없이 문서 생성 도구를 호출해도 무조건 `html + professional`로 고정되지 않고, `DefaultOutputFormat`, `DefaultMood`, 문서 유형(`proposal`, `analysis`, `manual`, `minutes` 등), 요청 주제 키워드를 함께 보고 `docx/html/markdown` 및 `corporate/dashboard/minimal/creative/professional`을 자동 선택한다.
|
||||
- 이 변경으로 AX의 문서 생성 체인이 `claw-code`처럼 요청 기반 자유 작성 흐름에 더 가까워졌고, 코워크 결과물이 항상 비슷한 보고서형 HTML로 반복되던 현상을 줄일 기반을 마련했다.
|
||||
- 이 변경으로 AX의 문서 생성 체인이 `기준 구조`처럼 요청 기반 자유 작성 흐름에 더 가까워졌고, 코워크 결과물이 항상 비슷한 보고서형 HTML로 반복되던 현상을 줄일 기반을 마련했다.
|
||||
- 업데이트: 2026-04-06 16:14 (KST)
|
||||
- 배포판 보호 수준을 점검한 뒤 [AxCopilot.csproj](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/AxCopilot.csproj) Release 설정에 `Optimize`, `PublishSingleFile`, `EnableCompressionInSingleFile`, `IncludeNativeLibrariesForSelfExtract`, `PublishReadyToRun`을 추가했다.
|
||||
- [build.bat](/E:/AX%20Copilot%20-%20Codex/build.bat) 도 같은 publish 속성을 명시적으로 넘기도록 갱신해, 배치 파일로 배포판을 만들 때 실제로 `Release + self-contained + single-file + ReadyToRun` 조합이 적용되도록 맞췄다.
|
||||
@@ -1640,9 +1642,9 @@ MIT License
|
||||
- [SnippetExpander.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Core/SnippetExpander.cs)는 추적 중이 아닐 때 `;` 시작 키 외에는 즉시 반환하도록 바꿨다. 이전에는 일반 타이핑 중에도 모든 키마다 `Ctrl/Alt/Shift` 상태를 읽고 버퍼 로직을 거쳤는데, 이제는 실제 스니펫 시작 상황에서만 그런 검사를 하게 되어 글로벌 키보드 훅의 평상시 부담을 줄였다.
|
||||
업데이트: 2026-04-06 20:18 (KST)
|
||||
- AX Agent 메시지 마크다운 렌더에 코드 심볼 강조를 추가해 Cowork/Code 답변의 파일 경로·camelCase/PascalCase·snake_case가 더 선명하게 보이도록 조정했다.
|
||||
- 코드 탭 입력부 위에 저장소/브랜치/변경 수치를 보여주는 Git 요약 배너를 추가해 `claude-code` 스타일의 repo context를 더 빠르게 읽을 수 있게 맞췄다.
|
||||
- 코드 탭 입력부 위에 저장소/브랜치/변경 수치를 보여주는 Git 요약 배너를 추가해 `기준 구조` 스타일의 repo context를 더 빠르게 읽을 수 있게 맞췄다.
|
||||
- 업데이트: 2026-04-06 20:28 (KST)
|
||||
- AX Agent 코드 탭 입력부 위 저장소 요약줄을 더 `claude-code` 스타일에 가깝게 정리했습니다. `로컬/워크트리`, `upstream` 상태를 얇은 배지로 표시하고, 변경이 있을 때 액션 문구가 `변경 · 브랜치 보기`로 바뀌도록 했습니다.
|
||||
- AX Agent 코드 탭 입력부 위 저장소 요약줄을 더 `기준 구조` 스타일에 가깝게 정리했습니다. `로컬/워크트리`, `upstream` 상태를 얇은 배지로 표시하고, 변경이 있을 때 액션 문구가 `변경 · 브랜치 보기`로 바뀌도록 했습니다.
|
||||
- 코드 탭 저장소 요약줄에 `리뷰` 배지를 추가해 기존 slash 명령 `/review`로 바로 이어지게 했습니다. 입력 중인 문구가 있으면 유지한 채 리뷰 흐름만 얹도록 조정했습니다.
|
||||
- 업데이트: 2026-04-06 20:34 (KST)
|
||||
- Claude 라이트/시스템 테마의 표면 위계를 다시 맞췄습니다. 본문 기본 배경은 흰색으로, 좌측 패널과 카드 표면은 더 짙은 웜 베이지 톤으로 조정해서 사용자가 요청한 방향대로 역할이 뒤바뀌지 않게 정리했습니다.
|
||||
@@ -1656,10 +1658,10 @@ MIT License
|
||||
- AX Agent 내부 설정의 `Fast` 표기를 `Gemini 무료 티어 대기`로 바꾸고 설명 문구도 실제 동작 기준으로 수정했습니다. 사용자는 이제 내부 설정에서 이 대기를 명확히 끄고 켤 수 있습니다.
|
||||
- Cowork/Code 중간 진행 정보가 hover처럼 우연히만 보이던 문제를 줄이기 위해 에이전트 이벤트 카드 스타일을 다시 조정했습니다. 단계 시작, 도구 호출, 대기/생각 중 상태가 더 큰 글씨와 얇은 배경 카드로 기본 노출되도록 정리해, 장시간 작업 중에도 “지금 무엇을 하는지”를 본문에서 바로 읽을 수 있게 했습니다.
|
||||
- 업데이트: 2026-04-06 22:31 (KST)
|
||||
- AX Agent의 중간 처리 메시지 형식을 `claw-code`에 더 가깝게 재정리했습니다. `Thinking / ToolCall / StepStart / Planning` 계열은 작은 상태칩보다 `요약줄 + 본문 설명` 구조로 보이게 바꿔, 장시간 작업 중 “무슨 작업을 하고 있는지”를 일반 메시지처럼 읽을 수 있게 했습니다.
|
||||
- 진행 메시지의 요약줄은 좌측 chevron과 보조 텍스트 중심으로 정리하고, 상세 설명은 바로 아래 본문 텍스트로 분리해 `claw-code / Claude Code`의 처리 메시지 밀도와 감각에 더 가깝게 맞췄습니다.
|
||||
- AX Agent의 중간 처리 메시지 형식을 `기준 구조`에 더 가깝게 재정리했습니다. `Thinking / ToolCall / StepStart / Planning` 계열은 작은 상태칩보다 `요약줄 + 본문 설명` 구조로 보이게 바꿔, 장시간 작업 중 “무슨 작업을 하고 있는지”를 일반 메시지처럼 읽을 수 있게 했습니다.
|
||||
- 진행 메시지의 요약줄은 좌측 chevron과 보조 텍스트 중심으로 정리하고, 상세 설명은 바로 아래 본문 텍스트로 분리해 `기준 구조 / 기준 구조`의 처리 메시지 밀도와 감각에 더 가깝게 맞췄습니다.
|
||||
- 업데이트: 2026-04-06 22:42 (KST)
|
||||
- AX Agent의 라이브 대기/압축 진행 힌트를 `claw-code`처럼 더 읽기 쉬운 진행 한 줄로 보강했습니다. 이제 Cowork/Code에서 오래 걸릴 때 `처리 중...`, `컨텍스트 압축 중...` 같은 요약줄이 transcript에 살아 있는 진행 상태로 나타납니다.
|
||||
- AX Agent의 라이브 대기/압축 진행 힌트를 `기준 구조`처럼 더 읽기 쉬운 진행 한 줄로 보강했습니다. 이제 Cowork/Code에서 오래 걸릴 때 `처리 중...`, `컨텍스트 압축 중...` 같은 요약줄이 transcript에 살아 있는 진행 상태로 나타납니다.
|
||||
- 같은 진행 줄 우측에는 `경과 시간`과 `현재 누적 토큰`이 함께 표시되어, 사용자가 “지금 멈춘 건지 아직 처리 중인지”를 기다릴 근거와 함께 바로 확인할 수 있게 조정했습니다.
|
||||
- 업데이트: 2026-04-06 22:48 (KST)
|
||||
- AX Agent의 라이브 대기 진행 줄에 작은 펄스 애니메이션을 추가했습니다. 오래 걸리는 `처리 중...`, `컨텍스트 압축 중...` 상태는 이제 좌측 마커가 은은하게 살아 움직여, 멈춘 로그가 아니라 실제 진행 중인 상태라는 점이 더 분명하게 보입니다.
|
||||
@@ -1668,7 +1670,7 @@ MIT License
|
||||
- [IndexService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/IndexService.cs) 에는 `tmp/cache/log/bak/crdownload` 같은 임시 파일과 숨김/시스템 경로, `~$` Office 임시 파일을 색인/감시 대상에서 제외하는 규칙을 추가했습니다. 불필요한 증분 갱신과 재색인 노이즈를 줄여 런처가 백그라운드에서 먹는 CPU와 디스크 I/O를 완화하는 목적입니다.
|
||||
- [LauncherWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/LauncherWindow.xaml.cs)의 인덱스 상태 타이머는 매 호출마다 새 인스턴스를 만들지 않고 재사용하도록 바꿨고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)는 창이 숨김/최소화된 동안 transcript 재렌더를 지연했다가 다시 보일 때 한 번만 반영하도록 정리해 AX Agent 백그라운드 부담을 줄였습니다.
|
||||
- 업데이트: 2026-04-06 23:26 (KST)
|
||||
- AX Agent의 중간 진행 메시지를 `claw-code`에 더 가깝게 마무리했습니다. execution history를 접어 둔 상태에서도 `처리 중...`, `컨텍스트 압축 중...`, 중요한 thinking/tool 진행 이벤트는 transcript에 계속 보이도록 필터를 조정했습니다.
|
||||
- AX Agent의 중간 진행 메시지를 `기준 구조`에 더 가깝게 마무리했습니다. execution history를 접어 둔 상태에서도 `처리 중...`, `컨텍스트 압축 중...`, 중요한 thinking/tool 진행 이벤트는 transcript에 계속 보이도록 필터를 조정했습니다.
|
||||
- 진행 줄 스타일도 카드형 박스보다 더 평평한 요약줄 위주로 정리했습니다. 일반 진행 이벤트는 borderless line처럼 보이고, 실제 장기 대기/압축 상태만 은은한 강조 배경과 펄스 마커를 유지해 “지금 살아 있는 작업”만 더 잘 드러나게 맞췄습니다.
|
||||
- 업데이트: 2026-04-06 23:33 (KST)
|
||||
- 런처 검색 반응성을 높이기 위해 [FuzzyEngine.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Core/FuzzyEngine.cs)에 인덱스 버전 기준 쿼리 캐시를 추가했습니다. 색인이 같은 상태에서 반복 입력되는 쿼리는 결과를 다시 전부 계산하지 않고 즉시 재사용합니다.
|
||||
@@ -1676,7 +1678,7 @@ MIT License
|
||||
- AX Agent는 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 최소화/백그라운드 상태일 때 task summary, 입력 보조 UI, 에이전트 상태 반영을 즉시 다시 그리지 않고 대기시켰다가 다시 활성화될 때 한 번에 flush 하도록 바꿨습니다.
|
||||
- 업데이트: 2026-04-06 23:49 (KST)
|
||||
- AX Agent 메모리 구조 강화를 시작했습니다. [AgentMemoryService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AgentMemoryService.cs)에 `관리형 / 사용자 / 프로젝트 / 로컬` 계층형 메모리 문서 로더를 추가해 `AXMEMORY.md`, `AXMEMORY.local.md`, `.ax/rules/*.md` 계열 파일을 현재 작업 폴더까지 발견하고 로드합니다.
|
||||
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 시스템 프롬프트 메모리 섹션도 계층형 메모리 + 기존 학습 메모리를 함께 조립하도록 바꿨습니다. 이제 AX는 `claw-code`처럼 지속 메모리를 단순 전역/폴더 저장이 아니라 계층형 지시문 + 학습형 메모리의 조합으로 주입합니다.
|
||||
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 시스템 프롬프트 메모리 섹션도 계층형 메모리 + 기존 학습 메모리를 함께 조립하도록 바꿨습니다. 이제 AX는 `기준 구조`처럼 지속 메모리를 단순 전역/폴더 저장이 아니라 계층형 지시문 + 학습형 메모리의 조합으로 주입합니다.
|
||||
- 업데이트: 2026-04-06 23:57 (KST)
|
||||
- [MemoryTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/MemoryTool.cs)를 확장해 계층형 메모리 관리 액션을 추가했습니다. 이제 `/memory`는 기존 학습 메모리 `save/search/list/delete` 외에 `save_scope`, `delete_scope`를 통해 `managed / user / project / local` 메모리 파일을 직접 다룰 수 있습니다.
|
||||
- [AgentMemoryService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AgentMemoryService.cs) 에는 계층형 메모리 파일의 실제 저장/삭제 경로를 결정하고 내용을 append/remove 하는 로직을 추가했습니다. AX 메모리 구조가 이제 `읽기 전용 계층`이 아니라 `학습 메모리 + 계층형 메모리 파일`을 함께 관리하는 형태로 한 단계 더 올라왔습니다.
|
||||
@@ -1684,11 +1686,11 @@ MIT License
|
||||
- [AgentMemoryService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AgentMemoryService.cs)에 `@include` 확장을 추가했습니다. 이제 `AXMEMORY.md` 안에서 `@./docs/architecture.md`, `@~/shared/rules.md`, 절대 경로 include를 사용할 수 있고, 텍스트 파일만 최대 5단계까지 재귀적으로 펼칩니다.
|
||||
- 같은 파일에서 프로젝트 루트 판단도 강화했습니다. 이제 단순 현재 작업 폴더가 아니라 `.git`, `.sln`, `*.csproj`, `package.json`, `pyproject.toml`, `go.mod`, `Cargo.toml` 같은 마커를 보고 프로젝트 루트를 먼저 잡은 뒤, 그 루트부터 현재 작업 디렉토리까지의 메모리 계층을 조립합니다.
|
||||
- 업데이트: 2026-04-07 00:13 (KST)
|
||||
- `claw-code`처럼 외부 메모리 include를 무조건 열어두지 않도록 안전 장치를 추가했습니다. [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)에 `외부 메모리 include 허용` 설정을 추가했고 기본값은 `꺼짐`입니다.
|
||||
- `기준 구조`처럼 외부 메모리 include를 무조건 열어두지 않도록 안전 장치를 추가했습니다. [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)에 `외부 메모리 include 허용` 설정을 추가했고 기본값은 `꺼짐`입니다.
|
||||
- [AgentMemoryService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AgentMemoryService.cs)는 이 설정이 꺼져 있으면 프로젝트 바깥으로 빠지는 상대 경로, 홈 경로(`@~/...`), 절대 경로 include를 모두 차단합니다. 즉 메모리 내용 관리는 계속 `/memory` 같은 명령으로 하되, include의 보안 정책만 설정으로 다루는 구조로 정리했습니다.
|
||||
- 업데이트: 2026-04-07 00:22 (KST)
|
||||
- [AgentMemoryService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AgentMemoryService.cs)에 `paths:` frontmatter 지원을 추가해 `.ax/rules/*.md` 같은 계층형 메모리 문서가 특정 작업 폴더 범위에서만 적용되도록 했습니다.
|
||||
- 이제 메모리 문서 상단에 `---`, `paths:`, `- src/**`, `---` 형태를 쓰면 현재 작업 폴더가 프로젝트 루트 기준으로 그 패턴에 맞을 때만 로드됩니다. AX 메모리 규칙을 `claw-code`의 경로별 rule 파일처럼 더 세밀하게 제어할 수 있습니다.
|
||||
- 이제 메모리 문서 상단에 `---`, `paths:`, `- src/**`, `---` 형태를 쓰면 현재 작업 폴더가 프로젝트 루트 기준으로 그 패턴에 맞을 때만 로드됩니다. AX 메모리 규칙을 `기준 구조`의 경로별 rule 파일처럼 더 세밀하게 제어할 수 있습니다.
|
||||
- 업데이트: 2026-04-07 00:31 (KST)
|
||||
- [AgentMemoryService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AgentMemoryService.cs)에 `description:` frontmatter 메타를 추가해 계층형 메모리 규칙 파일이 “무엇을 위한 규칙인지” 설명을 가질 수 있게 했습니다.
|
||||
- [MemoryTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/MemoryTool.cs) 는 `show_scope` 액션을 새로 지원합니다. 이제 `/memory` 계열 명령으로 `managed / user / project / local` 메모리 파일의 실제 내용을 직접 확인할 수 있고, `list/search` 결과에도 `description`과 `paths` 범위가 함께 표시됩니다.
|
||||
@@ -1768,8 +1770,8 @@ MIT License
|
||||
- 채팅 입력창 글로우는 런처와 같은 방식으로 `표시/숨김 + 얇은 외곽선 + 부드러운 투명도` 중심으로 다듬었습니다. 과한 블러와 두꺼운 외곽선 때문에 지저분하게 보이던 인상을 줄였습니다.
|
||||
- 런처 글로우 토글은 일반 설정에 그대로 유지하고, AX Agent 내부 설정은 채팅 입력창 글로우만 담당하도록 역할을 분리했습니다.
|
||||
- 업데이트: 2026-04-08 12:18 (KST)
|
||||
- `claw-code`의 `Messages.tsx`, `VirtualMessageList.tsx`, `StatusLine.tsx`, `StreamingToolExecutor.ts` 흐름을 다시 대조해 AX의 코워크/코드가 실행 중 유독 무거운 원인을 점검했습니다.
|
||||
- 구조 비교 결과, AX는 코워크/코드 스트리밍 중에도 process feed 이벤트가 transcript 전체 재렌더를 자주 유발하는 경로가 남아 있어 `claw-code`보다 UI 스레드 부담이 큰 상태였습니다.
|
||||
- `기준 구조`의 `Messages.tsx`, `VirtualMessageList.tsx`, `StatusLine.tsx`, `StreamingToolExecutor.ts` 흐름을 다시 대조해 AX의 코워크/코드가 실행 중 유독 무거운 원인을 점검했습니다.
|
||||
- 구조 비교 결과, AX는 코워크/코드 스트리밍 중에도 process feed 이벤트가 transcript 전체 재렌더를 자주 유발하는 경로가 남아 있어 `기준 구조`보다 UI 스레드 부담이 큰 상태였습니다.
|
||||
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에 `IsLightweightLiveProgressMode()`를 추가해, 코워크/코드 + 실행 히스토리 접힘 상태에서는 라이브 진행 카드를 우선 사용하고 transcript 재렌더 빈도를 더 강하게 낮추도록 조정했습니다.
|
||||
- 같은 조건에서 `_executionHistoryRenderTimer`, `_agentUiEventTimer` 간격도 더 느슨하게 조정해, 스트리밍 중 작은 진행 이벤트가 여러 타이머를 통해 UI 전체를 자주 흔들던 문제를 줄였습니다.
|
||||
- 코워크/코드 실행 중 접힌 히스토리 상태에서는 process feed 계열 이벤트가 더 이상 매번 transcript 렌더를 요청하지 않고, 완료/오류/문서 생성 결과처럼 실제로 기록 가치가 큰 이벤트만 강하게 렌더 요청을 남기도록 정리했습니다.
|
||||
@@ -1778,7 +1780,7 @@ MIT License
|
||||
- 경량 모드에서는 `Thinking`, `ToolCall` 같은 잦은 이벤트마다 `작업 요약` 갱신을 다시 예약하지 않고, `계획`, `권한 요청`, `도구 결과`, `완료/오류`처럼 실제로 요약 상태가 달라지는 이벤트 중심으로만 요약 UI를 갱신하도록 정리했습니다.
|
||||
- 결과적으로 코워크/코드 처리 중 transcript 외의 보조 UI 측정/배치 비용도 함께 줄어, 입력 지연과 스크롤 버벅임 완화에 직접적으로 기여하도록 조정했습니다.
|
||||
- 업데이트: 2026-04-08 12:33 (KST)
|
||||
- `claw-code`의 가상화 메시지 리스트에 바로 가기 전 단계로, AX transcript에 `실행 중 렌더 윈도우 축소`를 적용했습니다. 코워크/코드 스트리밍 중에는 최근 항목 위주로 더 작은 타임라인만 렌더하고, 평상시에는 기존 범위를 유지합니다.
|
||||
- `기준 구조`의 가상화 메시지 리스트에 바로 가기 전 단계로, AX transcript에 `실행 중 렌더 윈도우 축소`를 적용했습니다. 코워크/코드 스트리밍 중에는 최근 항목 위주로 더 작은 타임라인만 렌더하고, 평상시에는 기존 범위를 유지합니다.
|
||||
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)에 `GetActiveTimelineRenderLimit()`를 추가해, 일반 스트리밍은 96개, 경량 라이브 진행 모드는 60개만 렌더하도록 조정했습니다.
|
||||
- `ScheduleExecutionHistoryRender`, `ScheduleAgentUiEvent`, `ScheduleTaskSummaryRefresh`, `ScheduleInputUiRefresh`도 경량 모드에서는 이미 타이머가 대기 중일 때 다시 stop/start 하지 않게 바꿔, 이벤트 폭주 시 dispatcher 예약 churn을 줄였습니다.
|
||||
- 업데이트: 2026-04-08 12:40 (KST)
|
||||
@@ -1789,10 +1791,10 @@ MIT License
|
||||
- 업데이트: 2026-04-08 12:52 (KST)
|
||||
- AX Agent transcript 호스트를 `ScrollViewer + StackPanel + Children.Add` 구조에서 `ListBox + ObservableCollection<UIElement>` 기반으로 옮겼습니다.
|
||||
- [ChatWindow.TranscriptHost.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.TranscriptHost.cs)를 추가해 transcript 요소 추가/교체/삭제와 스크롤 접근을 공용 helper로 정리했고, 내부 ScrollViewer도 한 번만 찾아 재사용하도록 바꿨습니다.
|
||||
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml)의 메시지 영역은 `VirtualizingStackPanel`을 쓰는 `ListBox` 기반 호스트로 교체해, 이후 `claw-code`의 `VirtualMessageList`에 더 가까운 가상화 구조로 밀어갈 수 있는 기반을 만들었습니다.
|
||||
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml)의 메시지 영역은 `VirtualizingStackPanel`을 쓰는 `ListBox` 기반 호스트로 교체해, 이후 `기준 구조`의 `VirtualMessageList`에 더 가까운 가상화 구조로 밀어갈 수 있는 기반을 만들었습니다.
|
||||
- 관련 렌더 코드([ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs), [ChatWindow.MessageBubblePresentation.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.MessageBubblePresentation.cs), [ChatWindow.AgentEventRendering.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.AgentEventRendering.cs), [ChatWindow.MessageInteractions.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.MessageInteractions.cs), [ChatWindow.TimelinePresentation.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.TimelinePresentation.cs))도 모두 컬렉션 기반 조작으로 맞춰, 실행 중 `Children` 직접 조작에 따른 레이아웃 churn을 줄였습니다.
|
||||
- 업데이트: 2026-04-09 09:14 (KST)
|
||||
- `claw-code`와의 구조 대조 결과를 바탕으로, transcript 렌더와 tool streaming 실행 책임을 더 분리했습니다.
|
||||
- `기준 구조`와의 구조 대조 결과를 바탕으로, transcript 렌더와 tool streaming 실행 책임을 더 분리했습니다.
|
||||
- [ChatWindow.TranscriptRendering.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.TranscriptRendering.cs)를 추가해 `RenderMessages()`와 transcript windowing/증분 렌더 흐름을 메인 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 밖으로 옮겼습니다.
|
||||
- [StreamingToolExecutionCoordinator.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/StreamingToolExecutionCoordinator.cs)를 추가해 read-only 도구 prefetch, tool-use 스트리밍 수신, context overflow/transient error 복구를 별도 coordinator 계층으로 분리했습니다.
|
||||
- [AgentLoopRuntimeThresholds.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopRuntimeThresholds.cs)를 추가해 no-tool, plan retry, terminal evidence gate 같은 임계값 계산을 `AgentLoopService`에서 분리했습니다.
|
||||
@@ -1800,7 +1802,7 @@ MIT License
|
||||
- 업데이트: 2026-04-09 09:37 (KST)
|
||||
- transcript 렌더 구조를 planning/execution 단계로 한 번 더 쪼갰습니다. [ChatWindow.TranscriptRenderPlanner.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.TranscriptRenderPlanner.cs) 에서 visible window 계산, render key 집계, 전체/증분 렌더 계획 생성을 맡기고, [ChatWindow.TranscriptRenderExecution.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.TranscriptRenderExecution.cs) 에서 host 적용과 viewport 보존을 맡기도록 정리했습니다.
|
||||
- [ChatWindow.TranscriptRendering.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.TranscriptRendering.cs)의 `RenderMessages()`는 이제 `데이터 수집 -> render plan 생성 -> 증분/전체 적용`만 오케스트레이션하는 얇은 진입점이 됐습니다.
|
||||
- `claw-code`의 `Messages.tsx`와 `VirtualMessageList.tsx`처럼 transcript planning과 실제 host 조작을 분리하는 방향에 더 가까워졌고, 이후 실제 가상화 윈도우 정책을 다듬을 때 변경 범위를 더 안전하게 제한할 수 있게 됐습니다.
|
||||
- `기준 구조`의 `Messages.tsx`와 `VirtualMessageList.tsx`처럼 transcript planning과 실제 host 조작을 분리하는 방향에 더 가까워졌고, 이후 실제 가상화 윈도우 정책을 다듬을 때 변경 범위를 더 안전하게 제한할 수 있게 됐습니다.
|
||||
- 업데이트: 2026-04-09 10:08 (KST)
|
||||
- 구조 개선과 실검증을 함께 하기 위해 loop 정책과 transcript 호스트에 성능 계측을 추가했습니다. [AgentPerformanceLogService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AgentPerformanceLogService.cs)가 `%APPDATA%\\AxCopilot\\perf`에 transcript 렌더 시간과 agent loop 실행 요약을 JSON 로그로 남깁니다.
|
||||
- [AgentLoopTransitions.Verification.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopTransitions.Verification.cs), [AgentLoopTransitions.Documents.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopTransitions.Documents.cs), [AgentLoopCompactionPolicy.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopCompactionPolicy.cs)로 검증/fallback/compact 정책 메서드를 분리해 [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)의 책임을 더 줄였습니다.
|
||||
@@ -1812,23 +1814,23 @@ MIT License
|
||||
- 같은 파일의 `OnAgentEvent()`는 이벤트마다 라이브 카드와 상태 서브아이템을 즉시 갱신하지 않고, 완료/오류 같은 종료 신호만 즉시 처리한 뒤 나머지는 기존 배치 타이머로 넘기도록 단순화했습니다.
|
||||
- [ChatWindow.AgentEventProcessor.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.AgentEventProcessor.cs)는 execution event를 UI 스레드와 백그라운드에서 두 번 append하던 구조를 제거하고, 백그라운드 단일 리더에서 한 번만 대화 히스토리를 반영하도록 바꿨습니다.
|
||||
- 업데이트: 2026-04-12 21:34 (KST)
|
||||
- `claw-code`의 `messagesForQuery`, `autoCompact`, `sessionMemoryCompact` 흐름을 기준으로 AX Agent의 컨텍스트 전송 뷰와 압축 트리거를 한 단계 더 정리했습니다.
|
||||
- `기준 구조`의 `messagesForQuery`, `autoCompact`, `sessionMemoryCompact` 흐름을 기준으로 AX Agent의 컨텍스트 전송 뷰와 압축 트리거를 한 단계 더 정리했습니다.
|
||||
- [AgentQueryContextBuilder.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentQueryContextBuilder.cs)를 추가해, 저장된 전체 대화와 실제 LLM에 전송할 query view를 분리했습니다. 이 뷰는 마지막 compact boundary부터만 다시 보내고, 오래된 `tool_result`는 전송 직전에만 budget 기준으로 더 줄입니다.
|
||||
- 같은 helper에서 `tool_result`가 남아 있는 kept range를 검사해, 대응되는 assistant `_tool_use_blocks`가 잘리지 않도록 window start를 뒤로 보정합니다.
|
||||
- [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)는 각 반복에서 `messagesForQuery`에 해당하는 전송 뷰를 만든 뒤 `SendWithToolsWithRecoveryAsync()`와 텍스트 fallback 호출에 사용하도록 바꿨습니다.
|
||||
- [ContextCondenser.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ContextCondenser.cs)는 `triggerPercent`만 보던 기준에서 `effective context window - output reserve - buffer` 개념을 반영해 자동 압축 시작 지점을 더 보수적으로 계산하도록 바꿨습니다.
|
||||
- 업데이트: 2026-04-12 21:39 (KST)
|
||||
- `claw-code`의 `sessionMemoryCompact`처럼 압축 경계 자체에서도 `tool_use / tool_result` 짝이 끊기지 않도록 보정 범위를 넓혔습니다.
|
||||
- `기준 구조`의 `sessionMemoryCompact`처럼 압축 경계 자체에서도 `tool_use / tool_result` 짝이 끊기지 않도록 보정 범위를 넓혔습니다.
|
||||
- [AgentMessageInvariantHelper.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentMessageInvariantHelper.cs)를 추가해 `tool_result`가 남는 kept range에서 필요한 assistant `_tool_use_blocks`를 공용 로직으로 다시 포함시키게 했습니다.
|
||||
- [ContextCondenser.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ContextCondenser.cs)는 `MicrocompactOlderMessages`, `SessionMemoryCompactOlderMessages`, `CollapseAndSnipOlderMessages`, `SummarizeOldMessagesAsync`가 모두 같은 split helper를 사용하도록 바꿨습니다.
|
||||
- 이제 recent window가 `tool_result`로 시작하는 경우에도, 그 결과를 참조하는 이전 `tool_use`가 요약/압축 쪽으로 잘려 나가 API pairing 오류를 만드는 상황을 줄일 수 있습니다.
|
||||
- 업데이트: 2026-04-12 22:02 (KST)
|
||||
- `claw-code`의 `applyToolResultBudget` 방향을 따라, AX도 query view와 압축 1단계가 같은 `tool_result` 예산 규칙을 공유하도록 정리했습니다.
|
||||
- `기준 구조`의 `applyToolResultBudget` 방향을 따라, AX도 query view와 압축 1단계가 같은 `tool_result` 예산 규칙을 공유하도록 정리했습니다.
|
||||
- [AgentToolResultBudget.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentToolResultBudget.cs)를 추가해 오래된 `tool_result`를 최근 보호 구간과 aggregate budget 기준으로 공용 축약하도록 만들었습니다.
|
||||
- [AgentQueryContextBuilder.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentQueryContextBuilder.cs)는 query view에서 이 공용 helper를 사용하게 바뀌어, 전송 직전 budget과 축약 결과가 압축 본체와 같은 규칙을 따릅니다.
|
||||
- [ContextCondenser.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ContextCondenser.cs)는 1단계에서 `tool_result`를 별도 공용 budget으로 먼저 줄이고, 그 외 긴 assistant/user 메시지만 추가 절단하도록 역할을 분리했습니다.
|
||||
- 업데이트: 2026-04-12 22:11 (KST)
|
||||
- `claw-code`의 time-based microcompact 방향을 따라, 오래 쉬었다가 다시 호출할 때 오래된 `tool_result`를 먼저 정리하는 분기를 AX에 추가했습니다.
|
||||
- `기준 구조`의 time-based microcompact 방향을 따라, 오래 쉬었다가 다시 호출할 때 오래된 `tool_result`를 먼저 정리하는 분기를 AX에 추가했습니다.
|
||||
- [ContextCondenser.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ContextCondenser.cs)는 마지막 assistant 이후 20분 이상 경과한 경우, 가장 최근 `tool_result` 1개만 남기고 나머지는 작은 cleared marker로 바꾸도록 처리합니다.
|
||||
- [AgentToolResultBudget.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentToolResultBudget.cs)는 cleared `tool_result` JSON을 만드는 helper를 추가해, 기존 `tool_use_id`/`tool_name`은 유지하면서 content만 가볍게 비우도록 보강했습니다.
|
||||
- [AgentLoopCompactionPolicy.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopCompactionPolicy.cs)는 compact 직후 첫 턴에서 추가 운영성 thinking 문구를 다시 띄우지 않고 내부 상태만 갱신하도록 바꿔, compact 후 흐름이 더 조용하게 이어지도록 정리했습니다.
|
||||
@@ -1841,7 +1843,7 @@ MIT License
|
||||
- [ChatWindow.ResponsePresentation.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.ResponsePresentation.cs)는 응답 하단 토큰 메타에서 `compact 직후` 꼬리표를 제거해, 일반 응답과 같은 밀도로 보이도록 정리했습니다.
|
||||
- [ChatWindow.ContextUsagePresentation.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.ContextUsagePresentation.cs)는 token usage 팝업 detail에서 `compact 후 첫 응답 대기 중` 문구를 빼고 실제 컨텍스트/압축 정보만 보여주도록 단순화했습니다.
|
||||
- 업데이트: 2026-04-12 22:36 (KST)
|
||||
- `claw-code`의 post-compact attachments 흐름을 참고해, AX도 요약/경계 메시지에 오래된 첨부 참조를 다시 실어 compact 뒤 컨텍스트 연속성을 보강했습니다.
|
||||
- `기준 구조`의 post-compact attachments 흐름을 참고해, AX도 요약/경계 메시지에 오래된 첨부 참조를 다시 실어 compact 뒤 컨텍스트 연속성을 보강했습니다.
|
||||
- [ContextCondenser.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ContextCondenser.cs)는 오래된 메시지에서 첨부 파일 이름과 이미지 개수를 수집해 `microcompact_boundary`와 요약 메시지에 함께 기록합니다.
|
||||
- 요약 메시지에는 `AttachedFiles`도 같이 보존해, compact 이후에도 관련 파일 참조가 query view로 이어질 수 있게 맞췄습니다.
|
||||
- 업데이트: 2026-04-12 22:44 (KST)
|
||||
@@ -1849,13 +1851,13 @@ MIT License
|
||||
- [LlmService.ToolUse.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/LlmService.ToolUse.cs)는 최근 비-system 메시지 8개만 구조화된 tool history로 유지하고, 그 이전의 `_tool_use_blocks`와 `tool_result`는 plain assistant/user transcript로 변환해 재전송합니다.
|
||||
- 이로써 strict provider에서 오래된 `tool_calls/tool` 이력이 계속 누적되던 부담과 pairing 위험을 함께 줄였습니다.
|
||||
- 업데이트: 2026-04-12 23:05 (KST)
|
||||
- `claw-code`와 비교했을 때 여전히 무겁던 Cowork 문서 생성 게이트와 Code 후속 검증 게이트를 한 단계 더 줄였습니다.
|
||||
- `기준 구조`와 비교했을 때 여전히 무겁던 Cowork 문서 생성 게이트와 Code 후속 검증 게이트를 한 단계 더 줄였습니다.
|
||||
- [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs) 는 `document_plan` 뒤의 강제 재시도/자동 HTML fallback을 공격적인 실행 프로파일에서만 동작하도록 제한했습니다.
|
||||
- [AgentLoopTransitions.Documents.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopTransitions.Documents.cs) 는 `document_plan` 성공 직후 추가 user 압박 메시지를 넣지 않고, terminal 문서 도구 성공 시 Cowork에서 바로 종료할 수 있게 정리했습니다.
|
||||
- [AgentLoopTransitions.Verification.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopTransitions.Verification.cs) 는 `CodeDiffGate`, `RecentExecutionGate`, `ExecutionSuccessGate`를 review 작업 중심으로 제한해 일반 코드 수정의 과검증을 줄였습니다.
|
||||
- [TaskTypePolicy.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/TaskTypePolicy.cs), [ChatWindow.SystemPromptBuilder.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.SystemPromptBuilder.cs), [cowork_문서작성.json](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Assets/Presets/cowork_%EB%AC%B8%EC%84%9C%EC%9E%91%EC%84%B1.json), [cowork_보고서.json](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Assets/Presets/cowork_%EB%B3%B4%EA%B3%A0%EC%84%9C.json) 도 같은 기준으로 문서 생성/텍스트 종료 조건을 더 얇게 맞췄습니다.
|
||||
- 업데이트: 2026-04-12 23:14 (KST)
|
||||
- compact 이후 query view에 복원된 파일/이미지 참조를 짧게 다시 주입해, `claw-code`의 post-compact attachment continuity에 더 가깝게 맞췄습니다.
|
||||
- compact 이후 query view에 복원된 파일/이미지 참조를 짧게 다시 주입해, `기준 구조`의 post-compact attachment continuity에 더 가깝게 맞췄습니다.
|
||||
- [AgentQueryContextBuilder.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentQueryContextBuilder.cs)는 compact boundary가 적용된 query view에 `post_compact_context` system 메시지를 추가해, 복원된 파일 참조와 이미지 참조 개수를 함께 전달합니다.
|
||||
- [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)의 final-report 품질 프롬프트는 일반 작업에서는 더 짧고 명확한 3줄 요약 중심으로 축소하고, review/high-impact 작업에만 구조적 상세 보고를 유지하도록 조정했습니다.
|
||||
- 업데이트: 2026-04-12 23:23 (KST)
|
||||
@@ -1959,8 +1961,8 @@ MIT License
|
||||
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentCommandQueueTests|CodeLanguageCatalogTests|WorkspaceContextGeneratorTests|PptxSkillConsultingDeckTests|DeckRepairGuideServiceTests" -p:OutputPath=bin\\verify_master_batch_tests\\ -p:IntermediateOutputPath=obj\\verify_master_batch_tests\\` 통과 35
|
||||
|
||||
업데이트: 2026-04-15 07:00 (KST)
|
||||
- `claw-code` 기준 남은 격차를 줄이기 위한 통합 고도화 계획을 확정했습니다. 우선순위는 `에이전틱 루프/명령 큐`, `tool_result preview 안정화`, `명령/스킬 합성`, `문서 포맷 마감`, `개발언어 지원 정합화`, `회귀 테스트/문서/릴리즈 게이트` 순서입니다.
|
||||
- 첫 배치로 [AgentCommandQueue.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentCommandQueue.cs)를 `peek`, `dequeue`, `dequeueAllMatching`, `dequeuePriorityBatch`, `snapshot`까지 지원하는 우선순위 큐로 확장했습니다. 이제 높은 우선순위 입력이 들어온 턴에는 낮은 우선순위 notification을 다음 턴으로 미루어 `claw-code`에 더 가까운 부분 소비 흐름으로 동작합니다.
|
||||
- `기준 구조` 기준 남은 격차를 줄이기 위한 통합 고도화 계획을 확정했습니다. 우선순위는 `에이전틱 루프/명령 큐`, `tool_result preview 안정화`, `명령/스킬 합성`, `문서 포맷 마감`, `개발언어 지원 정합화`, `회귀 테스트/문서/릴리즈 게이트` 순서입니다.
|
||||
- 첫 배치로 [AgentCommandQueue.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentCommandQueue.cs)를 `peek`, `dequeue`, `dequeueAllMatching`, `dequeuePriorityBatch`, `snapshot`까지 지원하는 우선순위 큐로 확장했습니다. 이제 높은 우선순위 입력이 들어온 턴에는 낮은 우선순위 notification을 다음 턴으로 미루어 `기준 구조`에 더 가까운 부분 소비 흐름으로 동작합니다.
|
||||
- [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)는 위 큐를 이용해 한 번에 전체 큐를 비우지 않고, 같은 우선순위 배치만 소비한 뒤 남은 lower-priority 항목을 뒤로 미루도록 조정했습니다.
|
||||
- [AgentToolResultBudget.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentToolResultBudget.cs)는 preview 재사용 기준을 `MsgId`뿐 아니라 `tool_use_id`까지 넓혔습니다. 같은 tool result가 재구성된 메시지로 다시 들어와도 이전 preview를 재사용해 query view 안정성을 높입니다.
|
||||
- 테스트로 [AgentCommandQueueTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentCommandQueueTests.cs), [AgentToolResultBudgetTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentToolResultBudgetTests.cs)를 확장해 `priority batch dequeue`, `predicate matching`, `tool_use_id preview reuse`를 회귀 검증했습니다.
|
||||
@@ -2043,7 +2045,7 @@ MIT License
|
||||
|
||||
업데이트: 2026-04-15 10:10 (KST)
|
||||
- 남은 고도화를 한 번에 끝내기 위한 통합 마감 계획을 확정했습니다. 다음 배치는 `문서 포맷 최종 마감 -> 에이전틱 루프 iteration pipeline 분리 -> 개발언어 no-LSP fallback 심화 -> 명령/스킬 합성 및 릴리즈 게이트` 순서로 진행합니다.
|
||||
- 기준 레퍼런스는 `claude-code`의 [query.ts](/E:/AX%20Copilot%20-%20Codex/claw-code/claw-code-f5a40b86dede580f6543bf8926c9af017eea9409/src/query.ts), [QueryEngine.ts](/E:/AX%20Copilot%20-%20Codex/claw-code/claw-code-f5a40b86dede580f6543bf8926c9af017eea9409/src/QueryEngine.ts), [toolResultStorage.ts](/E:/AX%20Copilot%20-%20Codex/claw-code/claw-code-f5a40b86dede580f6543bf8926c9af017eea9409/src/utils/toolResultStorage.ts), [messageQueueManager.ts](/E:/AX%20Copilot%20-%20Codex/claw-code/claw-code-f5a40b86dede580f6543bf8926c9af017eea9409/src/utils/messageQueueManager.ts), [commands.ts](/E:/AX%20Copilot%20-%20Codex/claw-code/claw-code-f5a40b86dede580f6543bf8926c9af017eea9409/src/commands.ts)이며, AX 쪽에서는 `AgentLoopService`, `AgentCommandQueue`, `AgentQueryContextBuilder`, `ContextCondenser`, `CodeLanguageCatalog`, `SlashCommandCatalog`, `SkillService`, 각 문서 생성 스킬을 마감 대상으로 잡았습니다.
|
||||
- 기준 레퍼런스는 `기준 구조`의 [query.ts](/E:/AX%20Copilot%20-%20Codex/기준 구조/기준 구조-f5a40b86dede580f6543bf8926c9af017eea9409/src/query.ts), [QueryEngine.ts](/E:/AX%20Copilot%20-%20Codex/기준 구조/기준 구조-f5a40b86dede580f6543bf8926c9af017eea9409/src/QueryEngine.ts), [toolResultStorage.ts](/E:/AX%20Copilot%20-%20Codex/기준 구조/기준 구조-f5a40b86dede580f6543bf8926c9af017eea9409/src/utils/toolResultStorage.ts), [messageQueueManager.ts](/E:/AX%20Copilot%20-%20Codex/기준 구조/기준 구조-f5a40b86dede580f6543bf8926c9af017eea9409/src/utils/messageQueueManager.ts), [commands.ts](/E:/AX%20Copilot%20-%20Codex/기준 구조/기준 구조-f5a40b86dede580f6543bf8926c9af017eea9409/src/commands.ts)이며, AX 쪽에서는 `AgentLoopService`, `AgentCommandQueue`, `AgentQueryContextBuilder`, `ContextCondenser`, `CodeLanguageCatalog`, `SlashCommandCatalog`, `SkillService`, 각 문서 생성 스킬을 마감 대상으로 잡았습니다.
|
||||
- 완료 기준은 `dotnet build` 경고 0 / 오류 0, `PPTX/XLSX/DOCX/HTML golden`, `중단/재개/권한/branch/replay`, `언어 fallback` 회귀까지 모두 통과하는 상태입니다.
|
||||
|
||||
업데이트: 2026-04-15 10:24 (KST)
|
||||
|
||||
@@ -1,238 +1,46 @@
|
||||
# AX Agent 로드맵 (전면 재작성)
|
||||
# AX Agent 로드맵
|
||||
|
||||
## 1. 보존 이력 (요약만 유지)
|
||||
- v0.5.0: MCP 연동, 모델 폴백, 대화 분기, 프리뷰/토큰 관리, 에이전트 루프 강화.
|
||||
- v0.5.1: 고급 스킬 확장, 워크플로우 분석기, 런타임 감지.
|
||||
- v0.6.0: 멀티패스 문서 생성, 데이터 피벗/템플릿/이미지 분석 계열 도구 확장.
|
||||
- v0.7.0: Plan Mode, 병렬 도구 실행, 프로젝트 규칙 주입, 테스트 루프 자동화.
|
||||
- v0.7.1: 도구 실행 후 검증 게이트 강화, 피드백 컨텍스트 개선.
|
||||
- v0.7.2: 컨텍스트 압축/복원 안정화, UX/성능 보완.
|
||||
업데이트: 2026-04-15 18:20 (KST)
|
||||
|
||||
## 2. 재작성 기준
|
||||
- 기준 레퍼런스: `OpenCode/OpenCode-f5a40b86dede580f6543bf8926c9af017eea9409/src`.
|
||||
- 목표: 동작 순서, 예외/검증 흐름, 세션 내구성에서 동일 품질 달성.
|
||||
- 원칙: AX 코드 스타일로 재구성(표현/구조 변경), 기능적 동등성 유지.
|
||||
## 1. 목표
|
||||
- AX Agent의 실행 신뢰성, 세션 내구성, 결과 품질을 단계적으로 높입니다.
|
||||
- 비교·모사 표현 대신 실제 참조 모듈 경로와 AX 적용 위치만 문서에 남깁니다.
|
||||
- 변경 우선순위는 `상태 -> 실행 -> 렌더 -> UX` 순서로 유지합니다.
|
||||
|
||||
## 3. 2026 실행 계획 (v0.7.3 ~ v0.8.0)
|
||||
## 2. 보존 이력
|
||||
- v0.5.x: MCP, 모델 폴백, 대화 분기, 프리뷰/토큰 관리, 에이전트 루프 기반 구축
|
||||
- v0.6.0: 문서 생성, 데이터 피벗, 템플릿/이미지 분석 도구군 확장
|
||||
- v0.7.0 ~ v0.7.2: Plan Mode, 병렬 도구 실행, 검증 게이트, 컨텍스트 압축 안정화
|
||||
|
||||
| Phase | 참조 대상 (`OpenCode`) | AX 적용 위치 | 완료 조건 | 품질 판정 시나리오 |
|
||||
## 3. 2026 실행 계획
|
||||
|
||||
| Phase | 참조 대상 | AX 적용 위치 | 완료 조건 | 품질 판정 시나리오 |
|
||||
|---|---|---|---|---|
|
||||
| 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` | 코드/문서 작업별 완료 게이트를 증거 기반으로 고정. 내부 벤치마크 목표 성공률 충족. 완료 응답 근거 누락률 최소화. | 코드수정/문서생성/권한거부/실패복구 혼합 시나리오에서 조기 완료 없이 근거 기반 종료하는지 검증. |
|
||||
| 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` | `AgentHookRunner.cs`, `AgentLoopService.cs`, `AppSettings.cs`, `SettingsViewModel.cs`, `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` | `ChatSessionStateService.cs`, `TaskRunService.cs`, `TaskRunStore.cs`, `ChatWindow.xaml.cs` | plan 승인/수정 이력 영속화, 재시작 후 마지막 run 지점 복원, 중복 이벤트 0건 | 실행 중 종료 후 재실행 시 같은 탭/대화에서 run 상태와 최근 이력이 일치하는지 검증 |
|
||||
| C (v0.7.5) 세션/이벤트 로그 정규화 | `src/utils/sessionStorage.ts`, `src/utils/hooks/hookEvents.ts` | `ChatModels.cs`, `ChatSessionStateService.cs`, `AppStateService.cs` | 이벤트 스키마 정리, replay 순서 불일치 0건, run 단위 요약 리포트 생성 가능 | 같은 세션을 여러 번 로드해도 실행 이력 순서와 상태가 변하지 않는지 검증 |
|
||||
| D (v0.7.6) 명령/도구 선택 정확도 개선 | `src/commands.ts`, `src/Tool.ts` | `AgentLoopService.cs`, `AgentLoopParallelExecution.cs`, `LlmService.ToolUse.cs` | 도구 별칭 정규화 강화, unknown-tool 재시도 루프 방지, 실패 유형별 복구 표준화 | 오타/별칭/비활성 도구 요청이 정상 도구로 수렴하는지 검증 |
|
||||
| E (v0.8.0) 품질 게이트 정렬 | `src/query.ts`, `src/QueryEngine.ts`, `src/utils/sessionStorage.ts` | `AgentLoopService.cs`, `AgentLoopTransitions.Execution.cs`, `AgentLoopTransitions.cs` | 코드/문서 작업 완료 게이트를 증거 기반으로 고정, 조기 완료 방지 | 코드수정/문서생성/권한거부/복구 혼합 시나리오에서 근거 기반 종료를 검증 |
|
||||
|
||||
## 4. 공통 검증 규칙
|
||||
- 모든 단계: `dotnet build` 경고 0/오류 0.
|
||||
- 고위험 변경: 최소 1개 이상 재현 테스트 추가.
|
||||
- 운영모드(`internal`/`external`) 보안 정책 위반 0건.
|
||||
- 모든 단계에서 `dotnet build` 경고 0 / 오류 0
|
||||
- 고위험 변경마다 최소 1개 이상 재현 테스트 추가
|
||||
- `internal` / `external` 운영 모드 정책 위반 0건
|
||||
|
||||
## 5. 즉시 착수 항목
|
||||
1. 내부 벤치마크(기본 loop/복구/권한/hook) 결과를 릴리즈 체크리스트에 연동 유지.
|
||||
2. 세션 replay 안정성(`Suite=ReplayStability`) 전건 통과를 릴리즈 게이트로 운영.
|
||||
3. 패리티 수치(테스트 통과 수/게이트 상태)를 로드맵 문서 간 동일 문구로 유지.
|
||||
1. 내부 벤치마크 결과를 릴리즈 체크리스트에 계속 연결
|
||||
2. `Suite=ReplayStability` 전건 통과를 릴리즈 게이트로 유지
|
||||
3. 계획/실행/검증 문서 간 수치와 상태 문구를 같은 기준으로 동기화
|
||||
|
||||
## 6. 최신 검증 스냅샷 (2026-04-03)
|
||||
- `dotnet test --filter "Suite=ParityBenchmark"`: 13/13 통과.
|
||||
- `dotnet test --filter "Suite=ReplayStability"`: 14/14 통과.
|
||||
- `dotnet test`: 379/379 통과.
|
||||
## 6. 최신 검증 스냅샷
|
||||
- 기준 시점: 2026-04-03
|
||||
- `dotnet test --filter "Suite=ParityBenchmark"`: 13/13 통과
|
||||
- `dotnet test --filter "Suite=ReplayStability"`: 14/14 통과
|
||||
- `dotnet test`: 379/379 통과
|
||||
|
||||
## 7. 명령/도구 보강 스냅샷 (2026-04-04)
|
||||
- 슬래시 명령 고도화: `/chrome`, `/mcp`, `/verify`, `/commit`, `/settings`, `/permissions` 하위 동작 정리.
|
||||
- `/mcp` 상태 라벨 표준화: `Connected`, `NeedsAuth`, `Configured`, `Disconnected`, `Disabled`.
|
||||
- `/chrome` 런타임 재시도: 초기 probe 실패 시 `/mcp reconnect all` 자동 수행 후 1회 재평가.
|
||||
- Git 정책 정렬: `git_tool`의 `commit` 비활성 문구 제거(로컬 커밋 경로와 정책 일치).
|
||||
- `/commit` 부분 커밋 지원: `files:path1,path2 :: 메시지` 형식으로 선택 파일만 stage+commit 가능.
|
||||
- 테스트 보강:
|
||||
- `ChatWindowSlashPolicyTests`: 슬래시 파서/검증 프롬프트/MCP 상태 라벨 단위 검증 추가.
|
||||
- `AgentParityToolsTests`: `git_tool commit` 레거시 비활성 메시지 회귀 방지 테스트 추가.
|
||||
|
||||
## 7. 권한 Hook 계약 (P2 마감 기준)
|
||||
- lifecycle hook 키:
|
||||
- `__permission_request__` (pre)
|
||||
- `__permission_granted__` (post)
|
||||
- `__permission_denied__` (post)
|
||||
- payload 기준 필드: `runId`, `tool`, `target`, `permission`, `granted`, `reason`.
|
||||
- 우선순위:
|
||||
1. Hook `updatedPermissions`가 현재 run의 `AgentContext.ToolPermissions`를 즉시 갱신.
|
||||
2. 갱신 후 `context.CheckToolPermissionAsync()`로 최종 판정.
|
||||
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 (`claude/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 OpenCode-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 OpenCode 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? ?? ??? ?? ?? ?? ?? ?? ?? ??? ??? ???? ?? ??.
|
||||
|
||||
---
|
||||
|
||||
## 8. 지능형 에이전트 고도화 로드맵 (oh-my-openagent 참조)
|
||||
|
||||
> 기준: oh-my-openagent 아키텍처 분석 결과에서 단일 모델 환경에서도 효과적인 기능을 우선 채택.
|
||||
> 원칙: AX 기존 인프라(`ClassifyTaskType`, `SubAgentTool`, `IntentDetector`, `TaskTypePolicy`, `ContextCondenser`) 위에 점진적으로 확장.
|
||||
|
||||
### 8-1. 즉시 개발 (P1~P5)
|
||||
|
||||
#### P1. IntentGate — 고급 의도 분류기
|
||||
- **목적**: 사용자 입력을 분석하여 최적 실행 프로파일(system prompt + temperature + tool 권한 + 최대 반복)을 자동 선택
|
||||
- **현재 상태**: `ClassifyTaskType()` (키워드 6분류) + `IntentDetector` (키워드 7분류, UI 힌트용) 존재하나 실행 프로파일 연동 없음
|
||||
- **구현 계획**:
|
||||
1. `IntentGateService.cs` 신규 — 2단계 분류기
|
||||
- Stage 1: 키워드 기반 빠른 분류 (기존 `ClassifyTaskType` + `IntentDetector` 통합)
|
||||
- Stage 2: LLM 1-shot 분류 (복합 요청 시만 발동, 토큰 최소화)
|
||||
2. `ExecutionProfile` 확장 — 분류 결과별 프로파일 매핑
|
||||
- `code_edit`: temperature 0.3, 코드 도구 우선, 최대 반복 25
|
||||
- `document_create`: temperature 0.7, 문서 도구 우선, 최대 반복 15
|
||||
- `analysis`: temperature 0.4, 검색/읽기 도구 우선, 최대 반복 20
|
||||
- `review`: temperature 0.2, 읽기 전용 도구, 최대 반복 15
|
||||
- `general_chat`: 도구 없음, temperature 0.8
|
||||
- `complex_task`: 전체 도구, temperature 0.5, SubAgent 활성화
|
||||
3. `AgentLoopService.RunAsync()` 진입부에서 `IntentGateService.Classify()` 호출 → 프로파일 적용
|
||||
- **수정 파일**: `IntentGateService.cs`(신규), `AgentLoopService.cs`, `AppSettings.cs`, `TaskTypePolicy.cs`
|
||||
- **검증**: 코드수정/문서생성/분석/리뷰/잡담 5개 시나리오에서 올바른 프로파일 선택 확인
|
||||
|
||||
#### P2. 카테고리 기반 서브에이전트 실행 프로파일
|
||||
- **목적**: 같은 모델이지만 작업 유형별로 다른 system prompt + tool 권한 + temperature를 적용하는 "가상 멀티에이전트"
|
||||
- **현재 상태**: `SubAgentTool`은 고정 system prompt + 읽기 전용 도구만 사용
|
||||
- **구현 계획**:
|
||||
1. `SubAgentProfile.cs` 신규 — 프로파일 정의 클래스
|
||||
- `researcher`: 읽기 전용, 검색 집중, temperature 0.3
|
||||
- `coder`: 파일 편집 가능, 빌드/테스트 도구 포함, temperature 0.2
|
||||
- `writer`: 문서 생성 도구 활성, temperature 0.7
|
||||
- `reviewer`: 코드리뷰 도구 + diff, temperature 0.2
|
||||
- `planner`: 계획/분해 도구, temperature 0.5
|
||||
2. `SubAgentTool` 확장 — `profile` 파라미터 추가
|
||||
- 프로파일별로 system prompt, 도구 레지스트리, temperature를 자동 구성
|
||||
- 기존 동작(profile 미지정)은 `researcher`로 폴백
|
||||
3. `IntentGateService`가 복합 요청 감지 시 자동으로 서브에이전트 프로파일 추천
|
||||
- **수정 파일**: `SubAgentProfile.cs`(신규), `SubAgentTool.cs`, `AgentLoopService.cs`
|
||||
- **검증**: "코드 수정하고 문서도 만들어줘" → coder + writer 프로파일 분리 실행 확인
|
||||
|
||||
#### P3. 누적 학습 (Accumulated Learnings)
|
||||
- **목적**: 세션 내 발견사항(에러 패턴, 파일 구조, 성공 전략)을 자동 수집하여 후속 반복에 주입
|
||||
- **현재 상태**: `AgentMemoryService`에 장기 메모리 존재하나, 세션 내 단기 학습 전파 없음
|
||||
- **구현 계획**:
|
||||
1. `SessionLearningCollector.cs` 신규
|
||||
- 도구 실행 결과에서 자동 학습 포인트 추출:
|
||||
- 빌드 에러 → "이 프로젝트는 .NET 8, nullable 활성"
|
||||
- grep 결과 → "이 패턴은 Services/ 폴더에 집중"
|
||||
- 파일 구조 → "테스트는 Tests/ 폴더, 네이밍 규칙 *Tests.cs"
|
||||
- 최대 10개 항목, FIFO 관리
|
||||
2. `AgentLoopService` — 각 반복 시작 시 누적 학습을 컨텍스트에 주입
|
||||
- `[System:SessionLearnings]` 메시지로 삽입 (압축 시 보존)
|
||||
3. `ContextCondenser` — 학습 메시지는 압축 대상에서 제외
|
||||
- **수정 파일**: `SessionLearningCollector.cs`(신규), `AgentLoopService.cs`, `ContextCondenser.cs`
|
||||
- **검증**: 빌드 에러 발생 후 다음 반복에서 동일 실수 반복 안 하는지 확인
|
||||
|
||||
#### P4. 워크스페이스 컨텍스트 자동 생성 (.ax-context)
|
||||
- **목적**: 작업 폴더의 구조/기술스택/컨벤션을 파일로 자동 생성 → 서브에이전트 컨텍스트 효율화
|
||||
- **현재 상태**: `ProjectRuleTool`이 `.ax-rules` 파일을 읽지만 자동 생성 없음
|
||||
- **구현 계획**:
|
||||
1. `WorkspaceContextGenerator.cs` 신규
|
||||
- 작업 폴더 최초 접근 시 자동 분석:
|
||||
- 파일 트리 (깊이 3), 주요 확장자 분포, 빌드 시스템 감지
|
||||
- README/package.json/csproj 등에서 프로젝트 메타 추출
|
||||
- 기존 `.ax-rules`, `.clinerules`, `CLAUDE.md` 존재 여부
|
||||
- 결과를 `.ax-context.md`로 저장 (1회 생성, 수동 갱신)
|
||||
2. `SubAgentTool` — 서브에이전트 생성 시 `.ax-context.md` 내용을 system prompt에 자동 주입
|
||||
3. `AgentLoopService` — 메인 에이전트도 `.ax-context.md` 존재 시 컨텍스트에 포함
|
||||
- **수정 파일**: `WorkspaceContextGenerator.cs`(신규), `SubAgentTool.cs`, `AgentLoopService.cs`, `ProjectRuleTool.cs`
|
||||
- **검증**: 새 작업 폴더 선택 → `.ax-context.md` 자동 생성 → 서브에이전트가 프로젝트 구조 인지 확인
|
||||
|
||||
#### P5. 병렬 서브에이전트 실행 확장
|
||||
- **목적**: LLM이 한 번의 응답에서 여러 서브에이전트를 동시 생성/실행
|
||||
- **현재 상태**: `SubAgentTool`은 개별 호출 가능하나 LLM이 연속 호출해야 함. `AgentLoopParallelExecution`에서 병렬 도구 실행 지원
|
||||
- **구현 계획**:
|
||||
1. `spawn_agents` (복수형) 도구 신규 — 배열로 여러 서브에이전트를 한 번에 생성
|
||||
- `tasks: [{id, task, profile}, ...]` 형태
|
||||
2. `IntentGateService` — 복합 요청 감지 시 자동 분해
|
||||
- "A 분석하고 B 코드 수정해줘" → 두 개의 서브에이전트로 자동 분해 제안
|
||||
3. `SubAgentTool` — 동시 실행 상한을 설정에서 조정 가능 (기본 3 → 5)
|
||||
4. UI: 서브에이전트 진행 상태를 타임라인에 병렬로 표시
|
||||
- **수정 파일**: `SpawnAgentsTool.cs`(신규), `SubAgentTool.cs`, `AgentLoopService.cs`, `AppSettings.cs`
|
||||
- **검증**: 3개 서브에이전트 동시 실행 → 결과 수집 → 통합 응답 확인
|
||||
|
||||
### 8-2. 추후 개발 (P6~P7)
|
||||
|
||||
#### P6. 폴백 체인 (Fallback Chains)
|
||||
- **목적**: 실행 실패 시 다른 프로파일/전략으로 자동 재시도
|
||||
- **구현 방향**: IntentGate 프로파일에 `fallback` 속성 추가. 1차 실패 → 프로파일 전환 → 재시도 (최대 2회)
|
||||
- **선행 조건**: P1(IntentGate) + P2(카테고리 프로파일) 완료 후
|
||||
- **예상 파일**: `IntentGateService.cs`, `AgentLoopService.cs`
|
||||
|
||||
#### P7. 모델 성격 매칭 (Model Personality Matching)
|
||||
- **목적**: 멀티 모델 환경에서 작업 유형별 최적 모델 자동 선택
|
||||
- **구현 방향**: `RegisteredModel`에 `strengths` 속성 추가 (coding/writing/analysis/speed). IntentGate 분류 결과 + 모델 강점 매칭으로 최적 모델 라우팅
|
||||
- **선행 조건**: 멀티 모델 환경 확보 + P1(IntentGate) 완료 후
|
||||
- **예상 파일**: `IntentGateService.cs`, `ModelRouterService.cs`, `AppSettings.cs`
|
||||
|
||||
### 8-3. 구현 순서 및 의존 관계
|
||||
|
||||
```
|
||||
P1 (IntentGate) ─────┬──→ P2 (카테고리 프로파일) ──→ P5 (병렬 확장)
|
||||
│
|
||||
├──→ P3 (누적 학습) [독립]
|
||||
│
|
||||
└──→ P4 (워크스페이스 컨텍스트) [독립]
|
||||
|
||||
P1 + P2 완료 후 ──→ P6 (폴백 체인)
|
||||
P1 + 멀티모델 후 ──→ P7 (모델 성격 매칭)
|
||||
```
|
||||
|
||||
### 8-4. 단일 모델에서의 멀티에이전트 원리
|
||||
|
||||
> Claude Code, Codex, Cursor 등 주요 AI 코딩 도구는 모두 **단일 모델 + 다른 시스템 프롬프트/도구 권한/temperature** 조합으로 멀티에이전트를 구현합니다.
|
||||
>
|
||||
> - 메인 에이전트: 범용 system prompt + 전체 도구 + 중간 temperature
|
||||
> - 서브에이전트: 특화 system prompt + 제한된 도구 + 작업별 temperature
|
||||
>
|
||||
> AX Copilot도 이 패턴을 따릅니다. `SubAgentTool`이 이미 존재하므로, **프로파일 체계화(P2)**만으로 사실상 멀티에이전트가 됩니다.
|
||||
## 2026-04-15 안정화 마감 메모
|
||||
|
||||
업데이트: 2026-04-15 08:32 (KST)
|
||||
|
||||
- `tool_result` preview 안정화는 분기/저장/재로드 단계를 넘어 query view 생성과 context compact 이전 정규화까지 연결했습니다.
|
||||
- 슬래시 명령은 팔레트 정렬과 실제 실행 해석이 같은 우선순위를 사용하도록 맞춰 skill/builtin 충돌 시 일관성이 높아졌습니다.
|
||||
- 코드 탭은 `LSP 심화 지원 + 정적 fallback` 2단 구조로 정리했습니다. 로컬 언어 서버가 없어도 언어별 매니페스트, build/test/lint 힌트 기반 분석을 계속 제공하는 방향으로 마감 중입니다.
|
||||
- 다음 남은 축은 `AgentLoopService` 세분화, `tool_result replacement state` 장기 세션 고정, 문서 포맷 최종 마감, 릴리즈 게이트 정리입니다.
|
||||
## 7. 최근 보강 메모
|
||||
- 2026-04-04: `/chrome`, `/mcp`, `/verify`, `/commit`, `/settings`, `/permissions` 하위 동작 정리
|
||||
- 2026-04-04: `/mcp` 상태 라벨 표준화 및 `/chrome` 런타임 재시도 경로 보강
|
||||
- 2026-04-04: 전용 AX Agent 테마 레이어 추가, 스타일/모드 분리
|
||||
- 2026-04-04: 컴포저 컨텍스트 사용량 링, footer 직접 `/compact`, Git 상태 노출 보강
|
||||
- 2026-04-04: 권한 UX, popup row 언어, 진행 이력 렌더 밀도를 더 가볍게 정리
|
||||
|
||||
91
docs/AX_AGENT_ARCHITECTURE_REVIEW.md
Normal file
91
docs/AX_AGENT_ARCHITECTURE_REVIEW.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# AX Agent 구조 리뷰
|
||||
|
||||
업데이트: 2026-04-15 18:20 (KST)
|
||||
|
||||
## 1. 목적
|
||||
- AX Agent의 현재 구조를 실행 엔진, 루프 정책, 세션 저장, transcript 렌더 관점에서 정리합니다.
|
||||
- 외부 제품 비교 대신 AX 내부 구조와 참조 모듈 흐름만 문서화합니다.
|
||||
|
||||
## 2. 현재 구조
|
||||
|
||||
### 실행 계층
|
||||
- `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopService.cs`
|
||||
- `src/AxCopilot/Services/Agent/StreamingToolExecutionCoordinator.cs`
|
||||
|
||||
### 루프 정책 계층
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopTransitions.Verification.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopTransitions.Documents.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopCompactionPolicy.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopRuntimeThresholds.cs`
|
||||
|
||||
### 세션/상태 계층
|
||||
- `src/AxCopilot/Services/ChatSessionStateService.cs`
|
||||
- `src/AxCopilot/Services/ChatStorageService.cs`
|
||||
- `src/AxCopilot/Services/AppStateService.cs`
|
||||
- `src/AxCopilot/Models/ChatModels.cs`
|
||||
|
||||
### transcript/UI 계층
|
||||
- `src/AxCopilot/Views/ChatWindow.xaml`
|
||||
- `src/AxCopilot/Views/ChatWindow.xaml.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptHost.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptRendering.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptRenderPlanner.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptRenderExecution.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptVirtualization.cs`
|
||||
|
||||
## 3. 강점
|
||||
- Chat / Cowork / Code를 하나의 창과 정책 체계 안에서 운영
|
||||
- 등록 모델별 실행 프로파일과 verification gate 지원
|
||||
- 문서 생성 계열 fallback과 품질 리뷰가 루프에 결합되어 있음
|
||||
- 메모리, slash, permissions, queue가 한 세션 상태에 연결되어 있음
|
||||
|
||||
## 4. 구조 리스크
|
||||
1. `ChatWindow.xaml.cs` 책임이 여전히 크고, UI 이벤트와 런타임 상태 조립이 섞여 있습니다.
|
||||
2. transcript와 status line이 더 단일한 런타임 상태를 기준으로 계산되면 유지보수가 쉬워질 여지가 있습니다.
|
||||
3. replay/reopen 경로는 안정화가 많이 진행됐지만, 장기 세션에서는 이벤트 정규화 규칙이 더 중요합니다.
|
||||
4. 설정이 실행 경로를 바꾸는 지점은 사용자용과 개발용 노출 범위를 더 구분할 필요가 있습니다.
|
||||
|
||||
## 5. 개선 우선순위
|
||||
|
||||
### A. 런타임 상태 단일화
|
||||
- 참조 모듈: `src/bootstrap/state.ts`, `src/bridge/initReplBridge.ts`
|
||||
- AX 적용 위치: `ChatWindow.xaml.cs`, `AxAgentExecutionEngine.cs`, `ChatStorageService.cs`
|
||||
- 완료 조건:
|
||||
- 현재 턴, queue, retry, 실행 이벤트, 저장 스냅샷이 같은 런타임 상태 모델을 사용
|
||||
- reopen 뒤 저장 상태와 렌더 결과가 어긋나지 않음
|
||||
|
||||
### B. 이벤트 정규화
|
||||
- 참조 모듈: `src/bridge/sessionRunner.ts`, `src/bridge/bridgeMessaging.ts`
|
||||
- AX 적용 위치: `AgentLoopService.cs`, `AgentLoopTransitions.cs`, `AppStateService.cs`
|
||||
- 완료 조건:
|
||||
- tool start/result/error/progress, permission, retry, complete 이벤트가 안정적인 스키마를 공유
|
||||
- replay 시 visible banner 중복 0건
|
||||
|
||||
### C. timeline 유도 모델 고정
|
||||
- 참조 모듈: `src/screens/REPL.tsx`, `src/components/Messages.tsx`
|
||||
- AX 적용 위치: `ChatWindow.xaml`, `ChatWindow.xaml.cs`
|
||||
- 완료 조건:
|
||||
- assistant/user message, execution log, compact boundary, queue summary를 하나의 derived timeline에서 생성
|
||||
- direct imperative bubble injection 제거
|
||||
|
||||
### D. status/composer 정리
|
||||
- 참조 모듈: `src/components/StatusLine.tsx`
|
||||
- AX 적용 위치: `ChatWindow.xaml`, `ChatWindow.AgentStatusPresentation.cs`
|
||||
- 완료 조건:
|
||||
- status strip, queue summary, runtime activity가 debounce된 같은 상태 소스를 사용
|
||||
- composer는 명시적 줄바꿈 중심으로만 성장
|
||||
|
||||
## 6. 검증 기준
|
||||
- reopen 후 최신 assistant state가 저장 상태와 동일
|
||||
- retry/regenerate/queue follow-up이 서로 다른 실행 경로로 분기되지 않음
|
||||
- permission popup, inline ask, plan approval이 transcript 기준으로 닫힘
|
||||
- `dotnet build` 경고 0 / 오류 0
|
||||
|
||||
## 7. 최근 메모
|
||||
- 2026-04-06 09:36 (KST): 상태 strip 표현과 permission/tool-result 설명 카탈로그를 분리
|
||||
- 2026-04-06 09:44 (KST): mixed inline interaction rendering을 presentation 파일로 분리
|
||||
- 2026-04-06 09:58 (KST): Git branch popup과 footer 보조 요약 helper를 분리
|
||||
- 2026-04-06 10:07 (KST): topic preset 렌더와 선택 흐름을 전용 presentation 파일로 이동
|
||||
- 2026-04-06 11:52 (KST): permission, tool-result, skill gallery 설명층을 고도화
|
||||
92
docs/AX_AGENT_EXECUTION_IMPROVEMENT_PLAN.md
Normal file
92
docs/AX_AGENT_EXECUTION_IMPROVEMENT_PLAN.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# AX Agent 실행 개선 계획
|
||||
|
||||
업데이트: 2026-04-15 18:20 (KST)
|
||||
|
||||
## 1. 목적
|
||||
- AX Agent의 실행 신뢰성, 권한 처리 일관성, 세션 복원 품질을 높입니다.
|
||||
- 외부 제품명 비교 대신 실제 참조 모듈 경로와 AX 적용 위치만 기준으로 관리합니다.
|
||||
- UI 보정만으로 가리는 수정은 지양하고 `상태 -> 실행 -> 렌더` 순서로 정리합니다.
|
||||
|
||||
## 2. 현재 판단
|
||||
- 실행 엔진과 루프 품질은 안정 구간에 들어왔지만, 장기 세션 복원과 이벤트 정규화는 계속 다듬을 여지가 있습니다.
|
||||
- 설정이 런타임 경로를 바꾸는 지점은 사용자 설정과 개발자용 실험 설정을 더 분리할 필요가 있습니다.
|
||||
- transcript, status line, queue 표시는 충분히 가벼워졌지만 상태 계산 소스는 더 단일화해야 합니다.
|
||||
|
||||
## 3. 참조 흐름
|
||||
|
||||
| 참조 모듈 | AX 적용 위치 | 완료 조건 | 품질 판정 기준 |
|
||||
|---|---|---|---|
|
||||
| `src/bootstrap/state.ts` | `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`, `src/AxCopilot/Services/ChatStorageService.cs` | 현재 턴, queue, retry, 실행 이벤트, 저장 스냅샷이 하나의 런타임 상태 모델로 정리 | reopen/retry/queue 후 중복 assistant 카드나 빈 카드가 생기지 않음 |
|
||||
| `src/bridge/initReplBridge.ts` | `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`, `src/AxCopilot/Services/LlmService.cs` | send/regenerate/retry/queued follow-up/slash가 하나의 실행 준비 경로를 통과 | 같은 입력과 설정에서 진입점이 달라도 실행 경로가 흔들리지 않음 |
|
||||
| `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가 루프 계층에서 한 번만 정규화 | Cowork/Code 장기 실행 중 상태 문구가 과도하게 흔들리지 않음 |
|
||||
| `src/bridge/bridgeMessaging.ts` | `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Services/Agent/AgentLoopService.cs` | 실행 이벤트와 표시 전용 이벤트를 렌더 이전에 분리 | replay 후 visible banner 중복이 발생하지 않음 |
|
||||
| `src/screens/REPL.tsx`, `src/components/Messages.tsx`, `src/components/StatusLine.tsx` | `src/AxCopilot/Views/ChatWindow.xaml`, `src/AxCopilot/Views/ChatWindow.xaml.cs` | timeline, composer, status strip이 공통 런타임 상태를 사용 | 리사이즈, queue 연속 실행, retry 후에도 UI가 패치식으로 흔들리지 않음 |
|
||||
|
||||
## 4. 실행 단계
|
||||
|
||||
### A. 런타임 상태 단일화
|
||||
- 적용 위치: `ChatWindow.xaml.cs`, `AxAgentExecutionEngine.cs`, `ChatStorageService.cs`
|
||||
- 완료 조건:
|
||||
- `Chat`, `Cowork`, `Code`가 같은 런타임 상태 모델을 갱신
|
||||
- queue, retry, compact 이후 상태가 재오픈 후에도 동일하게 복원
|
||||
- 품질 기준:
|
||||
- 같은 대화를 다시 열었을 때 보이는 timeline과 저장 상태가 일치
|
||||
- queue badge와 최근 실행 이력이 어긋나지 않음
|
||||
|
||||
### B. 실행 준비 경로 일원화
|
||||
- 적용 위치: `AxAgentExecutionEngine.cs`, `LlmService.cs`
|
||||
- 완료 조건:
|
||||
- prompt stack assembly, execution mode choice, final commit이 엔진 기준으로 통합
|
||||
- send/regenerate/retry/slash가 동일 API를 사용
|
||||
- 품질 기준:
|
||||
- 같은 탭과 같은 설정에서 실행 경로가 예측 가능
|
||||
- UI에서 별도 prompt stack을 만들지 않음
|
||||
|
||||
### C. 루프 이벤트 정규화
|
||||
- 적용 위치: `AgentLoopService.cs`, `AgentLoopTransitions.cs`, `AgentLoopTransitions.Execution.cs`
|
||||
- 완료 조건:
|
||||
- 권한 요청, 실패, 재시도, 완료 이벤트가 안정적인 스키마를 사용
|
||||
- bounded activity/event record 기준이 문서화
|
||||
- 품질 기준:
|
||||
- 장기 도구 실행 중 상태 flash가 줄고 debug payload 노출이 최소화
|
||||
|
||||
### D. timeline 유도 모델 고정
|
||||
- 적용 위치: `ChatWindow.xaml`, `ChatWindow.xaml.cs`
|
||||
- 완료 조건:
|
||||
- assistant/user message, 실행 로그, compact boundary, queue summary가 하나의 derived timeline에서 생성
|
||||
- 직접 bubble injection 경로 제거
|
||||
- 품질 기준:
|
||||
- blank assistant card 0건
|
||||
- token-only completion 0건
|
||||
- re-render 뒤 duplicate banner 0건
|
||||
|
||||
### E. composer와 status strip 정리
|
||||
- 적용 위치: `ChatWindow.xaml`, `ChatWindow.xaml.cs`
|
||||
- 완료 조건:
|
||||
- composer height는 명시적 줄바꿈 중심으로만 증가
|
||||
- status strip, queue summary, runtime activity가 debounce된 업데이트를 사용
|
||||
- 품질 기준:
|
||||
- resize 이후 입력창이 과하게 커지지 않음
|
||||
- metadata가 메시지 본문보다 앞서 보이지 않음
|
||||
|
||||
### F. 복구/재개/검증 마감
|
||||
- 적용 위치: `ChatWindow.xaml.cs`, `AxAgentExecutionEngine.cs`, `ChatStorageService.cs`
|
||||
- 완료 조건:
|
||||
- reopen after interruption, retry-last, regenerate, manual compact, manual stop, manual resume 시나리오를 모두 통과
|
||||
- 최신 assistant state와 저장 conversation이 일치
|
||||
- 품질 기준:
|
||||
- 복원 후 마지막 상태가 실제 종료 시점과 같음
|
||||
- 세션 재개 후 추가 오류 전파가 없음
|
||||
|
||||
## 5. 검증 기준
|
||||
- `dotnet build` 경고 0 / 오류 0
|
||||
- 고위험 변경마다 최소 1개 이상 회귀 테스트 추가
|
||||
- `internal` / `external` 운영 모드 정책 위반 0건
|
||||
- reopen, retry, regenerate, queue follow-up, permission, compact 시나리오 수동 점검 유지
|
||||
|
||||
## 6. 최신 메모
|
||||
- 2026-04-05 15:34 (KST): 실행 개선 계획을 실제 참조 모듈 흐름 기준으로 재정리했습니다.
|
||||
- 2026-04-05 16:55 (KST): 엔진, 채팅 UI, 상태 UX, 설정 연동의 구조적 갭을 분리해 정리했습니다.
|
||||
- 2026-04-06 09:36 (KST): 상태 strip 표현을 전용 카탈로그로 분리하고 permission/tool-result 설명을 정형화했습니다.
|
||||
- 2026-04-06 10:07 (KST): topic preset과 사용자 상호작용 렌더 책임을 presentation 파일로 계속 분리했습니다.
|
||||
- 2026-04-06 11:52 (KST): permission, tool-result, skill gallery 설명층을 더 구체적인 운영 정보 중심으로 보강했습니다.
|
||||
78
docs/AX_AGENT_QUALITY_PLAN.md
Normal file
78
docs/AX_AGENT_QUALITY_PLAN.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# AX Agent 품질 계획
|
||||
|
||||
업데이트: 2026-04-15 18:20 (KST)
|
||||
|
||||
## 1. 범위
|
||||
- 명령 처리 흐름
|
||||
- 권한 / hook 계약
|
||||
- plan / run 내구성
|
||||
- 세션 / 로그 관리
|
||||
- 도구 / 스킬 운영 정합성
|
||||
|
||||
## 2. 현재 상태 요약
|
||||
- 루프 가드와 검증 게이트는 주요 경로에 반영됨
|
||||
- 병렬 도구 실행, Plan Mode, unknown-tool 복구는 기본 동작 확보
|
||||
- 세션 재개와 이벤트 replay는 수치 기반 관리 단계로 진입
|
||||
|
||||
## 3. 단계별 품질 게이트
|
||||
|
||||
### P1 Hook 계약 고도화
|
||||
- `updatedInput`, `updatedPermissions`, `additionalContext`를 AX 실행 루프에 반영
|
||||
- 설정 토글로 위험 기능 제어
|
||||
|
||||
### P2 세션 / 이벤트 내구성
|
||||
- run 상태 영속화와 resume 기준 고정
|
||||
- jsonl 이벤트 필드 표준화와 재생 가능성 확보
|
||||
|
||||
### P3 실패 복구 표준화
|
||||
- unknown-tool, 권한거부, 파라미터 오류를 유형화
|
||||
- 유형별 복구 프롬프트와 다음 액션 우선순위 고정
|
||||
|
||||
### P4 완료 품질 정렬
|
||||
- 코드/문서 작업별 완료 체크리스트 표준화
|
||||
- 증거 없는 완료 응답 방지
|
||||
|
||||
## 4. 운영 점검 스냅샷
|
||||
- 도구 레지스트리 등록 수: 65개
|
||||
- `IAgentTool` 구현 수: 65개
|
||||
- 내장 스킬 파일 수: 40개
|
||||
- `allowed-tools` 적용 스킬: 40/40
|
||||
- 레거시 도구명 `process_run`, `grep_tool` 참조: 0건
|
||||
- 내부 모드 차단 정책: `http_tool` 전면 차단, `open_external` 외부 URL 차단
|
||||
|
||||
## 5. 즉시 보완 항목
|
||||
1. 스킬 frontmatter 확장 유지: `when_to_use`, `argument-hint`, `model`, `disable-model-invocation`, `user-invocable`, `context`, `agent`, `effort`, `paths`, `shell`
|
||||
2. `paths` 기반 조건부 활성화 유지
|
||||
3. 도구 별칭 정규화와 runtime hook filter 적용 유지
|
||||
4. 위험 자동허용 가드(`process`, `spawn_agent`, `snippet_runner`) 강제 승인 정책 유지
|
||||
|
||||
## 6. 내부 벤치마크 기준
|
||||
|
||||
| 시나리오 | 기준 테스트 | 합격 기준 |
|
||||
|---|---|---|
|
||||
| 기본 Agentic loop | `AgentLoopE2ETests.RunAsync_ExecutesToolCall_AndCompletesWithFinalText` | ToolCall/ToolResult/Complete 이벤트 순서 유효, 최종 응답에 결과 포함 |
|
||||
| unknown-tool 복구 | `AgentLoopE2ETests.RunAsync_UnknownTool_RecoversAndCompletes` | 오류 후 완료까지 수렴, 반복 실패 루프 없음 |
|
||||
| Plan Mode 실행 연결 | `AgentLoopE2ETests.RunAsync_PlanModeAlways_EmitsPlanningThenExecutesTool` | 계획 응답 뒤 실제 도구 호출과 최종 결과 생성 |
|
||||
| 권한 Ask 거부 처리 | `AgentLoopE2ETests.RunAsync_AskPermissionDenied_EmitsPermissionEvents_AndCompletes` | PermissionRequest/PermissionDenied 이벤트 기록 후 안전 종료 |
|
||||
| Hook 입력 변형 | `AgentLoopE2ETests.RunAsync_PreHookInputMutation_ChangesToolArguments` | pre-hook `updatedInput`이 실제 도구 입력에 반영 |
|
||||
| Runtime 정책 강제 | `AgentLoopE2ETests.RunAsync_DisallowedTool_ByRuntimePolicy_EmitsPolicyRecoveryError` | 비허용 도구 차단과 정책 복구 경고 후 종료 |
|
||||
| Hook filter 정합성 | `AgentLoopE2ETests.RunAsync_HookFilters_ExecuteOnlyMatchingHookForToolAndTiming` | 지정 hook만 실행되고 비매칭 hook는 미실행 |
|
||||
| 별칭 정규화 | `AgentLoopE2ETests.RunAsync_EnterPlanModeAlias_ResolvesAndExecutes` | CamelCase 도구명이 내부 snake_case 도구로 매핑되어 실행 |
|
||||
| 혼합 복구 내구성 | `AgentLoopE2ETests.RunAsync_MixedRecovery_UnknownToolAndPermissionDenied_TerminatesSafely` | 반복 한도 안에서 안전 종료 |
|
||||
|
||||
## 7. replay 안정성 기준
|
||||
|
||||
| 시나리오 | 기준 테스트 | 합격 기준 |
|
||||
|---|---|---|
|
||||
| 실행 이벤트 정렬/압축 복원 | `ChatSessionStateServiceTests.LoadOrCreateConversation_NormalizesHistoryOrderAndCompactsSize` | ExecutionEvents 400개 상한과 시간순 정렬 유지 |
|
||||
| run 이력 중복 정규화 | `ChatSessionStateServiceTests.LoadOrCreateConversation_NormalizesAgentRunDuplicatesByRunId` | 동일 `RunId`는 최신 상태 1건으로 축약 |
|
||||
| terminal 우선 판정 | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_PrefersTerminalEventsWhenTimestampsEqual` | 동시각 이벤트는 terminal 상태 기준으로 복원 |
|
||||
| active 복원 | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_RebuildsActiveTasksFromNonTerminalEvents` | 중단 후 재개 시 active task 재구성 |
|
||||
| dangling 정리 | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_CompleteClearsDanglingRunScopedActiveTasks` | Complete 뒤 run 스코프 dangling active task 0건 |
|
||||
|
||||
## 8. 배포 체크리스트
|
||||
1. `dotnet build` 경고 0 / 오류 0
|
||||
2. `dotnet test` 전체 통과
|
||||
3. 내부 벤치마크 시나리오 전건 통과
|
||||
4. `Suite=ReplayStability` 전건 통과
|
||||
5. `scripts/release-gate.ps1` 실행 결과 기록
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
업데이트: 2026-04-08 10:38 (KST)
|
||||
|
||||
`OpenCode`와 AX Agent를 같은 기준으로 비교하기 위한 공통 회귀 프롬프트 세트입니다.
|
||||
AX Agent 실행 흐름을 같은 기준으로 점검하기 위한 공통 회귀 프롬프트 세트입니다.
|
||||
|
||||
## 사용 규칙
|
||||
|
||||
- 루프 정책, transcript 렌더, 권한/계획/진행 UX, queue/compact/reopen 흐름에 영향을 주는 변경 뒤에는 이 문서를 기준으로 최소 1회 점검합니다.
|
||||
- 모든 항목을 매번 전부 돌릴 필요는 없지만, 바뀐 영역과 맞닿은 묶음은 반드시 확인합니다.
|
||||
- 결과는 “모양이 똑같은가”보다 “사용자 체감 흐름과 완료 품질이 같은가”를 기준으로 봅니다.
|
||||
- 결과는 “화면이 비슷한가”보다 “사용자 체감 흐름과 완료 품질이 안정적인가”를 기준으로 봅니다.
|
||||
|
||||
## 실패 분류
|
||||
|
||||
|
||||
50
docs/AX_AGENT_RUNTIME_QUALITY_PLAN.md
Normal file
50
docs/AX_AGENT_RUNTIME_QUALITY_PLAN.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# AX Agent 런타임 품질 계획
|
||||
|
||||
업데이트: 2026-04-15 18:20 (KST)
|
||||
|
||||
## 1. 기준
|
||||
- 대상 범위: 명령 처리, 권한/훅, plan/run 내구성, 세션/로그 관리
|
||||
- 문서 목적: AX Agent 런타임 경로의 품질 기준과 마감 조건을 명확히 고정
|
||||
|
||||
## 2. 주요 갭
|
||||
- Hook 출력의 구조화 계약 적용 범위가 일부 경로에 아직 제한적입니다.
|
||||
- 세션 재개와 이벤트 replay 품질은 시나리오별 편차가 남아 있습니다.
|
||||
- 도구 선택 실패 뒤 재시도 전략의 메시지와 다음 행동이 완전히 표준화되지는 않았습니다.
|
||||
|
||||
## 3. 실행 순서
|
||||
1. Hook 계약 고도화
|
||||
2. 세션/이벤트 내구성 정리
|
||||
3. 실패 복구 메시지 표준화
|
||||
4. 완료 품질 게이트 고정
|
||||
|
||||
## 4. 완료 판정
|
||||
- 내부 벤치마크 목표 성공률 충족
|
||||
- 세션 재개/이벤트 재생 오류 0건
|
||||
- 빌드 경고 0 / 오류 0 유지
|
||||
|
||||
## 5. 점검 스냅샷
|
||||
- 기준 시점: 2026-04-03
|
||||
- 계획 대비 현재 수준: 약 92~95%
|
||||
- 테스트 상태: `dotnet test` 374/374 통과
|
||||
- Hook 계약: 구현 완료 수준
|
||||
- 세션/이벤트 내구성: 복원/재생 경계 케이스 테스트 반영
|
||||
- 실패 복구 표준화: unknown-tool/권한/정체 경로 반영
|
||||
- 완료 품질 게이트: 문서화와 코드 반영 완료
|
||||
|
||||
## 6. 관리 대상
|
||||
1. 도구 계층: 목록, 별칭 정규화, unknown-tool 복구, 선택 정책
|
||||
2. 스킬 계층: 로더, frontmatter, 파일 기반 운영, 조건부 활성화
|
||||
3. 훅/권한: pre/post hook 계약, permission update 반영, ask/auto/deny 일관성
|
||||
4. 세션/상태: run 복원, 이벤트 replay, 중복 억제, resume 신뢰성
|
||||
5. 계획/실행: plan 승인/수정 이력, 실행 게이트, 조기 완료 방지
|
||||
6. MCP/외부도구: 연결, 리소스 조회, 실패 복구, internal 정책
|
||||
7. 설정/UI 연동: 설정값, 실행 코드, UI 반영 동기화
|
||||
|
||||
## 7. 다음 순서
|
||||
1. Agentic loop E2E 시나리오를 회귀 테스트로 계속 고정
|
||||
2. 벤치마크 합격 기준과 증적을 배포 체크리스트에 연결 유지
|
||||
3. 수치와 상태 문구를 `README.md`, `docs/DEVELOPMENT.md`, 로드맵 문서와 동기화
|
||||
|
||||
## 8. 운영 기준
|
||||
- 내부 벤치마크와 replay 안정성 테스트는 릴리즈 전 최소 조건으로 유지
|
||||
- 문서에는 비교·모사 표현보다 AX 기준 완료 조건과 검증 결과만 기록
|
||||
@@ -1,238 +0,0 @@
|
||||
# claude-code / AX Agent 구조 비교 문서
|
||||
|
||||
업데이트: 2026-04-09 10:20 (KST)
|
||||
|
||||
이 문서는 AX Agent를 `claude-code` 동등 품질 기준으로 유지·검증하기 위한 비교 기준 문서입니다.
|
||||
실제 비교 대상 저장 폴더명은 `claw-code`이지만, 문서 표기는 `claude-code`로 통일합니다.
|
||||
|
||||
## 1. claude-code 구조, 특징 기능, 에이전트 루프
|
||||
|
||||
### 1-1. 구조 핵심
|
||||
|
||||
`claude-code`는 크게 아래 축으로 나뉩니다.
|
||||
|
||||
1. 부트스트랩/세션 상태
|
||||
- `src/bootstrap/state.ts`
|
||||
- `src/bridge/initReplBridge.ts`
|
||||
- `src/bridge/sessionRunner.ts`
|
||||
2. 메인 REPL/대화 화면
|
||||
- `src/screens/REPL.tsx`
|
||||
- `src/components/Messages.tsx`
|
||||
- `src/components/VirtualMessageList.tsx`
|
||||
- `src/components/StatusLine.tsx`
|
||||
3. 도구 실행 계층
|
||||
- `src/services/tools/toolOrchestration.ts`
|
||||
- `src/services/tools/StreamingToolExecutor.ts`
|
||||
4. 메모리/컨텍스트/권한
|
||||
- `04_작동원리.md`
|
||||
- `05_메모리와컨텍스트.md`
|
||||
- `06_권한시스템.md`
|
||||
- `15_스킬.md`
|
||||
|
||||
### 1-2. 특징 기능
|
||||
|
||||
`claude-code`의 강점은 기능 개수보다 실행 품질에 있습니다.
|
||||
|
||||
- 대화, 도구 실행, 권한, 상태줄이 한 흐름으로 이어진다.
|
||||
- transcript가 단순 채팅 로그가 아니라 실행 관측 UI 역할을 한다.
|
||||
- 도구 호출이 응답 후처리가 아니라 루프 자체의 핵심 경로다.
|
||||
- read-only 도구는 병렬화하고, non-concurrent 도구는 직렬화해 체감 반응성을 높인다.
|
||||
- 메모리 구조가 `managed / user / project / local` 계층으로 명확하다.
|
||||
- `CLAUDE.md`, `.claude/rules/*.md`, `paths:` frontmatter, `@include` 같은 규칙 기반 메모리 주입이 강하다.
|
||||
- 권한 시스템이 `default / acceptEdits / plan / bypassPermissions`와 allow/deny rule로 분리되어 있다.
|
||||
- skill 시스템이 단순 프롬프트 스니펫이 아니라 재사용 가능한 워크플로우 레이어다.
|
||||
|
||||
### 1-3. 에이전트 루프 구조
|
||||
|
||||
`claude-code`의 기본 루프는 다음 순서에 가깝습니다.
|
||||
|
||||
1. 사용자 메시지 수신
|
||||
2. 시스템 컨텍스트 조립
|
||||
- Git 상태
|
||||
- 메모리 계층
|
||||
- 현재 날짜/환경
|
||||
- 사용 가능한 도구/권한 상태
|
||||
3. 모델 호출
|
||||
4. tool_use block 감지
|
||||
5. 권한 판단
|
||||
6. 도구 실행
|
||||
7. tool_result를 다시 모델에 투입
|
||||
8. 필요 시 추가 도구 호출
|
||||
9. 최종 텍스트 응답 커밋
|
||||
|
||||
중요한 점은, 이 루프가 단순히 "LLM 호출 후 도구 실행"이 아니라 `도구를 전제로 설계된 루프`라는 점입니다.
|
||||
|
||||
### 1-4. Cowork/Code에서 결과가 잘 나오는 이유
|
||||
|
||||
#### 1. 도구 우선 오케스트레이션
|
||||
|
||||
- `toolOrchestration.ts`가 tool call을 배치로 나누고
|
||||
- `StreamingToolExecutor.ts`가 스트리밍 도중에도 도구 실행 준비를 진행합니다.
|
||||
- read-only/concurrency-safe 도구는 병렬 실행해 첫 반응 시간을 줄입니다.
|
||||
|
||||
#### 2. 실행 중 관측성이 높음
|
||||
|
||||
- `Messages.tsx`
|
||||
- `VirtualMessageList.tsx`
|
||||
- `StatusLine.tsx`
|
||||
|
||||
이 구조 덕분에 사용자는 "지금 무엇을 읽고, 무엇을 실행하고, 어디서 멈췄는지"를 계속 볼 수 있습니다.
|
||||
긴 작업에서도 멈춘 것처럼 느껴지지 않는 이유가 여기 있습니다.
|
||||
|
||||
#### 3. 긴 세션을 버티는 transcript 구조
|
||||
|
||||
- transcript는 전체 렌더를 계속 다시 그리지 않습니다.
|
||||
- `VirtualMessageList.tsx` 기준으로 가시 영역 중심 렌더와 스크롤/탐색 보조 구조가 분리되어 있습니다.
|
||||
- 긴 세션, 많은 도구 호출, 많은 중간 상태에서도 UI 부하가 상대적으로 낮습니다.
|
||||
|
||||
#### 4. 메모리와 규칙 주입이 명시적
|
||||
|
||||
- `CLAUDE.md`
|
||||
- `.claude/rules/*.md`
|
||||
- `paths:`
|
||||
- `@include`
|
||||
|
||||
이 구조 때문에 프로젝트/경로/사용자/관리자 규칙이 프롬프트에 일관되게 들어갑니다.
|
||||
결과가 흔들릴 때도 "왜 그런 성향이 나왔는지" 추적이 쉽습니다.
|
||||
|
||||
### 1-5. 주요 성능과 품질에 영향을 주는 프롬프트 전략
|
||||
|
||||
1. 도구를 먼저 쓰게 만드는 직접적인 지시
|
||||
2. 컨텍스트를 계층화해서 넣음
|
||||
3. 권한과 도구 사용 범위를 명확히 분리
|
||||
4. 실행 중간 상태를 계속 보여줘 재시도/복구가 자연스러움
|
||||
5. read-only tool 병렬화로 초기 탐색 시간을 줄임
|
||||
6. transcript/상태줄이 실제 실행 관측 수단으로 동작
|
||||
|
||||
## 2. AX Agent 구조, 특징 기능, 에이전트 루프
|
||||
|
||||
### 2-1. 구조 핵심
|
||||
|
||||
현재 AX Agent는 다음 축으로 구성됩니다.
|
||||
|
||||
1. 에이전트 실행
|
||||
- `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopService.cs`
|
||||
- `src/AxCopilot/Services/Agent/StreamingToolExecutionCoordinator.cs`
|
||||
2. 루프 정책 분리 계층
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopTransitions.Execution.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopTransitions.Verification.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopTransitions.Documents.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopCompactionPolicy.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopRuntimeThresholds.cs`
|
||||
3. 메모리 구조
|
||||
- `src/AxCopilot/Services/AgentMemoryService.cs`
|
||||
- `src/AxCopilot/Services/Agent/MemoryTool.cs`
|
||||
4. transcript/UI 구조
|
||||
- `src/AxCopilot/Views/ChatWindow.xaml.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptHost.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptRendering.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptRenderPlanner.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptRenderExecution.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptVirtualization.cs`
|
||||
5. 성능/검증 로그
|
||||
- `src/AxCopilot/Services/AgentPerformanceLogService.cs`
|
||||
|
||||
### 2-2. 특징 기능
|
||||
|
||||
- Chat / Cowork / Code를 한 창에서 운영
|
||||
- 등록 모델별 실행 프로파일 지원
|
||||
- Cowork/Code 전용 agent loop 사용
|
||||
- 문서 생성 계열 fallback 및 verification gate 지원
|
||||
- IBM/vLLM/OpenAI 호환 tool-use 경로 대응
|
||||
- 계층형 메모리 구조 지원
|
||||
- `/memory` 계열 도구와 설정 UI에서 메모리 관리 가능
|
||||
- transcript/진행 표시/UI 구조를 `claude-code` 기준으로 계속 분해해온 상태
|
||||
|
||||
### 2-3. 에이전트 루프 구조
|
||||
|
||||
현재 AX Agent의 루프는 대략 아래 순서입니다.
|
||||
|
||||
1. 실행 컨텍스트 구성
|
||||
2. 사용자 메시지와 시스템 지시 조립
|
||||
3. LLM 호출
|
||||
4. tool call 감지
|
||||
5. `StreamingToolExecutionCoordinator`를 통한 조기 도구 실행/prefetch
|
||||
6. 도구 결과 재투입
|
||||
7. verification/document fallback/compact 정책 수행
|
||||
8. 최종 결과 커밋
|
||||
9. transcript/status/perf 로그 반영
|
||||
|
||||
### 2-4. 현재 구조적 강점
|
||||
|
||||
1. 모델 프로파일 기반 제어
|
||||
2. 계층형 메모리 구조
|
||||
3. Cowork/Code용 별도 실행 정책
|
||||
4. 성능 계측 로그
|
||||
|
||||
### 2-5. 현재 구조적 약점
|
||||
|
||||
1. `ChatWindow.xaml.cs` 책임이 여전히 큼
|
||||
2. transcript가 아직 완전한 데이터 기반 가상화는 아님
|
||||
3. 루프 정책이 여전히 서비스 중심
|
||||
4. tool streaming executor가 독립 계층으로 강화되었지만 결합이 남음
|
||||
|
||||
## 3. claude-code와 AX Agent 비교
|
||||
|
||||
### 3-1. 전체 비교 요약
|
||||
|
||||
| 항목 | claude-code | AX Agent 현재 상태 |
|
||||
|------|-------------|-------------------|
|
||||
| 메모리 계층 | 매우 강함 | 많이 근접 |
|
||||
| tool orchestration | 매우 강함 | 많이 강화됨 |
|
||||
| transcript 가상화 | 강함 | 부분 근접 |
|
||||
| 진행 관측성 | 강함 | 많이 근접 |
|
||||
| 모델 프로파일성 | 단단함 | 프로파일 시스템 도입 완료 |
|
||||
| 문서 fallback | 비교적 단순/직접적 | 더 많은 정책 보유 |
|
||||
| 루프 응집도 | 모듈 분리 우수 | 개선 중, 많이 나아짐 |
|
||||
|
||||
### 3-2. AX Agent가 이미 따라잡은 부분
|
||||
|
||||
1. 메모리 계층 구조
|
||||
2. 진행 표시 UX
|
||||
3. 모델별 실행 성향 제어
|
||||
4. 도구 호출 강화
|
||||
|
||||
### 3-3. AX Agent가 아직 더 개선할 수 있는 부분
|
||||
|
||||
1. transcript의 진짜 가상화
|
||||
2. UI 렌더의 data-template화
|
||||
3. tool executor의 독립성
|
||||
4. Cowork/Code 실사용 로그 기반 검증 체계
|
||||
|
||||
### 3-4. 성능과 결과 품질에 직접 영향이 큰 구조 요소 비교
|
||||
|
||||
#### claude-code 쪽 핵심
|
||||
|
||||
- read-only tool 병렬화
|
||||
- streaming executor
|
||||
- transcript 가상화
|
||||
- 상태줄/메시지/도구 실행 분리
|
||||
- 명시적 메모리 계층
|
||||
- 권한 시스템과 루프의 강한 연결
|
||||
|
||||
#### AX Agent 쪽 핵심
|
||||
|
||||
- 모델 프로파일
|
||||
- document/verification/compact 정책 분리
|
||||
- IBM/vLLM 도구 호출 보강
|
||||
- transcript host/windowing/virtualization 보강
|
||||
- WPF 환경 특화 성능 대응
|
||||
|
||||
### 3-5. 현 시점 결론
|
||||
|
||||
현 시점 AX Agent는 `claude-code` 대비 다음 상태로 보는 것이 적절합니다.
|
||||
|
||||
- 구조적 방향성: 거의 동일한 방향
|
||||
- 메모리/도구/진행 표시: 상당 부분 근접
|
||||
- transcript/렌더 구조: 아직 한 단계 차이 존재
|
||||
- 장기 세션 성능: 실제 로그 기반 추가 검증 필요
|
||||
|
||||
즉 AX Agent는 더 이상 "기본 구조가 부족한 상태"는 아니고, 이제부터는 `실사용 검증 기반으로 남은 구조 차이를 줄이는 단계`입니다.
|
||||
|
||||
## 4. AX 개발 시 이 문서를 어떻게 쓸지
|
||||
|
||||
1. Cowork/Code 품질 이슈가 생기면 먼저 `claude-code` 기준 흐름과 비교
|
||||
2. 구조 리팩터링이 필요할 때 transcript / tool executor / loop policy / memory 중 어디를 건드리는지 먼저 분류
|
||||
3. 실사용 성능 검증 시 `%APPDATA%\\AxCopilot\\perf` 로그와 loop elapsed, transcript render elapsed, no-tool loop, verification/fallback/compact 비율을 함께 본다
|
||||
4. 계획 수립 시 항상 참조 파일, AX 적용 위치, 완료 조건, 품질 판정 기준을 같이 적는다
|
||||
@@ -1,153 +0,0 @@
|
||||
# CLAW-CODE 품질 동등화 계획 (전면 재작성)
|
||||
|
||||
## 1. 기준
|
||||
- 레퍼런스: `E:\AX Copilot - Codex\claw-code\claw-code-f5a40b86dede580f6543bf8926c9af017eea9409\src`
|
||||
- 동등화 범위: 명령 처리 흐름, 권한/훅 체계, plan/run 내구성, 세션/로그 관리.
|
||||
|
||||
## 2. 보존 이력 (요약만 유지)
|
||||
- 루프 가드(반복 실패/정체 감지)와 검증 게이트는 이미 AX에 부분 반영.
|
||||
- 병렬 도구 실행, Plan Mode, Unknown-tool 복구 로직은 반영 완료.
|
||||
- 세션/이력 안정화는 진행 중.
|
||||
|
||||
## 3. 현재 갭
|
||||
- Hook 출력의 구조화 계약 적용 범위가 제한적.
|
||||
- 세션 재개/이벤트 replay 품질이 시나리오별 편차 존재.
|
||||
- 도구 선택 실패 후 재시도 전략의 일관성 부족.
|
||||
|
||||
## 4. 단계별 실행
|
||||
|
||||
### P1 Hook 계약 고도화
|
||||
- `updatedInput`, `updatedPermissions`, `additionalContext`를 AX 실행 루프에 반영.
|
||||
- 설정 토글로 위험 기능 제어.
|
||||
|
||||
### P2 세션/이벤트 내구성
|
||||
- run 상태 영속화와 resume 기준 고정.
|
||||
- jsonl 이벤트 필드 표준화 및 재생 가능성 확보.
|
||||
|
||||
### P3 실패 복구 표준화
|
||||
- unknown-tool/권한거부/파라미터 오류를 유형화.
|
||||
- 유형별 복구 프롬프트와 다음 액션 우선순위 고정.
|
||||
|
||||
### P4 완료 품질 정렬
|
||||
- 코드/문서 작업별 완료 체크리스트 표준화.
|
||||
- 증거 없는 완료 응답 방지.
|
||||
|
||||
## 5. 완료 판정
|
||||
- 내부 벤치마크 시나리오에서 목표 성공률 충족.
|
||||
- 세션 재개/이벤트 재생 오류 0건.
|
||||
- 빌드 경고 0/오류 0 유지.
|
||||
|
||||
## 6. 2026-04-03 점검 스냅샷
|
||||
- 기준 시점: 2026-04-03.
|
||||
- 계획 대비 현재 수준: 약 92~95%.
|
||||
- 테스트 상태: `dotnet test` 374/374 통과.
|
||||
- P1 Hook 계약: 구현 완료 수준.
|
||||
- P2 세션/이벤트 내구성: 구현 완료 수준(복원/재생 경계 케이스 테스트 반영).
|
||||
- P3 실패 복구 표준화: 구현 완료 수준(unknown-tool/권한/정체/fork 강제 흐름 반영).
|
||||
- P4 완료 품질 정렬: 구현 완료 수준(게이트 로직 + 벤치마크 기준 문서화 완료).
|
||||
|
||||
## 7. 스킬/도구 운영 점검 (2026-04-03)
|
||||
- 도구 레지스트리 등록 수: 65개 (`ToolRegistry.CreateDefault()` 기준).
|
||||
- `IAgentTool` 구현 수: 65개. 동적 MCP 래퍼(`McpTool`)는 런타임 등록 구조로 정상.
|
||||
- 내장 스킬 파일 수: 40개 (`src/AxCopilot/skills/*.skill.md`).
|
||||
- `allowed-tools` 적용 스킬: 40/40.
|
||||
- `requires: python` 고정 의존 스킬: 0개(기존 10개에 Python 가능/불가 분기 fallback 경로 반영).
|
||||
- 레거시 도구명 `process_run` 참조: 0건 (`process`로 정규화).
|
||||
- 레거시 도구명 `grep_tool` 참조: 0건 (`grep`로 정규화).
|
||||
- 내부 모드 차단 정책: `http_tool` 전면 차단, `open_external`의 외부 URL 차단.
|
||||
- 테스트 상태: `dotnet test` 374/374 통과.
|
||||
|
||||
## 8. claw-code 소스 직접 비교 결과 (2026-04-03)
|
||||
- 비교 기준 소스: `claw-code/.../src/tools.ts`, `src/Tool.ts`, `src/skills/loadSkillsDir.ts`, `src/skills/bundled/*.ts`.
|
||||
- claw-code 도구 상수명: 41개 (`*_TOOL_NAME` 기준).
|
||||
- AX 도구명: 65개 (`IAgentTool.Name` 기준).
|
||||
- claw-code 도구명 중 AX alias로 직접 해석되는 항목: 8개 (`Bash/Read/Write/Edit/Glob/Grep/WebFetch/WebSearch`).
|
||||
- 미해석 항목(33개)은 대부분 제품 철학 차이 영역(예: `EnterPlanMode`, `ExitWorktree`, `TeamCreate`, `TodoWrite`, `ToolSearch`, `REPL`, `Cron*`).
|
||||
- claw-code 번들 스킬은 코드 등록형 14개(`registerBundledSkill`)이며, AX는 파일 기반 스킬 40개(`*.skill.md`) 중심 구성.
|
||||
- 번들 스킬 이름 교집합은 0개이며(의도된 차별화), 품질 기준은 "이름 일치"가 아니라 "동작 등가(계획/복구/검증/권한/세션 내구성)"로 판단해야 함.
|
||||
- claw-code 스킬 메타데이터는 `allowedTools`, `whenToUse`, `model`, `disableModelInvocation`, `userInvocable`, `hooks`, `context`, `agent`, `paths`, `effort`, `shell`까지 지원.
|
||||
- AX 스킬 메타데이터는 `allowed-tools`, `when_to_use`, `argument-hint`, `model`, `disable-model-invocation`, `user-invocable`, `context`, `agent`, `effort`, `paths`, `shell`, `hooks`, `hook_filters`까지 런타임 연계 확장 완료.
|
||||
|
||||
## 9. claw-code 비교 기반 즉시 보완 항목 (반영 상태)
|
||||
1. 스킬 frontmatter 확장: `when_to_use`, `argument-hint`, `model`, `disable-model-invocation`, `user-invocable`, `context`, `agent`, `effort`, `paths`, `shell` 반영 완료.
|
||||
2. 스킬 실행 범위 제어: `paths` 기반 조건부 활성화 반영 완료(첨부 파일 경로 매칭 시 동적 활성화).
|
||||
3. 도구 별칭 정규화: claw-code 기본 도구명군(`WebFetch`, `WebSearch`, `AskUserQuestion`, `LSP`, `ListMcpResourcesTool` 등) AX 내부 도구명으로 매핑 반영 완료.
|
||||
4. 반영 완료(2026-04-03): `hooks`/`hook_filters` 계약 확장 및 runtime hook 필터링(도구/타이밍 기준) 적용.
|
||||
5. 반영 완료(2026-04-03): 슬래시 스킬 실행 시 `context/agent/effort/model/disable-model-invocation/allowed-tools/hooks/hook_filters` 메타데이터를 런타임 정책 지시문으로 합성 적용.
|
||||
6. 반영 완료(2026-04-03): `permissionSetup` 비교 기반으로 위험 자동허용 가드 추가(`process`, `spawn_agent`, `snippet_runner`는 전역 `Auto`에서도 승인 단계 강제).
|
||||
|
||||
## 10. 전체 영역 동시 비교 기준 (누락 방지)
|
||||
1. 도구 계층: 도구 목록, 별칭 정규화, unknown-tool 복구, tool search/선택 정책.
|
||||
2. 스킬 계층: 로더, frontmatter, 번들/파일 기반 동시 운영, 조건부 활성화.
|
||||
3. 훅/권한: pre/post hook 계약, permission update 반영, ask/auto/deny 일관성.
|
||||
4. 세션/상태: run 복원, 이벤트 replay, 중복 이벤트 억제, resume 신뢰성.
|
||||
5. 계획/실행: plan 승인/수정 이력, 실행 게이트, 조기 완료 방지.
|
||||
6. MCP/외부도구: 연결/리소스 조회/읽기, 실패 복구, internal 모드 정책.
|
||||
7. 서브에이전트: spawn/wait 제약, read-only 모드, 결과 회수 구조.
|
||||
8. 운영/설정/UI 연동: 설정값-실행코드-UI 동기화, 탭별 분기(Cowork/Code) 일치.
|
||||
|
||||
## 11. 다음 적용 순서 (전체 영역 병렬 보정)
|
||||
1. 기본 Agentic loop E2E 시나리오(도구 실행/unknown-tool 복구)를 회귀 테스트로 고정.
|
||||
2. 벤치마크 합격 기준(시나리오/통과조건/증적)을 문서화하고 배포 체크리스트에 연결. (완료)
|
||||
3. 최종 마감 시 패리티 문서(수치/상태)와 로드맵 문서를 동기화. (진행 중)
|
||||
|
||||
## 12. 내부 벤치마크 기준 (고정)
|
||||
|
||||
| 시나리오 | 기준 테스트 | 합격 기준 |
|
||||
|---|---|---|
|
||||
| 기본 Agentic loop (도구 호출 → 완료) | `AgentLoopE2ETests.RunAsync_ExecutesToolCall_AndCompletesWithFinalText` | ToolCall/ToolResult/Complete 이벤트가 순서상 유효하고 최종 응답에 계산 결과 포함 |
|
||||
| unknown-tool 복구 | `AgentLoopE2ETests.RunAsync_UnknownTool_RecoversAndCompletes` | unknown 도구 오류 이벤트 후 완료까지 수렴, 반복 실패 루프 없음 |
|
||||
| Plan Mode 실행 연결 | `AgentLoopE2ETests.RunAsync_PlanModeAlways_EmitsPlanningThenExecutesTool` | 계획 응답 후 실제 도구 호출이 이어지고 최종 결과 생성 |
|
||||
| 권한 Ask 거부 처리 | `AgentLoopE2ETests.RunAsync_AskPermissionDenied_EmitsPermissionEvents_AndCompletes` | PermissionRequest/PermissionDenied 이벤트가 기록되고 안전 종료 |
|
||||
| Hook 입력 변형 반영 | `AgentLoopE2ETests.RunAsync_PreHookInputMutation_ChangesToolArguments` | pre-hook `updatedInput`이 실제 도구 입력에 적용됨 |
|
||||
| Runtime 정책(`allowed_tools`) 강제 | `AgentLoopE2ETests.RunAsync_DisallowedTool_ByRuntimePolicy_EmitsPolicyRecoveryError` | 비허용 도구 차단 + 정책 복구 경고 후 종료 |
|
||||
| Hook filter 정합성 | `AgentLoopE2ETests.RunAsync_HookFilters_ExecuteOnlyMatchingHookForToolAndTiming` | 지정된 hook만 실행되고 비매칭 hook는 미실행 |
|
||||
| claw-code alias(`EnterPlanMode`) 정규화 | `AgentLoopE2ETests.RunAsync_EnterPlanModeAlias_ResolvesAndExecutes` | CamelCase 도구명이 AX 내부 snake_case 도구로 매핑되어 정상 실행 |
|
||||
| 혼합 복구 내구성 (unknown + 권한 + 대체도구) | `AgentLoopE2ETests.RunAsync_MixedRecovery_UnknownToolAndPermissionDenied_TerminatesSafely` | unknown-tool 오류 후 file_write 경유, math_eval로 수렴하고 반복 한도 내 안전 종료 |
|
||||
|
||||
### 벤치마크 배포 체크리스트 연결
|
||||
1. `dotnet build` 경고 0/오류 0.
|
||||
2. `dotnet test` 전체 통과 (`374/374` 기준, 증가 시 최신 값으로 동기화).
|
||||
3. 위 9개 시나리오의 회귀 테스트가 모두 통과.
|
||||
4. 패리티 수치/상태를 `NEXT_ROADMAP.md`와 동일 문구로 동기화.
|
||||
5. 릴리즈 전 게이트 스크립트 실행: `powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1`
|
||||
|
||||
### 실행 증적 (2026-04-03)
|
||||
- `dotnet test --filter "Suite=ParityBenchmark"`: 12/12 통과.
|
||||
- `powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1`: build/replay/full gate 통과.
|
||||
|
||||
## 13. 세션 Replay 안정성 기준 (고정)
|
||||
|
||||
| 시나리오 | 기준 테스트 | 합격 기준 |
|
||||
|---|---|---|
|
||||
| 실행 이벤트 정렬/압축 복원 | `ChatSessionStateServiceTests.LoadOrCreateConversation_NormalizesHistoryOrderAndCompactsSize` | ExecutionEvents 400개 상한 유지 + 시간순 정렬 유지 |
|
||||
| run 이력 중복 정규화 | `ChatSessionStateServiceTests.LoadOrCreateConversation_NormalizesAgentRunDuplicatesByRunId` | 동일 `RunId` 중복이 최신 상태 1건으로 축약 |
|
||||
| 동시각 이벤트 종결 우선 판정 | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_PrefersTerminalEventsWhenTimestampsEqual` | Tool/Permission 상태가 terminal 이벤트 기준으로 복원 |
|
||||
| 비종결 이벤트 active 복원 | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_RebuildsActiveTasksFromNonTerminalEvents` | 중단 후 재개 시 active task 3종(agent/tool/permission) 재구성 |
|
||||
| run 종료 시 dangling 정리 | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_CompleteClearsDanglingRunScopedActiveTasks` | Complete 이후 run 스코프 active task 잔존 0건 |
|
||||
| 현재 run 복원 우선순위 | `AppStateServiceTests.RestoreCurrentAgentRun_PrefersRunningExecutionEventOverHistory` | 실행 중 이벤트가 history보다 우선되어 현재 run 복원 |
|
||||
| recent timeline 재구성 | `AppStateServiceTests.RestoreRecentTasks_RebuildsRecentTaskTimelineFromExecutionEvents` | 도구/권한/에이전트 최근 이력 순서 복원 |
|
||||
| 권한 거부 후 active 권한 상태 정리 | `AppStateServiceTests.RestoreRecentTasks_PermissionDeniedLeavesNoActivePermissionAfterResume` | PermissionDenied 이후 run 재개 시 active permission 잔존 0건 |
|
||||
| Hook 타임라인 역순 병합 정합성 | `AppStateServiceTests.ApplyAgentEvent_ReplaysHookTimelineInReverseChronologicalOrder` | Hook 이벤트가 역순 타임라인에서도 시간/의미 순서 보존 |
|
||||
| 완료 이벤트 우선 정리(병렬 도구) | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_CompleteClearsParallelToolCallsForSameRun` | Complete 도착 시 동일 run의 병렬 도구 active task 즉시 정리 |
|
||||
|
||||
### 운영 규칙
|
||||
1. 위 시나리오는 `Suite=ReplayStability` 테스트 태그로 관리.
|
||||
2. 릴리즈 전 `Suite=ReplayStability` 전건 통과를 replay 불일치 0건의 최소 조건으로 사용.
|
||||
|
||||
### 실행 증적 (2026-04-03)
|
||||
- `dotnet test --filter "Suite=ReplayStability"`: 12/12 통과.
|
||||
- `powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1`: `ReplayStability` 포함 게이트 통과.
|
||||
|
||||
## 14. 권한 Hook 계약 (P2 마감 기준)
|
||||
- lifecycle hook 키:
|
||||
- `__permission_request__` (pre)
|
||||
- `__permission_granted__` (post)
|
||||
- `__permission_denied__` (post)
|
||||
- payload 기준 필드: `runId`, `tool`, `target`, `permission`, `granted`, `reason`.
|
||||
- 우선순위:
|
||||
1. Hook `updatedPermissions`가 현재 run의 `AgentContext.ToolPermissions`를 즉시 갱신.
|
||||
2. 갱신 후 `context.CheckToolPermissionAsync()`로 최종 판정.
|
||||
3. hook 실패/예외는 non-blocking(권한 흐름 지속).
|
||||
4. `additionalContext`는 가능한 경로에서 메시지 컨텍스트로 반영.
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
업데이트: 2026-04-14 19:50 (KST)
|
||||
업데이트: 2026-04-14 19:50 (KST)
|
||||
업데이트: 2026-04-15 12:51 (KST)
|
||||
- 업데이트: 2026-04-15 18:20 (KST)
|
||||
- README, 로드맵, 실행 계획 문서에서 비교·모사 표현을 줄이고 AX 기준 개발 계획과 검증 기록 중심으로 문서명과 설명을 정리했습니다.
|
||||
- 업데이트: 2026-04-15 16:49 (KST)
|
||||
- 런처 `~` 워크스페이스 복원 경로를 재검토하고, 같은 `exe`의 첫 번째 창 하나를 모든 스냅샷에 재사용하던 복원 매칭 결함을 수정했습니다. 기존 `src/AxCopilot/Core/ContextManager.cs`는 각 스냅샷마다 `exe`만 비교해 HWND를 찾았기 때문에, Chrome/Edge처럼 여러 창이 떠 있을 때 한 창만 반복 이동되며 배치가 무너지기 쉬웠습니다.
|
||||
- `src/AxCopilot/Core/ContextManager.cs`는 열린 창 후보를 수집한 뒤 `exe + 제목 매칭 점수 + 이미 사용한 핸들 제외` 기준으로 창을 배정하도록 바꿨습니다. exact title을 최우선으로 두고, 브라우저 suffix 제거/토큰 비교를 통해 비슷한 제목도 보조적으로 매칭합니다. 이미 다른 스냅샷에 배정된 핸들은 다시 쓰지 않아 multi-window 복원 품질을 높였습니다.
|
||||
@@ -92,7 +94,7 @@
|
||||
## ?낅뜲?댄듃 濡쒓렇
|
||||
|
||||
- ?낅뜲?댄듃: 2026-04-14 19:13 (KST)
|
||||
- `claude-code` 湲곗? Phase 4瑜??댁뼱??諛섏쁺?덉뒿?덈떎. `src/AxCopilot/Services/Agent/McpSkillCatalog.cs`瑜?異붽???MCP ?쒕쾭 硫뷀??곗씠?곕? `mcp` source scope??synthetic skill濡?蹂?섑븯怨? `ToolRegistry.RegisterMcpToolsAsync()` ?댄썑 snapshot??媛깆떊?섎룄濡??곌껐?덉뒿?덈떎.
|
||||
- `기준 구조` 湲곗? Phase 4瑜??댁뼱??諛섏쁺?덉뒿?덈떎. `src/AxCopilot/Services/Agent/McpSkillCatalog.cs`瑜?異붽???MCP ?쒕쾭 硫뷀??곗씠?곕? `mcp` source scope??synthetic skill濡?蹂?섑븯怨? `ToolRegistry.RegisterMcpToolsAsync()` ?댄썑 snapshot??媛깆떊?섎룄濡??곌껐?덉뒿?덈떎.
|
||||
- `src/AxCopilot/Services/Agent/SkillService.cs`??source policy瑜?`managed/user/additional/project/plugin/mcp/legacy` ?⑥쐞濡??먮떒?섎룄濡??뺤옣?덇퀬, source ?곗꽑?쒖쐞 湲곕컲 dedupe? inline shell trust boundary瑜??④퍡 ?곸슜?⑸땲?? plugin-only mode媛 耳쒖졇 ?덉쑝硫?managed/plugin/bundled留??좎??섍퀬 ?섎㉧吏 source???④퉩?덈떎.
|
||||
- ?щ옒??紐낅졊 ?⑹꽦? `src/AxCopilot/Views/SlashCommandCatalog.cs`? `src/AxCopilot/Views/ChatWindow.xaml.cs`?먯꽌 ?ш뎄?깊뻽?듬땲?? builtin command? skill??怨듯넻 priority濡??⑹꽦??異⑸룎 ??????ぉ留??몄텧?섍퀬, builtin `/review` 媛숈? ?덉빟 紐낅졊??project skill蹂대떎 ?덉젙?곸쑝濡??곗꽑?⑸땲??
|
||||
- ?ㅼ젙/UI??`src/AxCopilot/Views/SettingsWindow.xaml`, `src/AxCopilot/Views/AgentSettingsWindow.xaml`, `src/AxCopilot/Views/AgentSettingsWindow.xaml.cs`, `src/AxCopilot/Views/SkillGalleryWindow.xaml.cs`???곌껐?덉뒿?덈떎. MCP ?ㅽ궗 source ?좉?, plugin-only mode, source蹂?inline shell ?덉슜 踰붿쐞, MCP 移댄뀒怨좊━/諛곗?, synthetic skill???뚯씪 ?≪뀡 李⑤떒???④퍡 諛섏쁺?덉뒿?덈떎.
|
||||
@@ -549,7 +551,7 @@ dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj
|
||||
| ?꾩씠肄??좊땲硫붿씠???ш? ?쒖뼱 | `LauncherWindow.xaml.cs` | `sb.Completed`?먯꽌 利됱떆 ?ш? ??`_iconAnimationDelayTimer` 8珥??쒕젅?? ?좊떦 鍮덈룄 75% 媛먯냼. ?대┃ ???쒕젅??痍⑥냼 ??利됱떆 ?꾪솚 |
|
||||
| JsonSerializerOptions 怨듭쑀 | `AgentLoopService.cs` | `s_jsonOpts` ?뺤쟻 ?꾨뱶 異붽?, 4媛?`JsonSerializer.Serialize` ?몄텧???곸슜. L4096 `System.Text.Json.` ?묐몢???뺢퇋??|
|
||||
|
||||
### Claude Desktop ?ㅽ???UI 媛쒖꽑 (2026-04-09)
|
||||
### 업무형 데스크톱 UI 개선 (2026-04-09)
|
||||
|
||||
| ??ぉ | ?뚯씪 | ?섏젙 ?댁슜 |
|
||||
|------|------|----------|
|
||||
@@ -616,7 +618,7 @@ dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj
|
||||
|
||||
### ?ㅽ듃由щ컢 以?UI 踰꾨쾮?????媛쒖꽑 (2026-04-09)
|
||||
|
||||
Claude Desktop(React)? ?꾧뎄 ?몄텧???섏떗 嫄댁씠?대룄 留ㅻ걚?ъ슫 諛섎㈃, WPF ?깆? ?ы븯寃?踰꾨쾮?대뒗 臾몄젣???먯씤 遺꾩꽍 諛??섏젙.
|
||||
업무형 데스크톱 UI와 비교했을 때 WPF transcript가 과하게 다시 그려지던 문제를 분석하고 수정했습니다.
|
||||
|
||||
**洹쇰낯 ?먯씤**: React virtual DOM? 蹂寃쎈맂 遺遺꾨쭔 diff/patch?섏?留? WPF??留??뚮뜑留덈떎 ?꾩껜 ?쒓컖???몃━瑜??뚭눼 ???ъ깮??
|
||||
|
||||
@@ -629,7 +631,7 @@ Claude Desktop(React)? ?꾧뎄 ?몄텧???섏떗 嫄댁씠?대룄 留ㅻ걚?ъ
|
||||
|
||||
**鍮꾧탳**:
|
||||
|
||||
| ??ぉ | ?섏젙 ??(WPF) | ?섏젙 ??| Claude Desktop (React) |
|
||||
| ??ぉ | ?섏젙 ??(WPF) | ?섏젙 ??| 업무형 데스크톱 UI (React) |
|
||||
|------|-------------|---------|----------------------|
|
||||
| ?낅뜲?댄듃 ?꾨왂 | ?꾩껜 ?몃━ ?뚭눼?믪옱?앹꽦 | 4?④퀎: StreamingAppend ??Incremental ??**DiffRender** ??FullRender | Virtual DOM diff |
|
||||
| ?뚮뜑 媛꾧꺽 | 1.5~2.2珥?| 3~4珥?| ~16ms (requestAnimationFrame) |
|
||||
@@ -856,8 +858,8 @@ UI ?붿옄???洹쒕え 由ы뙥?좊쭅 ???꾪뿕 ?묒뾽 ??湲곕줉???덉쟾
|
||||
|------|------|
|
||||
| `docs/AGENT_ROADMAP.md` | ?먯씠?꾪듃 湲곕뒫 濡쒕뱶留?(吏?ν삎 怨좊룄??P1~P7 ?곸꽭 ?ы븿) |
|
||||
| `docs/LAUNCHER_ROADMAP.md` | ?곗쿂 湲곕뒫 濡쒕뱶留?|
|
||||
| `docs/OPENCODE_PARITY_PLAN.md` | OpenCode 湲곕뒫 ???怨꾪쉷 |
|
||||
| `docs/TOOL_PARITY_REPORT.md` | ?꾧뎄 ?명솚??由ы룷??|
|
||||
| `docs/AX_AGENT_QUALITY_PLAN.md` | AX Agent 품질 게이트 계획 |
|
||||
| `docs/TOOL_COVERAGE_REPORT.md` | ?꾧뎄 ?명솚??由ы룷??|
|
||||
| `docs/AX_AGENT_UI_CHECKLIST.md` | ?먯씠?꾪듃 UI 泥댄겕由ъ뒪??|
|
||||
| `docs/UI_UX_CHECKLIST.md` | UI/UX 泥댄겕由ъ뒪??|
|
||||
> ?낅뜲?댄듃: 2026-04-14 18:08 (KST)
|
||||
@@ -887,7 +889,7 @@ UI ?붿옄???洹쒕え 由ы뙥?좊쭅 ???꾪뿕 ?묒뾽 ??湲곕줉???덉쟾
|
||||
> - 李멸퀬: ?뚯뒪???꾨줈?앺듃??湲곗〈 nullable 寃쎄퀬 `src/AxCopilot.Tests/Services/WorkspaceContextGeneratorTests.cs(76)` 1嫄댁? ?좎??⑸땲??
|
||||
|
||||
- ?낅뜲?댄듃: 2026-04-14 18:37 (KST)
|
||||
- claude-code 濡쒖뺄 ?ㅻ깄?룹쓣 ?ㅼ떆 ?뺤씤?덉?留? ?꾩옱 ?ㅻ깄?룹뿉??PPT/臾몄꽌 ?꾩슜 踰덈뱾 ?ㅽ궗???쒕졆?섏? ?딆븯?듬땲?? ???AX媛 湲곕낯 ?ы븿?섍퀬 ?덈뒗 臾몄꽌??managed skill ?명듃瑜?以묒떖?쇰줈 諛고룷 ?먯궛 ?덉쭏???ㅻ벉?덉뒿?덈떎.
|
||||
- 기준 구조 濡쒖뺄 ?ㅻ깄?룹쓣 ?ㅼ떆 ?뺤씤?덉?留? ?꾩옱 ?ㅻ깄?룹뿉??PPT/臾몄꽌 ?꾩슜 踰덈뱾 ?ㅽ궗???쒕졆?섏? ?딆븯?듬땲?? ???AX媛 湲곕낯 ?ы븿?섍퀬 ?덈뒗 臾몄꽌??managed skill ?명듃瑜?以묒떖?쇰줈 諛고룷 ?먯궛 ?덉쭏???ㅻ벉?덉뒿?덈떎.
|
||||
- pptx-creator, docx-creator, report-writer, prd-generator, meeting-minutes, weekly-report, markdown-to-doc??when_to_use? argument-hint 硫뷀?瑜?異붽???proactive skill ?좏깮怨??щ옒???몄텧 媛?대뱶瑜?蹂닿컯?덉뒿?덈떎.
|
||||
- ?쇰컲 ?ㅼ젙怨?AX Agent ?ㅼ젙???ㅽ궗 紐⑸줉? managed ?ㅼ퐫?꾨? 蹂꾨룄 湲곕낯 ?쒓났 ?ㅽ궗 洹몃9?쇰줈 遺꾨━?덇퀬, ?ㅽ궗 媛ㅻ윭由щ룄 湲곕낯 ?쒓났 / ?꾨줈?앺듃 / ?뚮윭洹몄씤 / ?ъ슜??/ 怨좉툒 ?꾪꽣? 諛곗?瑜??ъ슜?섎룄濡??뺣━?덉뒿?덈떎.
|
||||
- ??蹂寃쎌쑝濡?臾몄꽌쨌?꾨젅?좏뀒?댁뀡 ?ㅽ궗? 鍮뚮뱶 異쒕젰 skills ?대뜑瑜??듯빐 湲곕낯 諛고룷?섎㈃?쒕룄, UI?먯꽌 ?ъ슜???ㅽ궗怨?援щ텇???곹깭濡??뺤씤?????덉뒿?덈떎.
|
||||
@@ -1009,8 +1011,8 @@ UI ?붿옄???洹쒕え 由ы뙥?좊쭅 ???꾪뿕 ?묒뾽 ??湲곕줉???덉쟾
|
||||
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentCommandQueueTests|CodeLanguageCatalogTests|WorkspaceContextGeneratorTests|PptxSkillConsultingDeckTests|DeckRepairGuideServiceTests" -p:OutputPath=bin\\verify_master_batch_tests\\ -p:IntermediateOutputPath=obj\\verify_master_batch_tests\\` 통과 35
|
||||
|
||||
업데이트: 2026-04-15 07:00 (KST)
|
||||
- `claw-code` 기준 남은 격차를 줄이기 위한 통합 고도화 계획을 확정했습니다. 남은 주요 축은 `에이전틱 루프/명령 큐`, `tool_result preview 안정화`, `명령/스킬 합성`, `문서 포맷 마감`, `개발언어 지원 정합화`, `회귀 테스트/릴리즈 게이트`입니다.
|
||||
- 첫 배치로 [AgentCommandQueue.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentCommandQueue.cs)를 우선순위 배치 소비가 가능한 구조로 재작성했습니다. `peek`, `dequeue`, `dequeueAllMatching`, `dequeuePriorityBatch`, `snapshot` API를 추가해 `claw-code`의 unified queue처럼 고우선 입력을 먼저 소비하고 lower-priority 항목을 뒤로 미루는 기반을 만들었습니다.
|
||||
- `기준 구조` 기준 남은 격차를 줄이기 위한 통합 고도화 계획을 확정했습니다. 남은 주요 축은 `에이전틱 루프/명령 큐`, `tool_result preview 안정화`, `명령/스킬 합성`, `문서 포맷 마감`, `개발언어 지원 정합화`, `회귀 테스트/릴리즈 게이트`입니다.
|
||||
- 첫 배치로 [AgentCommandQueue.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentCommandQueue.cs)를 우선순위 배치 소비가 가능한 구조로 재작성했습니다. `peek`, `dequeue`, `dequeueAllMatching`, `dequeuePriorityBatch`, `snapshot` API를 추가해 `기준 구조`의 unified queue처럼 고우선 입력을 먼저 소비하고 lower-priority 항목을 뒤로 미루는 기반을 만들었습니다.
|
||||
- [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)의 큐 배수 로직도 함께 조정했습니다. 기존 `DrainAll()` 방식 대신 같은 우선순위 배치만 소비하고, 남은 큐 항목이 있으면 `Deferred ... lower-priority queued item(s)` thinking 이벤트를 남겨 다음 턴으로 넘깁니다.
|
||||
- [AgentToolResultBudget.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentToolResultBudget.cs)는 preview 재사용 범위를 넓혔습니다. 기존에는 동일 `MsgId`에서만 `QueryPreviewContent`를 재사용했지만, 이제 `tool_use_id` 기준 preview 인덱스를 만들어 재구성된 tool result 메시지에서도 안정적으로 같은 preview를 재사용합니다.
|
||||
- 테스트는 [AgentCommandQueueTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentCommandQueueTests.cs)에 `priority batch dequeue`, `predicate matching` 시나리오를 추가했고, [AgentToolResultBudgetTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentToolResultBudgetTests.cs)에는 `tool_use_id`가 같은 cloned tool result가 이전 preview를 재사용하는 회귀 케이스를 추가했습니다.
|
||||
@@ -1107,27 +1109,27 @@ UI ?붿옄???洹쒕え 由ы뙥?좊쭅 ???꾪뿕 ?묒뾽 ??湲곕줉???덉쟾
|
||||
업데이트: 2026-04-15 10:10 (KST)
|
||||
- 통합 마감 계획 확정:
|
||||
1. `문서 포맷 최종 마감`
|
||||
- 참조 대상: `claw-code/src/query.ts`, `claw-code/src/utils/toolResultStorage.ts`, `claw-code/src/commands/init-verifiers.ts`
|
||||
- 참조 대상: `기준 구조/src/query.ts`, `기준 구조/src/utils/toolResultStorage.ts`, `기준 구조/src/commands/init-verifiers.ts`
|
||||
- AX 적용 위치: `PptxSkill.cs`, `DeckPlanningService.cs`, `DeckQualityReviewService.cs`, `DocxSkill.cs`, `DocumentAssemblerTool.cs`, `ExcelSkill.cs`, `HtmlSkill.cs`, `ArtifactQualityReviewService.cs`, `ArtifactRepairGuideService.cs`
|
||||
- 완료 조건: PPTX/DOCX/XLSX/HTML 모두 `plan -> critic -> repair` 흐름과 golden fixture 확장 완료
|
||||
- 품질 판정 기준: strong fixture는 `Needs work: none`, weak fixture는 포맷별 적절한 repair guide를 반환
|
||||
2. `에이전틱 루프 iteration pipeline 분리`
|
||||
- 참조 대상: `claw-code/src/QueryEngine.ts`, `claw-code/src/query.ts`, `claw-code/src/utils/messageQueueManager.ts`
|
||||
- 참조 대상: `기준 구조/src/QueryEngine.ts`, `기준 구조/src/query.ts`, `기준 구조/src/utils/messageQueueManager.ts`
|
||||
- AX 적용 위치: `AgentLoopService.cs`, `AgentLoopRunLifecycle.cs`, `AgentQueuedCommandProjector.cs`, `AgentQueryContextBuilder.cs`
|
||||
- 완료 조건: `RunAsync`의 bootstrap, query-view 생성, LLM 호출, tool dispatch, finalize를 더 작은 helper/service로 분리
|
||||
- 품질 판정 기준: 중단/재개/권한 승인/분기/장기 세션 replay 테스트 통과
|
||||
3. `tool_result replacement state 장기 세션 고정`
|
||||
- 참조 대상: `claw-code/src/utils/toolResultStorage.ts`
|
||||
- 참조 대상: `기준 구조/src/utils/toolResultStorage.ts`
|
||||
- AX 적용 위치: `AgentMessageInvariantHelper.cs`, `AgentToolResultBudget.cs`, `ContextCondenser.cs`, `ChatStorageService.cs`
|
||||
- 완료 조건: `tool_use_id` 변경, compact 이후, branch/replay 상황에서도 preview와 replacement 정책이 안정 유지
|
||||
- 품질 판정 기준: replay/branch 저장본에서 preview 흔들림 0건
|
||||
4. `개발언어 no-LSP fallback 심화`
|
||||
- 참조 대상: `claw-code/src/query.ts`, `claw-code/src/context.ts`
|
||||
- 참조 대상: `기준 구조/src/query.ts`, `기준 구조/src/context.ts`
|
||||
- AX 적용 위치: `CodeLanguageCatalog.cs`, `LspTool.cs`, `WorkspaceContextGenerator.cs`, `ChatWindow.SystemPromptBuilder.cs`, `SettingsWindow.xaml`
|
||||
- 완료 조건: 언어별 `manifest/build/test/lint` 힌트가 실제 fallback 분석과 워크스페이스 컨텍스트에 더 깊게 연결
|
||||
- 품질 판정 기준: 로컬 LSP 없는 저장소에서도 Auto 모드가 기본 실행 흐름과 영향 범위를 안정적으로 안내
|
||||
5. `명령/스킬 합성 및 릴리즈 게이트`
|
||||
- 참조 대상: `claw-code/src/commands.ts`, `claw-code/src/skills/loadSkillsDir.ts`
|
||||
- 참조 대상: `기준 구조/src/commands.ts`, `기준 구조/src/skills/loadSkillsDir.ts`
|
||||
- AX 적용 위치: `SlashCommandCatalog.cs`, `SkillService.cs`, `README.md`, `docs/DEVELOPMENT.md`, `docs/NEXT_ROADMAP.md`
|
||||
- 완료 조건: builtin/skill/plugin/workflow 토큰 충돌의 노출/실행 우선순위 완전 일치, 릴리즈 체크리스트 최신화
|
||||
- 품질 판정 기준: 같은 토큰 충돌 시 팔레트 표시와 실제 실행이 완전 일치하고, 릴리즈 전 수동 확인 항목 최소화
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
- `skills/*.skill.md` 파일 수: 41
|
||||
- Slash 명령 매핑 엔트리 수: 85
|
||||
|
||||
## 4) OpenCode 비교 포인트 (실행 반영 기준)
|
||||
- OpenCode 문서 기준 핵심 slash: `/permissions`, `/mcp` 확인
|
||||
## 4) 핵심 명령 점검 포인트 (실행 반영 기준)
|
||||
- 공통 운영 명령 기준: `/permissions`, `/mcp` 확인
|
||||
- AX 현재 매핑에 `/permissions`, `/allowed-tools`, `/mcp`, `/chrome`, `/compact` 포함
|
||||
- 다음 보강 우선순위:
|
||||
1. 수동 시나리오 기반 MCP/Chrome 진단 품질 강화
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## 2. 재작성 기준
|
||||
- 런처는 AX Agent 실행 품질을 끌어올리는 입력 허브로 재정의.
|
||||
- OpenCode의 명령 중심 워크플로우를 AX Commander UX에 맞게 흡수.
|
||||
- 명령 중심 워크플로우를 AX Commander UX에 맞게 재구성.
|
||||
|
||||
## 3. 2026 실행 계획 (v0.7.3 ~ v0.8.x)
|
||||
|
||||
|
||||
@@ -1,226 +1,80 @@
|
||||
# AX Copilot 통합 로드맵 (전면 재작성)
|
||||
# AX Copilot 통합 로드맵
|
||||
|
||||
## 1. 보존 이력 (요약만 유지)
|
||||
- v0.5.x: 에이전트/런처 핵심 기능 확장, MCP/스킬/검증 체계 도입.
|
||||
- v0.6.0: 문서 생성 및 업무 자동화 도구군 확장.
|
||||
- v0.7.0~v0.7.2: Plan Mode, 병렬 도구, 검증 게이트 및 안정화 강화.
|
||||
업데이트: 2026-04-15 18:20 (KST)
|
||||
|
||||
## 2. 재작성 목표
|
||||
- OpenCode 수준의 실행 신뢰성, 세션 내구성, 결과 품질 확보.
|
||||
- AX Copilot 고유 제약(사내 운영모드, WPF UX, 로컬 우선)을 유지한 동등 품질 구현.
|
||||
## 1. 방향
|
||||
- AX Copilot 전반의 실행 신뢰성, 세션 내구성, 결과 품질을 함께 끌어올립니다.
|
||||
- 개발 문서는 비교 보고서가 아니라 AX 기준 계획과 검증 기록으로 유지합니다.
|
||||
|
||||
## 3. 마일스톤
|
||||
## 2. 마일스톤
|
||||
|
||||
| 마일스톤 | 참조 대상 (`OpenCode`) | AX 적용 위치 | 완료 조건 | 품질 판정 시나리오 |
|
||||
| 마일스톤 | 참조 대상 | AX 적용 위치 | 완료 조건 | 품질 판정 시나리오 |
|
||||
|---|---|---|---|---|
|
||||
| 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` | 증거 기반 완료 판정 고정. 내부 벤치마크에서 OpenCode 동급 품질 달성. | 코드수정/문서생성/권한거부/복구 혼합 시나리오에서 조기완료 없이 근거 기반 종료 확인. |
|
||||
| M1 (v0.7.3) Hook 계약 정식화 | `src/utils/hooks.ts`, `src/utils/hooks/hookEvents.ts`, `src/utils/permissions/PermissionUpdate.ts` | `AgentHookRunner.cs`, `AgentLoopService.cs`, `AppSettings.cs`, `SettingsViewModel.cs`, `SettingsWindow.xaml` | Hook 출력 계약(`updatedInput`, `updatedPermissions`, `additionalContext`) 반영, 설정값-실행코드-UI 동시 반영 | JSON 훅/텍스트 훅 혼합 환경에서도 실행 품질과 하위호환 유지 |
|
||||
| M2 (v0.7.4 ~ v0.7.5) 세션/로그 내구성 | `src/utils/plans.ts`, `src/utils/sessionStorage.ts` | `ChatSessionStateService.cs`, `TaskRunService.cs`, `TaskRunStore.cs`, `ChatWindow.xaml.cs`, `ChatModels.cs` | plan/run 상태 영속화, 이벤트 로그 표준화, replay 안정성 확보 | 앱 재시작/강제 종료 후 같은 세션 재개 시 상태 불일치 0건 |
|
||||
| M3 (v0.7.6) 도구 선택/복구 안정화 | `src/commands.ts`, `src/Tool.ts`, `src/query.ts` | `AgentLoopService.cs`, `AgentLoopParallelExecution.cs`, `LlmService.ToolUse.cs` | 도구 선택 실패 루프 억제, 실패 유형별 복구 흐름 정형화 | 오타/비활성/별칭 도구 요청이 반복 실패 없이 정상 경로로 수렴 |
|
||||
| M4 (v0.8.0) 품질 게이트 고정 | `src/query.ts`, `src/QueryEngine.ts`, `src/utils/sessionStorage.ts` | `AgentLoopService.cs`, `AgentLoopTransitions.Execution.cs`, `AgentLoopTransitions.cs` | 증거 기반 완료 판정 고정, 릴리즈 게이트 자동화 강화 | 코드수정/문서생성/권한거부/복구 혼합 시나리오에서 조기 완료 없이 종료 |
|
||||
|
||||
## 4. 측정 지표
|
||||
- 반복 실패 루프 발생률.
|
||||
- 세션 재개 성공률.
|
||||
- 완료 응답 근거 누락률.
|
||||
- 빌드/테스트 통과율.
|
||||
## 3. 측정 지표
|
||||
- 반복 실패 루프 발생률
|
||||
- 세션 재개 성공률
|
||||
- 완료 응답 근거 누락률
|
||||
- 빌드/테스트 통과율
|
||||
|
||||
## 5. 운영 원칙
|
||||
- `internal` 모드: 외부 유출 경로 차단 우선.
|
||||
- 신규 기능은 반드시 설정값 연결 + 실제 동작 반영.
|
||||
- 문서 마스터는 `.md`, HTML은 요청 시만 갱신.
|
||||
## 4. 운영 원칙
|
||||
- `internal` 모드에서는 외부 유출 경로 차단 우선
|
||||
- 신규 기능은 설정값 연결과 실제 동작 반영을 함께 완료
|
||||
- 문서 마스터는 `.md`, HTML은 요청 시만 갱신
|
||||
|
||||
## 6. 즉시 실행 백로그
|
||||
1. Hook 계약 확장 마무리 및 회귀 테스트.
|
||||
2. 세션 복원 경계조건 테스트 세트 추가.
|
||||
3. 이벤트 로그 스키마 고정 및 분석 리포트 템플릿 정리.
|
||||
## 5. 즉시 실행 백로그
|
||||
1. Hook 계약 확장 마무리 및 회귀 테스트
|
||||
2. 세션 복원 경계조건 테스트 세트 추가
|
||||
3. 이벤트 로그 스키마 고정 및 분석 리포트 템플릿 정리
|
||||
|
||||
## 7. 2026-04-03 실행 증적 동기화 (M4 포함)
|
||||
- 기준 시점: 2026-04-03.
|
||||
- 테스트: `dotnet test` 379/379 통과.
|
||||
- M1 증적: Hook 계약 필드(`updatedInput`, `updatedPermissions`, `additionalContext`) 반영 경로 구현 완료.
|
||||
- M2 증적: run 복원/이력 재구성(`RestoreRecentFromExecutionEvents`, `RestoreCurrentAgentRun`, plan 이력 조회) 구현 및 테스트 존재.
|
||||
- M3 증적: unknown-tool 복구 루프/결정 이벤트 처리 경로 구현 및 테스트 존재.
|
||||
- M4 증적: 실행 종료 품질 게이트(`CodeQualityGate`, `ExecutionSuccessGate`, `TerminalEvidenceGate`) 반영 및 관련 테스트 존재.
|
||||
- 스킬/도구 운영 정렬: 40개 스킬 모두 `allowed-tools` 명시 완료, Python 의존 10개는 fallback 분기 적용, 레거시 도구명(`process_run`, `grep_tool`) 참조 제거.
|
||||
## 6. 실행 증적 기준
|
||||
- 기준 시점: 2026-04-03
|
||||
- 전체 테스트: `379/379` 통과
|
||||
- Hook 계약 필드 반영 경로 구현 완료
|
||||
- run 복원/이력 재구성 경로 구현 및 테스트 존재
|
||||
- unknown-tool 복구 루프와 완료 게이트 경로 구현 및 테스트 존재
|
||||
- 스킬/도구 운영 정렬: `allowed-tools` 전건 명시, Python 의존 경로 fallback 반영, 레거시 도구명 참조 제거
|
||||
|
||||
## 8. 남은 마감 항목 (M4 종료 조건)
|
||||
1. 세션 replay 불일치 0건을 재현 시나리오별 수치로 기록.
|
||||
2. 위 결과를 배포 전 체크리스트로 고정하고 매 릴리즈마다 수치 동기화.
|
||||
## 7. 벤치마크 기준
|
||||
- 기준 문서: `docs/AX_AGENT_QUALITY_PLAN.md`
|
||||
- 고정 시나리오:
|
||||
- 기본 loop
|
||||
- unknown-tool 복구
|
||||
- plan 연결
|
||||
- 권한 거부
|
||||
- hook 입력 변형
|
||||
- allowed-tools 강제
|
||||
- hook filter
|
||||
- 합격 게이트:
|
||||
- 빌드 경고·오류 0
|
||||
- 전체 테스트 통과
|
||||
- 고정 시나리오 회귀 통과
|
||||
|
||||
## 9. 벤치마크 고정 기준 (CLAW 패리티 동기화)
|
||||
- 기준 문서: `docs/OPENCODE_PARITY_PLAN.md` 12절.
|
||||
- 고정 시나리오: 기본 loop / unknown-tool 복구 / plan 연결 / 권한 거부 / hook 입력 변형 / allowed-tools 강제 / hook filter.
|
||||
- 합격 게이트: 빌드 경고·오류 0 + 전체 테스트 통과 + 고정 시나리오 회귀 통과.
|
||||
## 8. 실행 프레임
|
||||
|
||||
## 10. Replay 안정성 검증 연동
|
||||
- 기준 문서: `docs/OPENCODE_PARITY_PLAN.md` 13절.
|
||||
- 테스트 태그: `Suite=ReplayStability`.
|
||||
- 운영 기준: 릴리즈 전 `ReplayStability` 시나리오 전건 통과 시 replay 불일치 0건으로 판정.
|
||||
- 최신 실행 증적(2026-04-03): `ParityBenchmark 13/13`, `ReplayStability 14/14`, 전체 `379/379`.
|
||||
- 실행 자동화: `scripts/release-gate.ps1`로 빌드/벤치마크/리플레이/전체 테스트를 일괄 점검.
|
||||
### 입력 계층
|
||||
- slash 명령 카탈로그와 매칭 상태를 별도 파일로 분리
|
||||
- 입력 파싱 변경은 회귀 테스트와 함께 반영
|
||||
|
||||
## 11. 권한 Hook 계약 고정 (M1 완료 기준)
|
||||
- lifecycle hook 키:
|
||||
- `__permission_request__` (pre)
|
||||
- `__permission_granted__` (post)
|
||||
- `__permission_denied__` (post)
|
||||
- payload 기준 필드: `runId`, `tool`, `target`, `permission`, `granted`, `reason`.
|
||||
- 실행 우선순위:
|
||||
1. Hook의 `updatedPermissions`를 현재 run 권한 컨텍스트에 즉시 반영.
|
||||
2. 반영 후 `CheckToolPermissionAsync()`로 최종 권한 판정 수행.
|
||||
3. hook 예외/실패는 non-blocking으로 처리하고 권한 흐름은 지속.
|
||||
4. `additionalContext`는 가능한 경로에서 실행 메시지 컨텍스트에 병합.
|
||||
### 권한 UX
|
||||
- 권한 모드 명칭, 설명, 색, 정렬 순서를 단일 소스에서 관리
|
||||
- 팝업, 상태 배너, 슬래시 출력이 같은 용어를 사용
|
||||
|
||||
### 설정 동기화
|
||||
- Cowork/Code 설정 분기를 실행 코드까지 일치
|
||||
- 설정 변경 즉시 반영 시나리오를 체크리스트화
|
||||
|
||||
### 통합 회귀
|
||||
- `internal/external`, permission deny/recover, mcp reconnect, compact 수동/자동 흐름을 함께 검증
|
||||
|
||||
### 업무형 UI 마감
|
||||
- 좌측 패널, 컴포저, 권한 팝업 밀도와 탐색 동작을 단순하고 일관된 패턴으로 정리
|
||||
|
||||
## 2026-04-04 추가 계획 (Codex/Claude 추격 로드맵 재정렬)
|
||||
|
||||
업데이트: 2026-04-04 13:24 (KST)
|
||||
|
||||
### 기준 소스
|
||||
- OpenCode/src/commands.ts
|
||||
- OpenCode/src/utils/permissions/PermissionMode.ts
|
||||
- OpenCode/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. 기능 동등성: OpenCode 기준 주요 명령(/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 우회 플래그 합성 규칙 검증
|
||||
업데이트: 2026-04-15 08:32 (KST)
|
||||
|
||||
### 이번 배치 마감 상태
|
||||
- 에이전틱 루프는 우선순위 큐, tool_result preview 복원, 슬래시 합성 일원화까지 반영되어 `claw-code` 대비 남은 격차가 `루프 세분화/장기 상태 고정` 중심으로 축소됐습니다.
|
||||
- 문서 포맷은 PPTX/DOCX/XLSX/HTML 모두 실무형 상급 수준까지 올라왔고, 이후 남은 작업은 `slide/workbook/document-level critic`과 `golden regression` 확대 같은 마감 단계입니다.
|
||||
- 개발언어 지원은 `빠른 선택 + LSP 심화 지원 + 정적 fallback` 구조로 정리됐습니다. 다음 단계는 언어별 실행 힌트 활용 범위를 더 넓히고, no-LSP 환경에서도 분석 품질을 더 끌어올리는 것입니다.
|
||||
|
||||
### 다음 우선순위
|
||||
1. `AgentLoopService` 실행 상태 분해와 장기 세션 replacement state 고정
|
||||
2. PPTX/XLSX/DOCX/HTML critic/repair loop 최종 마감
|
||||
3. 언어별 build/test/lint 힌트의 실제 도구 활용 경로 확대
|
||||
4. 릴리즈 게이트와 로드맵 문서 최종 정합화
|
||||
|
||||
업데이트: 2026-04-15 09:49 (KST)
|
||||
|
||||
### 추가 진행 메모
|
||||
1. 개발언어 고도화는 `지원 언어 표시`를 넘어서 `Language Workflow`를 실제 컨텍스트에 주입하는 단계로 넘어갔습니다.
|
||||
2. 다음 구현 배치는 `AgentLoopService` 세분화, `tool_result replacement state` 장기 세션 고정, 문서 포맷 공통 quality formatter 확장 순으로 진행합니다.
|
||||
3. 문서 포맷은 PPTX가 가장 앞서 있고, DOCX/XLSX/HTML은 공통 critic/repair와 golden 회귀를 같은 수준으로 끌어올리는 마감 단계에 들어갑니다.
|
||||
|
||||
업데이트: 2026-04-15 10:05 (KST)
|
||||
|
||||
### 추가 진행 메모
|
||||
1. 에이전틱 루프는 이제 `queued command projector + run lifecycle helper` 구조까지 들어와 시작/종료 책임이 분리됐습니다. 다음 마감 단계는 `RunAsync` 본체의 iteration pipeline을 더 잘게 나누는 작업입니다.
|
||||
2. `tool_result replacement state`는 synthetic preview를 넘어 fingerprint 재바인딩까지 들어갔습니다. 남은 방향은 compact/branch 이후의 replacement policy를 세션 단위 상태로 더 오래 유지하는 것입니다.
|
||||
3. 문서 포맷은 `ArtifactQualityOutputFormatter`가 HTML/XLSX뿐 아니라 DOCX/PPTX까지 확장되었습니다. 다음 마감은 포맷별 critic/repair 자체를 더 깊게 하고, golden fixture 샘플을 확대하는 단계입니다.
|
||||
|
||||
업데이트: 2026-04-15 10:50 (KST)
|
||||
|
||||
### 추가 진행 메모
|
||||
1. 개발언어 fallback은 이제 `Language Workflow`를 `.ax-context.md`와 코드 시스템 프롬프트에 모두 주입하는 단계까지 올라왔습니다. 남은 마감은 no-LSP 환경에서 이 힌트를 실제 도구 사용/검증 흐름과 더 촘촘히 묶는 것입니다.
|
||||
2. 에이전틱 루프는 `run lifecycle`, `queued command projection`, `iteration preparation`, `LLM request preparation` helper까지 분리됐습니다. 다음 큰 축은 `RunAsync`의 tool dispatch/finalize 분리를 더 진행해 본체 책임을 더 줄이는 것입니다.
|
||||
3. 명령/스킬 합성은 우선순위 충돌 해소가 대부분 정리됐고, 이후 작업은 릴리즈 게이트와 체크리스트를 최종 상태에 맞춰 닫는 단계입니다.
|
||||
|
||||
업데이트: 2026-04-15 10:10 (KST)
|
||||
|
||||
### 통합 마감 계획
|
||||
1. 문서 포맷 최종 마감
|
||||
- 참조 대상: `claw-code/src/query.ts`, `claw-code/src/utils/toolResultStorage.ts`, `claw-code/src/commands/init-verifiers.ts`
|
||||
- AX 적용 위치: `PptxSkill`, `DeckPlanningService`, `DeckQualityReviewService`, `DocxSkill`, `DocumentAssemblerTool`, `ExcelSkill`, `HtmlSkill`, `ArtifactQualityReviewService`
|
||||
- 완료 조건: PPTX/DOCX/XLSX/HTML golden fixture 확대, critic/repair loop 최종 보강
|
||||
- 품질 판정 기준: strong fixture `Needs work: none`, weak fixture는 포맷별 정확한 repair guide 반환
|
||||
2. AgentLoop/Queue/Context 최종 분리
|
||||
- 참조 대상: `claw-code/src/QueryEngine.ts`, `claw-code/src/query.ts`, `claw-code/src/utils/messageQueueManager.ts`, `claw-code/src/utils/toolResultStorage.ts`
|
||||
- AX 적용 위치: `AgentLoopService`, `AgentLoopRunLifecycle`, `AgentQueuedCommandProjector`, `AgentMessageInvariantHelper`, `AgentToolResultBudget`, `AgentQueryContextBuilder`, `ContextCondenser`
|
||||
- 완료 조건: `RunAsync` iteration pipeline 분리, replacement state 장기 세션 고정
|
||||
- 품질 판정 기준: 중단/재개/권한/branch/replay 회귀 전건 통과
|
||||
3. 개발언어 fallback 심화
|
||||
- 참조 대상: `claw-code/src/query.ts`, `claw-code/src/context.ts`
|
||||
- AX 적용 위치: `CodeLanguageCatalog`, `LspTool`, `WorkspaceContextGenerator`, `SystemPromptBuilder`, 설정 도움말
|
||||
- 완료 조건: no-LSP 환경에서도 manifest/build/test/lint 힌트와 영향 범위 설명 강화
|
||||
- 품질 판정 기준: Auto 모드가 LSP 없는 주요 언어 저장소에서도 안정적으로 안내
|
||||
4. 명령/스킬 합성 및 릴리즈 게이트
|
||||
- 참조 대상: `claw-code/src/commands.ts`, `claw-code/src/skills/loadSkillsDir.ts`
|
||||
- AX 적용 위치: `SlashCommandCatalog`, `SkillService`, `README`, `DEVELOPMENT`, `NEXT_ROADMAP`
|
||||
- 완료 조건: builtin/skill/plugin/workflow 충돌 해소와 릴리즈 체크리스트 최신화
|
||||
- 품질 판정 기준: 토큰 충돌 시 팔레트와 실제 실행이 완전 일치
|
||||
|
||||
### 실행 순서
|
||||
1. 문서 포맷 마감
|
||||
2. 루프/큐/컨텍스트 분리
|
||||
3. 개발언어 fallback 심화
|
||||
4. 명령/스킬 합성 및 릴리즈 게이트
|
||||
업데이트: 2026-04-15 10:57 (KST)
|
||||
- Agent loop 마감 작업으로 `도구 미호출 복구` 규칙을 서비스화했습니다. 남은 우선순위는 `iteration/tool dispatch 추가 분리`, `장기 세션 replacement state 완전 고정`, `문서 golden fixture 확대`, `릴리즈 체크리스트 닫기` 정도의 마감 품질 중심입니다.
|
||||
|
||||
업데이트: 2026-04-15 11:17 (KST)
|
||||
|
||||
### 추가 진행 메모
|
||||
1. SQL은 별도 정적 분석 계층까지 올라왔습니다. 현재도 no-LSP 환경에서 `dialect/statement/risk/next checks`를 직접 설명할 수 있고, 다음 단계로 더 간다면 dialect별 migration lint나 schema dependency graph 정도가 후보입니다.
|
||||
2. PPT는 구조화된 슬라이드를 더 적극적으로 `comparison/roadmap/kpi_dashboard/chart`로 승격하고, KPI/evidence/verdict/owner 같은 컨설팅형 품질 기준을 slide critic에 반영했습니다. 큰 기능보다 golden fixture 확대 성격의 마감 작업이 남아 있습니다.
|
||||
3. HTML은 `kpi_panel`이 새 핵심 블록으로 들어오면서 board/strategy 문서의 decision/evidence/KPI 연결성이 더 중요해졌습니다. 이후 작업은 목적형 bundled skill 확장과 print/export polish 쪽이 중심입니다.
|
||||
|
||||
업데이트: 2026-04-15 11:36 (KST)
|
||||
|
||||
### 추가 진행 메모
|
||||
1. SQL fallback은 `dialect/statement/risk` 수준을 넘어 `script intent/dependency/review focus`까지 확장됐습니다. 다음 선택지는 dialect별 migration lint, schema dependency graph, rollback 시뮬레이션처럼 더 깊은 전용 리뷰 계층입니다.
|
||||
2. HTML 문서는 `decision_matrix`와 `metric_strip`이 들어오면서 board/strategy 보고서의 의사결정 구조를 더 직접적으로 표현할 수 있게 됐습니다. 남은 작업은 bundled skill을 목적형으로 더 쪼개고 print/export polish를 마감하는 수준입니다.
|
||||
3. PPT critic은 headline, trade-off, phase milestone, chart takeaway, KPI context를 세밀하게 보기 시작했습니다. 이후 남는 작업은 finance/sales/board fixture 확대와 slide-level auto-repair 정교화처럼 golden 마감 중심입니다.
|
||||
|
||||
업데이트: 2026-04-15 11:50 (KST)
|
||||
|
||||
### 추가 진행 메모
|
||||
1. SQL은 이제 fallback 요약에 별도 `review severity / findings / checklist`가 붙는 수준까지 올라왔습니다. 남은 고도화는 dialect별 migration lint, schema dependency graph, rollback simulation 같은 더 깊은 검증 계층입니다.
|
||||
2. Agent loop는 응답 분해 helper가 추가되어 `RunAsync` 본체가 한 단계 더 얇아졌습니다. 이후 분리 후보는 tool dispatch와 finalize 쪽이라, 구조적 마감은 거의 끝나가고 있습니다.
|
||||
3. 문서 쪽은 기능 확장보다 `golden fixture 확대`, `목적형 bundled skill`, `print/export polish`처럼 완성도 마감 항목이 중심으로 남았습니다.
|
||||
|
||||
업데이트: 2026-04-15 12:14 (KST)
|
||||
|
||||
### 추가 진행 메모
|
||||
1. Cowork/Code의 사용자 체감 진행 문구는 `AgentStatusNarrativeCatalog` 기준으로 정리됐습니다. 같은 agent event를 status bar, idle 힌트, readable process feed가 함께 재사용하게 되어 `작업 분석 -> 읽기 -> 수정 -> 검증 -> 정리` 흐름이 더 선명하게 드러납니다.
|
||||
2. 남은 AX Agent UX 마감 항목은 상태 문구 자체보다 `카드 밀도`, `표현 수준(풍부하게/적절하게/간단하게)`별 정보량 차등, 목적형 이벤트 배지 polish 쪽입니다.
|
||||
3. 구조적 우선순위는 여전히 `tool dispatch/finalize 추가 분리`, `장기 세션 replacement state 고정`, `PPT/HTML golden 확대`가 가장 높습니다.
|
||||
## 9. 최근 진행 메모
|
||||
- 2026-04-15 08:32 (KST): 루프 품질은 장기 상태 고정과 세분화 중심 과제로 축소
|
||||
- 2026-04-15 09:49 (KST): 언어별 workflow 주입과 문서 포맷 critic/repair 루프를 다음 우선순위로 정리
|
||||
- 2026-04-15 10:05 (KST): queued command projector, run lifecycle helper, quality formatter 확장을 다음 배치로 고정
|
||||
|
||||
@@ -1,153 +0,0 @@
|
||||
# OpenCode 품질 동등화 계획 (전면 재작성)
|
||||
|
||||
## 1. 기준
|
||||
- 레퍼런스: `E:\AX Copilot - Codex\OpenCode\OpenCode-f5a40b86dede580f6543bf8926c9af017eea9409\src`
|
||||
- 동등화 범위: 명령 처리 흐름, 권한/훅 체계, plan/run 내구성, 세션/로그 관리.
|
||||
|
||||
## 2. 보존 이력 (요약만 유지)
|
||||
- 루프 가드(반복 실패/정체 감지)와 검증 게이트는 이미 AX에 부분 반영.
|
||||
- 병렬 도구 실행, Plan Mode, Unknown-tool 복구 로직은 반영 완료.
|
||||
- 세션/이력 안정화는 진행 중.
|
||||
|
||||
## 3. 현재 갭
|
||||
- Hook 출력의 구조화 계약 적용 범위가 제한적.
|
||||
- 세션 재개/이벤트 replay 품질이 시나리오별 편차 존재.
|
||||
- 도구 선택 실패 후 재시도 전략의 일관성 부족.
|
||||
|
||||
## 4. 단계별 실행
|
||||
|
||||
### P1 Hook 계약 고도화
|
||||
- `updatedInput`, `updatedPermissions`, `additionalContext`를 AX 실행 루프에 반영.
|
||||
- 설정 토글로 위험 기능 제어.
|
||||
|
||||
### P2 세션/이벤트 내구성
|
||||
- run 상태 영속화와 resume 기준 고정.
|
||||
- jsonl 이벤트 필드 표준화 및 재생 가능성 확보.
|
||||
|
||||
### P3 실패 복구 표준화
|
||||
- unknown-tool/권한거부/파라미터 오류를 유형화.
|
||||
- 유형별 복구 프롬프트와 다음 액션 우선순위 고정.
|
||||
|
||||
### P4 완료 품질 정렬
|
||||
- 코드/문서 작업별 완료 체크리스트 표준화.
|
||||
- 증거 없는 완료 응답 방지.
|
||||
|
||||
## 5. 완료 판정
|
||||
- 내부 벤치마크 시나리오에서 목표 성공률 충족.
|
||||
- 세션 재개/이벤트 재생 오류 0건.
|
||||
- 빌드 경고 0/오류 0 유지.
|
||||
|
||||
## 6. 2026-04-03 점검 스냅샷
|
||||
- 기준 시점: 2026-04-03.
|
||||
- 계획 대비 현재 수준: 약 92~95%.
|
||||
- 테스트 상태: `dotnet test` 374/374 통과.
|
||||
- P1 Hook 계약: 구현 완료 수준.
|
||||
- P2 세션/이벤트 내구성: 구현 완료 수준(복원/재생 경계 케이스 테스트 반영).
|
||||
- P3 실패 복구 표준화: 구현 완료 수준(unknown-tool/권한/정체/fork 강제 흐름 반영).
|
||||
- P4 완료 품질 정렬: 구현 완료 수준(게이트 로직 + 벤치마크 기준 문서화 완료).
|
||||
|
||||
## 7. 스킬/도구 운영 점검 (2026-04-03)
|
||||
- 도구 레지스트리 등록 수: 65개 (`ToolRegistry.CreateDefault()` 기준).
|
||||
- `IAgentTool` 구현 수: 65개. 동적 MCP 래퍼(`McpTool`)는 런타임 등록 구조로 정상.
|
||||
- 내장 스킬 파일 수: 40개 (`src/AxCopilot/skills/*.skill.md`).
|
||||
- `allowed-tools` 적용 스킬: 40/40.
|
||||
- `requires: python` 고정 의존 스킬: 0개(기존 10개에 Python 가능/불가 분기 fallback 경로 반영).
|
||||
- 레거시 도구명 `process_run` 참조: 0건 (`process`로 정규화).
|
||||
- 레거시 도구명 `grep_tool` 참조: 0건 (`grep`로 정규화).
|
||||
- 내부 모드 차단 정책: `http_tool` 전면 차단, `open_external`의 외부 URL 차단.
|
||||
- 테스트 상태: `dotnet test` 374/374 통과.
|
||||
|
||||
## 8. OpenCode 소스 직접 비교 결과 (2026-04-03)
|
||||
- 비교 기준 소스: `OpenCode/.../src/tools.ts`, `src/Tool.ts`, `src/skills/loadSkillsDir.ts`, `src/skills/bundled/*.ts`.
|
||||
- OpenCode 도구 상수명: 41개 (`*_TOOL_NAME` 기준).
|
||||
- AX 도구명: 65개 (`IAgentTool.Name` 기준).
|
||||
- OpenCode 도구명 중 AX alias로 직접 해석되는 항목: 8개 (`Bash/Read/Write/Edit/Glob/Grep/WebFetch/WebSearch`).
|
||||
- 미해석 항목(33개)은 대부분 제품 철학 차이 영역(예: `EnterPlanMode`, `ExitWorktree`, `TeamCreate`, `TodoWrite`, `ToolSearch`, `REPL`, `Cron*`).
|
||||
- OpenCode 번들 스킬은 코드 등록형 14개(`registerBundledSkill`)이며, AX는 파일 기반 스킬 40개(`*.skill.md`) 중심 구성.
|
||||
- 번들 스킬 이름 교집합은 0개이며(의도된 차별화), 품질 기준은 "이름 일치"가 아니라 "동작 등가(계획/복구/검증/권한/세션 내구성)"로 판단해야 함.
|
||||
- OpenCode 스킬 메타데이터는 `allowedTools`, `whenToUse`, `model`, `disableModelInvocation`, `userInvocable`, `hooks`, `context`, `agent`, `paths`, `effort`, `shell`까지 지원.
|
||||
- AX 스킬 메타데이터는 `allowed-tools`, `when_to_use`, `argument-hint`, `model`, `disable-model-invocation`, `user-invocable`, `context`, `agent`, `effort`, `paths`, `shell`, `hooks`, `hook_filters`까지 런타임 연계 확장 완료.
|
||||
|
||||
## 9. OpenCode 비교 기반 즉시 보완 항목 (반영 상태)
|
||||
1. 스킬 frontmatter 확장: `when_to_use`, `argument-hint`, `model`, `disable-model-invocation`, `user-invocable`, `context`, `agent`, `effort`, `paths`, `shell` 반영 완료.
|
||||
2. 스킬 실행 범위 제어: `paths` 기반 조건부 활성화 반영 완료(첨부 파일 경로 매칭 시 동적 활성화).
|
||||
3. 도구 별칭 정규화: OpenCode 기본 도구명군(`WebFetch`, `WebSearch`, `AskUserQuestion`, `LSP`, `ListMcpResourcesTool` 등) AX 내부 도구명으로 매핑 반영 완료.
|
||||
4. 반영 완료(2026-04-03): `hooks`/`hook_filters` 계약 확장 및 runtime hook 필터링(도구/타이밍 기준) 적용.
|
||||
5. 반영 완료(2026-04-03): 슬래시 스킬 실행 시 `context/agent/effort/model/disable-model-invocation/allowed-tools/hooks/hook_filters` 메타데이터를 런타임 정책 지시문으로 합성 적용.
|
||||
6. 반영 완료(2026-04-03): `permissionSetup` 비교 기반으로 위험 자동허용 가드 추가(`process`, `spawn_agent`, `snippet_runner`는 전역 `Auto`에서도 승인 단계 강제).
|
||||
|
||||
## 10. 전체 영역 동시 비교 기준 (누락 방지)
|
||||
1. 도구 계층: 도구 목록, 별칭 정규화, unknown-tool 복구, tool search/선택 정책.
|
||||
2. 스킬 계층: 로더, frontmatter, 번들/파일 기반 동시 운영, 조건부 활성화.
|
||||
3. 훅/권한: pre/post hook 계약, permission update 반영, ask/auto/deny 일관성.
|
||||
4. 세션/상태: run 복원, 이벤트 replay, 중복 이벤트 억제, resume 신뢰성.
|
||||
5. 계획/실행: plan 승인/수정 이력, 실행 게이트, 조기 완료 방지.
|
||||
6. MCP/외부도구: 연결/리소스 조회/읽기, 실패 복구, internal 모드 정책.
|
||||
7. 서브에이전트: spawn/wait 제약, read-only 모드, 결과 회수 구조.
|
||||
8. 운영/설정/UI 연동: 설정값-실행코드-UI 동기화, 탭별 분기(Cowork/Code) 일치.
|
||||
|
||||
## 11. 다음 적용 순서 (전체 영역 병렬 보정)
|
||||
1. 기본 Agentic loop E2E 시나리오(도구 실행/unknown-tool 복구)를 회귀 테스트로 고정.
|
||||
2. 벤치마크 합격 기준(시나리오/통과조건/증적)을 문서화하고 배포 체크리스트에 연결. (완료)
|
||||
3. 최종 마감 시 패리티 문서(수치/상태)와 로드맵 문서를 동기화. (진행 중)
|
||||
|
||||
## 12. 내부 벤치마크 기준 (고정)
|
||||
|
||||
| 시나리오 | 기준 테스트 | 합격 기준 |
|
||||
|---|---|---|
|
||||
| 기본 Agentic loop (도구 호출 → 완료) | `AgentLoopE2ETests.RunAsync_ExecutesToolCall_AndCompletesWithFinalText` | ToolCall/ToolResult/Complete 이벤트가 순서상 유효하고 최종 응답에 계산 결과 포함 |
|
||||
| unknown-tool 복구 | `AgentLoopE2ETests.RunAsync_UnknownTool_RecoversAndCompletes` | unknown 도구 오류 이벤트 후 완료까지 수렴, 반복 실패 루프 없음 |
|
||||
| Plan Mode 실행 연결 | `AgentLoopE2ETests.RunAsync_PlanModeAlways_EmitsPlanningThenExecutesTool` | 계획 응답 후 실제 도구 호출이 이어지고 최종 결과 생성 |
|
||||
| 권한 Ask 거부 처리 | `AgentLoopE2ETests.RunAsync_AskPermissionDenied_EmitsPermissionEvents_AndCompletes` | PermissionRequest/PermissionDenied 이벤트가 기록되고 안전 종료 |
|
||||
| Hook 입력 변형 반영 | `AgentLoopE2ETests.RunAsync_PreHookInputMutation_ChangesToolArguments` | pre-hook `updatedInput`이 실제 도구 입력에 적용됨 |
|
||||
| Runtime 정책(`allowed_tools`) 강제 | `AgentLoopE2ETests.RunAsync_DisallowedTool_ByRuntimePolicy_EmitsPolicyRecoveryError` | 비허용 도구 차단 + 정책 복구 경고 후 종료 |
|
||||
| Hook filter 정합성 | `AgentLoopE2ETests.RunAsync_HookFilters_ExecuteOnlyMatchingHookForToolAndTiming` | 지정된 hook만 실행되고 비매칭 hook는 미실행 |
|
||||
| OpenCode alias(`EnterPlanMode`) 정규화 | `AgentLoopE2ETests.RunAsync_EnterPlanModeAlias_ResolvesAndExecutes` | CamelCase 도구명이 AX 내부 snake_case 도구로 매핑되어 정상 실행 |
|
||||
| 혼합 복구 내구성 (unknown + 권한 + 대체도구) | `AgentLoopE2ETests.RunAsync_MixedRecovery_UnknownToolAndPermissionDenied_TerminatesSafely` | unknown-tool 오류 후 file_write 경유, math_eval로 수렴하고 반복 한도 내 안전 종료 |
|
||||
|
||||
### 벤치마크 배포 체크리스트 연결
|
||||
1. `dotnet build` 경고 0/오류 0.
|
||||
2. `dotnet test` 전체 통과 (`374/374` 기준, 증가 시 최신 값으로 동기화).
|
||||
3. 위 9개 시나리오의 회귀 테스트가 모두 통과.
|
||||
4. 패리티 수치/상태를 `NEXT_ROADMAP.md`와 동일 문구로 동기화.
|
||||
5. 릴리즈 전 게이트 스크립트 실행: `powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1`
|
||||
|
||||
### 실행 증적 (2026-04-03)
|
||||
- `dotnet test --filter "Suite=ParityBenchmark"`: 12/12 통과.
|
||||
- `powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1`: build/replay/full gate 통과.
|
||||
|
||||
## 13. 세션 Replay 안정성 기준 (고정)
|
||||
|
||||
| 시나리오 | 기준 테스트 | 합격 기준 |
|
||||
|---|---|---|
|
||||
| 실행 이벤트 정렬/압축 복원 | `ChatSessionStateServiceTests.LoadOrCreateConversation_NormalizesHistoryOrderAndCompactsSize` | ExecutionEvents 400개 상한 유지 + 시간순 정렬 유지 |
|
||||
| run 이력 중복 정규화 | `ChatSessionStateServiceTests.LoadOrCreateConversation_NormalizesAgentRunDuplicatesByRunId` | 동일 `RunId` 중복이 최신 상태 1건으로 축약 |
|
||||
| 동시각 이벤트 종결 우선 판정 | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_PrefersTerminalEventsWhenTimestampsEqual` | Tool/Permission 상태가 terminal 이벤트 기준으로 복원 |
|
||||
| 비종결 이벤트 active 복원 | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_RebuildsActiveTasksFromNonTerminalEvents` | 중단 후 재개 시 active task 3종(agent/tool/permission) 재구성 |
|
||||
| run 종료 시 dangling 정리 | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_CompleteClearsDanglingRunScopedActiveTasks` | Complete 이후 run 스코프 active task 잔존 0건 |
|
||||
| 현재 run 복원 우선순위 | `AppStateServiceTests.RestoreCurrentAgentRun_PrefersRunningExecutionEventOverHistory` | 실행 중 이벤트가 history보다 우선되어 현재 run 복원 |
|
||||
| recent timeline 재구성 | `AppStateServiceTests.RestoreRecentTasks_RebuildsRecentTaskTimelineFromExecutionEvents` | 도구/권한/에이전트 최근 이력 순서 복원 |
|
||||
| 권한 거부 후 active 권한 상태 정리 | `AppStateServiceTests.RestoreRecentTasks_PermissionDeniedLeavesNoActivePermissionAfterResume` | PermissionDenied 이후 run 재개 시 active permission 잔존 0건 |
|
||||
| Hook 타임라인 역순 병합 정합성 | `AppStateServiceTests.ApplyAgentEvent_ReplaysHookTimelineInReverseChronologicalOrder` | Hook 이벤트가 역순 타임라인에서도 시간/의미 순서 보존 |
|
||||
| 완료 이벤트 우선 정리(병렬 도구) | `TaskRunServiceTests.RestoreRecentFromExecutionEvents_CompleteClearsParallelToolCallsForSameRun` | Complete 도착 시 동일 run의 병렬 도구 active task 즉시 정리 |
|
||||
|
||||
### 운영 규칙
|
||||
1. 위 시나리오는 `Suite=ReplayStability` 테스트 태그로 관리.
|
||||
2. 릴리즈 전 `Suite=ReplayStability` 전건 통과를 replay 불일치 0건의 최소 조건으로 사용.
|
||||
|
||||
### 실행 증적 (2026-04-03)
|
||||
- `dotnet test --filter "Suite=ReplayStability"`: 12/12 통과.
|
||||
- `powershell -ExecutionPolicy Bypass -File .\scripts\release-gate.ps1`: `ReplayStability` 포함 게이트 통과.
|
||||
|
||||
## 14. 권한 Hook 계약 (P2 마감 기준)
|
||||
- lifecycle hook 키:
|
||||
- `__permission_request__` (pre)
|
||||
- `__permission_granted__` (post)
|
||||
- `__permission_denied__` (post)
|
||||
- payload 기준 필드: `runId`, `tool`, `target`, `permission`, `granted`, `reason`.
|
||||
- 우선순위:
|
||||
1. Hook `updatedPermissions`가 현재 run의 `AgentContext.ToolPermissions`를 즉시 갱신.
|
||||
2. 갱신 후 `context.CheckToolPermissionAsync()`로 최종 판정.
|
||||
3. hook 실패/예외는 non-blocking(권한 흐름 지속).
|
||||
4. `additionalContext`는 가능한 경로에서 메시지 컨텍스트로 반영.
|
||||
|
||||
101
docs/TOOL_COVERAGE_REPORT.md
Normal file
101
docs/TOOL_COVERAGE_REPORT.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 도구 / 슬래시 커버리지 현황
|
||||
|
||||
업데이트: 2026-04-15 18:20 (KST)
|
||||
|
||||
## 1. 요약
|
||||
- AX slash count: 85
|
||||
- 공통 핵심 명령 수: 7
|
||||
- AX 확장 명령 수: 78
|
||||
|
||||
## 2. 공통 핵심 명령
|
||||
- `/clear`
|
||||
- `/exit`
|
||||
- `/help`
|
||||
- `/init`
|
||||
- `/mcp`
|
||||
- `/memory`
|
||||
- `/permissions`
|
||||
|
||||
## 3. AX 확장 명령
|
||||
- `/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`
|
||||
|
||||
## 4. 메모
|
||||
- AX source baseline: `src/AxCopilot/Views/ChatWindow.xaml.cs`
|
||||
- 이 문서는 비교 보고서가 아니라 현재 AX가 제공하는 명령 범위와 공통 핵심 명령을 확인하기 위한 운영 문서입니다.
|
||||
@@ -1,105 +0,0 @@
|
||||
# Tool/Slash Parity Report
|
||||
|
||||
Generated: 2026-04-04 02:06:25
|
||||
|
||||
## Summary
|
||||
- AX slash count: 85
|
||||
- OpenCode slash count: 7
|
||||
- Common: 7
|
||||
- AX only: 78
|
||||
- OpenCode 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
|
||||
|
||||
## OpenCode Only
|
||||
|
||||
## Notes
|
||||
- OpenCode source baseline: OpenCode/en/quickstart.md
|
||||
- AX source baseline: src/AxCopilot/Views/ChatWindow.xaml.cs
|
||||
@@ -1,523 +0,0 @@
|
||||
# Claw Code Parity Plan (Rewritten)
|
||||
|
||||
## 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.
|
||||
- Updated: 2026-04-06 09:36 (KST)
|
||||
- Progressed the maintainability track by moving runtime strip styling into `OperationalStatusPresentationCatalog.cs`, expanding permission/tool-result transcript catalogs with typed descriptions, and removing the stale plan-mode presentation branch from permission UI surfaces. The next structural focus remains footer/status/composer presentation slimming and regression ritual enforcement.
|
||||
- Updated: 2026-04-06 09:44 (KST)
|
||||
- Continued the maintainability track by splitting mixed inline interaction rendering into `ChatWindow.UserAskPresentation.cs` and `ChatWindow.PlanApprovalPresentation.cs`. This reduces message-type coupling inside the main window and keeps the next focus on footer/composer presentation and regression-routine formalization.
|
||||
- Updated: 2026-04-06 09:58 (KST)
|
||||
- Continued the maintainability track by splitting Git branch popup and footer-adjacent summary helpers into `ChatWindow.GitBranchPresentation.cs`, leaving `ChatWindow.FooterPresentation.cs` focused on folder bar state and preset-guide sync only.
|
||||
- Formalized the regression ritual in `docs/AX_AGENT_REGRESSION_PROMPTS.md` by adding failure classes (`blank-reply`, `duplicate-banner`, `bad-approval-flow`, `queue-drift`, `restore-drift`, `status-noise`) and required prompt bundles per change area.
|
||||
- Updated: 2026-04-06 10:07 (KST)
|
||||
- Continued the maintainability track by moving topic preset rendering, custom preset context menus, and topic-selection application flow into `ChatWindow.TopicPresetPresentation.cs`. This reduces mixed preset UI logic inside `ChatWindow.xaml.cs` and keeps the main window closer to orchestration-only responsibility.
|
||||
- Updated: 2026-04-06 11:52 (KST)
|
||||
- Continued the tool/permission/skill sophistication track by expanding AX presentation catalogs toward `claw-code` specificity. `PermissionRequestPresentationCatalog.cs` now models action-level permission kinds plus severity/action hints, `ToolResultPresentationCatalog.cs` now models `approval_required`/`partial` result states plus follow-up guidance, and the AX skill gallery now exposes runtime-policy metadata that was previously hidden.
|
||||
|
||||
## 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`).
|
||||
- Runtime gating through settings toggles.
|
||||
|
||||
2. Session/state parity
|
||||
- Deterministic run resume rules.
|
||||
- Stable jsonl event schema + replay compatibility.
|
||||
|
||||
3. Recovery parity
|
||||
- Failure-type classification and standardized retry guidance.
|
||||
- Reduced repeated wrong-tool loops.
|
||||
|
||||
4. Completion parity
|
||||
- Evidence-based finalization criteria for code/document tasks.
|
||||
|
||||
## Done Criteria
|
||||
- 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
|
||||
|
||||
## Focused Quality Tracks
|
||||
- Updated: 2026-04-06 09:27 (KST)
|
||||
- The remaining improvement work should now be managed in three parallel tracks so UX polish, runtime quality, and maintainability do not get mixed together.
|
||||
|
||||
### Track 1. User-Facing UI/UX Quality
|
||||
- Reference:
|
||||
- `src/components/Messages.tsx`
|
||||
- `src/components/MessageRow.tsx`
|
||||
- `src/components/StatusLine.tsx`
|
||||
- `src/components/PromptInput/PromptInput.tsx`
|
||||
- `src/components/PromptInput/PromptInputFooter.tsx`
|
||||
- `src/components/SessionPreview.tsx`
|
||||
- AX apply target:
|
||||
- `src/AxCopilot/Views/ChatWindow.xaml`
|
||||
- `src/AxCopilot/Views/ChatWindow.MessageInteractions.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.StatusPresentation.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.FooterPresentation.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.PreviewPresentation.cs`
|
||||
- Focus:
|
||||
- keep transcript text dominant and metadata secondary
|
||||
- make footer controls read as a task bar, not a settings strip
|
||||
- unify preview surfaces, chooser popups, and approval cards under one visual language
|
||||
- reduce visual noise from queue/status/diagnostic surfaces unless the state is actionable
|
||||
- Completion criteria:
|
||||
- message rows, footer, preview, and inline approval/question cards feel visually coherent
|
||||
- chooser popups share the same spacing, hover behavior, and summary-row structure
|
||||
- footer/status elements appear only when they convey useful state
|
||||
- Quality criteria:
|
||||
- a user can understand “what is happening now” from the transcript and footer without opening extra panels
|
||||
- the interface remains readable under narrow widths without text clipping or layout jitter
|
||||
|
||||
### Track 2. LLM / Task Handling Quality
|
||||
- Reference:
|
||||
- `src/bootstrap/state.ts`
|
||||
- `src/bridge/initReplBridge.ts`
|
||||
- `src/bridge/sessionRunner.ts`
|
||||
- `src/components/messages/AssistantToolUseMessage.tsx`
|
||||
- `src/components/messages/PlanApprovalMessage.tsx`
|
||||
- `src/components/permissions/*`
|
||||
- AX apply target:
|
||||
- `src/AxCopilot/Services/Agent/AxAgentExecutionEngine.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentLoopService.cs`
|
||||
- `src/AxCopilot/Services/Agent/AgentTranscriptDisplayCatalog.cs`
|
||||
- `src/AxCopilot/Services/Agent/PermissionRequestPresentationCatalog.cs`
|
||||
- `src/AxCopilot/Services/Agent/ToolResultPresentationCatalog.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.InlineInteractions.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.TranscriptPolicy.cs`
|
||||
- Focus:
|
||||
- keep all entry routes (`send`, `retry`, `regenerate`, `queue`, `slash`) on the same prepared execution path
|
||||
- distinguish `success / error / reject / cancel / needs-approval` tool results more clearly
|
||||
- keep plan approval and user-question flows transcript-native by default
|
||||
- minimize mismatches between execution state and what the user sees in the timeline
|
||||
- Completion criteria:
|
||||
- plan/permission/tool-result/question events all have consistent transcript-native lifecycles
|
||||
- reopen/retry/queue/compact flows preserve the same visible runtime state
|
||||
- tool failures and permission rejections are clearly distinguishable in transcript rendering
|
||||
- Quality criteria:
|
||||
- the same prompt under the same tab/settings uses the same execution route
|
||||
- users can tell whether the agent succeeded, failed, was blocked, or is waiting for approval without reading raw diagnostics
|
||||
|
||||
### Track 3. Maintainability / Extensibility Structure
|
||||
- Reference:
|
||||
- `src/components/*` split by role in `claw-code`
|
||||
- `src/components/messages/*`
|
||||
- `src/components/permissions/*`
|
||||
- `src/components/PromptInput/*`
|
||||
- AX apply target:
|
||||
- `src/AxCopilot/Views/ChatWindow.xaml.cs`
|
||||
- `src/AxCopilot/Views/ChatWindow.*.cs`
|
||||
- `src/AxCopilot/Services/AppStateService.cs`
|
||||
- `src/AxCopilot/Services/Agent/*.cs`
|
||||
- Focus:
|
||||
- continue shrinking `ChatWindow.xaml.cs` toward orchestration-only responsibility
|
||||
- keep renderer, popup, footer, message-interaction, status, and preview logic in dedicated partials
|
||||
- centralize presentation rules in catalogs/models instead of scattered UI string/visibility branches
|
||||
- prepare the codebase for new permission types, new tool classes, and new transcript card types without re-bloating the main window file
|
||||
- Completion criteria:
|
||||
- `ChatWindow.xaml.cs` owns orchestration and runtime coordination more than direct UI element construction
|
||||
- new message/permission/tool card types can be added via presentation catalogs or dedicated partials
|
||||
- runtime summary and footer/status visibility derive from presentation models rather than ad-hoc branching
|
||||
- Quality criteria:
|
||||
- adding a new tool-result or approval type should mostly affect one catalog/renderer area
|
||||
- future UI polish work should land in dedicated presentation files rather than expanding the main window file again
|
||||
|
||||
## Recommended Execution Order
|
||||
- Updated: 2026-04-06 09:27 (KST)
|
||||
1. Finish Track 2 consistency first whenever a UX issue is caused by runtime truth mismatch.
|
||||
2. Apply Track 1 visual cleanup only after the state/message lifecycle is stable for that surface.
|
||||
3. Fold each stable surface into Track 3 structure immediately so later changes do not reintroduce `ChatWindow.xaml.cs` sprawl.
|
||||
4. Keep validating against `docs/AX_AGENT_REGRESSION_PROMPTS.md` after each change set, especially for `plan / permission / queue / compact / reopen`.
|
||||
|
||||
## 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를 계산
|
||||
Reference in New Issue
Block a user