코드 탭 워크스페이스 권한 정합성 수정 및 회귀 테스트 추가

- AgentLoopService에 RuntimeWorkFolderOverride를 추가해 Code/Cowork 실행이 settings 기본 경로보다 현재 대화 WorkFolder를 우선 사용하도록 정리

- ChatWindow에서 RunAgentLoopAsync 실행 시 conversation.WorkFolder를 루프에 직접 주입하고 사내 모드 권한 안내도 같은 런타임 워크스페이스 기준으로 맞춤

- AgentLoopE2ETests에 워크스페이스 override 우선 적용, 사내 모드 내부 경로 무승인, 외부 경로 승인 강제 회귀를 추가

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_workspace_permission_fix\\ -p:IntermediateOutputPath=obj\\verify_workspace_permission_fix\\ / 경고 0 오류 0

- 검증: dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter FullyQualifiedName~RunAsync_CodeRuntimeWorkspaceOverride_PrefersConversationWorkspaceOverSettingsFolder|FullyQualifiedName~RunAsync_InternalMode_BypassPermissions_AllowsWorkspaceWriteWithoutPrompt|FullyQualifiedName~RunAsync_InternalMode_BypassPermissions_RequestsApprovalForPathOutsideWorkspace|FullyQualifiedName~RunAsync_EmptyWorkspace_BlocksExternalFallbackAndRecoversToFileWrite|FullyQualifiedName~RunAsync_EmptyWorkspace_DisallowsSkillManagerAndRecoversToFileWrite|FullyQualifiedName~RunAsync_TextEmbeddedToolCall_RecoversAndExecutesFileWrite / 통과 6
This commit is contained in:
2026-04-15 15:42:14 +09:00
parent 675bdc9595
commit b055138b4a
5 changed files with 175 additions and 3 deletions

View File

@@ -7,6 +7,13 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
개발 참고: Claw Code 동등성 작업 추적 문서
`docs/claw-code-parity-plan.md`
- 업데이트: 2026-04-15 15:40 (KST)
- Code 탭의 실제 도구 실행 워크스페이스가 설정값의 `CodeWorkFolder`/`WorkFolder`로 고정되고, 현재 대화가 가진 `WorkFolder`와 어긋날 수 있던 문제를 수정했습니다. [AgentLoopService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopService.cs)는 새 `RuntimeWorkFolderOverride`를 통해 실행 턴마다 대화 기준 워크스페이스를 우선 사용하고, [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)는 `RunAgentLoopAsync(...)`에서 현재 conversation의 `WorkFolder`를 루프에 직접 주입합니다.
- 같은 기준을 권한 팝업에도 적용했습니다. 사내 모드에서 [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)의 권한 안내 문구는 이제 `_currentConversation`의 우연한 상태가 아니라, 실제 실행 중인 탭 루프가 들고 있는 워크스페이스 override를 우선 기준으로 삼습니다. 그 결과 `지정한 워크스페이스 하위 경로는 무승인`, `그 외 경로만 승인` 규칙이 Code 탭에서도 Cowork와 같은 기준으로 맞춰집니다.
- 회귀 테스트도 추가했습니다. [AgentLoopE2ETests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Services/AgentLoopE2ETests.cs)에 `RunAsync_CodeRuntimeWorkspaceOverride_PrefersConversationWorkspaceOverSettingsFolder`, `RunAsync_InternalMode_BypassPermissions_AllowsWorkspaceWriteWithoutPrompt`, `RunAsync_InternalMode_BypassPermissions_RequestsApprovalForPathOutsideWorkspace`를 추가해, stale settings 경로보다 대화 워크스페이스가 우선 적용되는지와 사내 모드 승인 규칙을 함께 고정했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_workspace_permission_fix\\ -p:IntermediateOutputPath=obj\\verify_workspace_permission_fix\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "FullyQualifiedName~RunAsync_CodeRuntimeWorkspaceOverride_PrefersConversationWorkspaceOverSettingsFolder|FullyQualifiedName~RunAsync_InternalMode_BypassPermissions_AllowsWorkspaceWriteWithoutPrompt|FullyQualifiedName~RunAsync_InternalMode_BypassPermissions_RequestsApprovalForPathOutsideWorkspace|FullyQualifiedName~RunAsync_EmptyWorkspace_BlocksExternalFallbackAndRecoversToFileWrite|FullyQualifiedName~RunAsync_EmptyWorkspace_DisallowsSkillManagerAndRecoversToFileWrite|FullyQualifiedName~RunAsync_TextEmbeddedToolCall_RecoversAndExecutesFileWrite" -p:OutputPath=bin\\verify_workspace_permission_fix_tests\\ -p:IntermediateOutputPath=obj\\verify_workspace_permission_fix_tests\\` 통과 6
- 업데이트: 2026-04-15 15:45 (KST)
- Cowork의 PPT 생성 경로를 더 일반적인 고품질 흐름으로 보강했습니다. [ChatWindow.SystemPromptBuilder.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.SystemPromptBuilder.cs)와 [AgentLoopExplorationPolicy.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/AgentLoopExplorationPolicy.cs)는 이제 프레젠테이션/슬라이드 덱 요청에서 `document_plan`을 무조건 먼저 타지 않고, 명시적으로 계획을 요구한 경우가 아니면 `pptx_create`를 우선하도록 안내합니다.
- [DeckPlanningService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/DeckPlanningService.cs)에 generic `RefineForQuality(...)` 루프를 추가했습니다. executive summary, comparison, roadmap, chart, KPI dashboard 같은 특화 슬라이드에서 headline, takeaway, verdict, owner/timeline, KPI trend/note를 자동 보강하고, 필요하면 appendix/evidence 슬라이드까지 추가합니다.