권한 체계를 사내 모드 기준으로 정리하고 실행 단위 승인 범위를 바로잡음
사내 모드에서 process/build_run/open_external 경로의 외부 접근 차단 범위를 강화했습니다. http_tool과 외부 URI 차단에 더해 curl, Invoke-WebRequest 같은 네트워크성 명령과 build_run custom 실행을 내부 정책으로 막아 실제 동작이 정책 선언과 더 가깝게 맞춰지도록 했습니다. ChatWindow의 '이번 실행 동안 허용' 승인 규칙을 run-scope로 변경했습니다. 탭 실행 시작과 종료 시 승인 캐시를 초기화하고 같은 실행 안에서만 동일 범위 접근을 재질문 없이 재사용하도록 정리해 창 수명 동안 규칙이 남던 문제를 줄였습니다. 권한 건너뛰기 관련 UI/상태 문구를 실제 동작과 맞췄고, OperationModePolicyTests·OperationModeReadinessTests·AgentLoopE2ETests·LlmOperationModeTests를 통해 권한 정책과 사내 모드 차단 회귀를 검증했습니다. dotnet build 경고 0 / 오류 0, 권한 관련 테스트 49건 통과를 확인했습니다.
This commit is contained in:
@@ -2130,3 +2130,11 @@ MIT License
|
||||
- 테스트: [ChatWindowSlashPolicyTests.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot.Tests/Views/ChatWindowSlashPolicyTests.cs)에 라이브 카드 대상 탭 회귀 검증 추가
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_live_card_restore\\ -p:IntermediateOutputPath=obj\\verify_live_card_restore\\` 경고 0 / 오류 0
|
||||
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ChatWindowSlashPolicyTests" -p:OutputPath=bin\\verify_live_card_restore_tests\\ -p:IntermediateOutputPath=obj\\verify_live_card_restore_tests\\` 통과 49
|
||||
업데이트: 2026-04-15 16:30 (KST)
|
||||
- 권한 체계 정리 1차를 반영했습니다. 사내 모드에서는 `http_tool`과 외부 URI뿐 아니라 `process`, `build_run` 경로의 명백한 네트워크성 명령도 차단하도록 [OperationModePolicy.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/OperationModePolicy.cs), [ProcessTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/ProcessTool.cs), [BuildRunTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/BuildRunTool.cs), [OpenExternalTool.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/OpenExternalTool.cs)를 보강했습니다.
|
||||
- `이번 실행 동안 허용`은 이제 실제 실행(run) 단위로만 유지됩니다. [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs)는 탭별 실행 시작/종료 시 승인 규칙을 초기화하고, 같은 실행 안에서만 경로 승인 재사용이 일어나도록 정리했습니다.
|
||||
- 권한 설명 문구도 실제 동작과 맞췄습니다. [PermissionModePresentationCatalog.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/Agent/PermissionModePresentationCatalog.cs), [ChatWindow.PermissionPresentation.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.PermissionPresentation.cs), [AppStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/AppStateService.cs)는 `권한 건너뛰기`가 사내 모드의 워크스페이스 외부 접근까지 무조건 자동 허용하는 것은 아니라는 점을 명시합니다.
|
||||
- 검증:
|
||||
- `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_permission_policy_cleanup\\ -p:IntermediateOutputPath=obj\\verify_permission_policy_cleanup\\` 경고 0 / 오류 0
|
||||
- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "OperationModePolicyTests|OperationModeReadinessTests|AgentLoopE2ETests" -p:OutputPath=bin\\verify_permission_policy_cleanup_tests\\ -p:IntermediateOutputPath=obj\\verify_permission_policy_cleanup_tests\\` 통과 46
|
||||
- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "LlmOperationModeTests" -p:OutputPath=bin\\verify_permission_policy_llm_tests\\ -p:IntermediateOutputPath=obj\\verify_permission_policy_llm_tests\\` 통과 3
|
||||
|
||||
Reference in New Issue
Block a user