권한 모드 동등화: Plan 추가 및 claw-code 권한 별칭 정규화 반영
Some checks failed
Release Gate / gate (push) Has been cancelled

- 전역 권한 모드를 Ask/Plan/Auto/Deny 4단계로 확장

- claw-code 계열 권한 값(default/acceptEdits/dontAsk/bypassPermissions) 입력 시 내부 모드로 정규화

- AgentContext 권한 판정 경로(전역/도구 오버라이드/패턴 오버라이드) 정규화 적용

- Chat/Settings UI에서 Plan 모드 노출 및 인라인 순환(Ask->Plan->Auto->Deny) 반영

- AppState/SettingsViewModel/SettingsService에 권한값 정규화 및 저장 시 일관성 적용

- Permission lifecycle 이벤트 메시지에 유효 모드 표기 보강

- 빌드/테스트 검증: dotnet build 경고0 오류0, dotnet test 372/372 통과
This commit is contained in:
2026-04-03 21:02:55 +09:00
parent 23f42502d0
commit b30c5f124e
10 changed files with 140 additions and 39 deletions

View File

@@ -7,6 +7,7 @@ using System.Windows.Forms;
using System.Windows.Media;
using AxCopilot.Models;
using AxCopilot.Services;
using AxCopilot.Services.Agent;
using AxCopilot.Themes;
using AxCopilot.Views;
@@ -252,7 +253,7 @@ public class SettingsViewModel : INotifyPropertyChanged
public string DefaultAgentPermission
{
get => _defaultAgentPermission;
set { _defaultAgentPermission = value; OnPropertyChanged(); }
set { _defaultAgentPermission = PermissionModeCatalog.NormalizeGlobalMode(value); OnPropertyChanged(); }
}
// ── 코워크/에이전트 고급 설정 ──
@@ -981,7 +982,7 @@ public class SettingsViewModel : INotifyPropertyChanged
_llmMaxContextTokens = llm.MaxContextTokens;
_llmRetentionDays = llm.RetentionDays;
_llmTemperature = llm.Temperature;
_defaultAgentPermission = llm.DefaultAgentPermission;
_defaultAgentPermission = PermissionModeCatalog.NormalizeGlobalMode(llm.DefaultAgentPermission);
_defaultOutputFormat = llm.DefaultOutputFormat;
_defaultMood = string.IsNullOrEmpty(llm.DefaultMood) ? "modern" : llm.DefaultMood;
_autoPreview = llm.AutoPreview;
@@ -1405,7 +1406,7 @@ public class SettingsViewModel : INotifyPropertyChanged
s.Llm.MaxContextTokens = _llmMaxContextTokens;
s.Llm.RetentionDays = _llmRetentionDays;
s.Llm.Temperature = _llmTemperature;
s.Llm.DefaultAgentPermission = _defaultAgentPermission;
s.Llm.DefaultAgentPermission = PermissionModeCatalog.NormalizeGlobalMode(_defaultAgentPermission);
s.Llm.DefaultOutputFormat = _defaultOutputFormat;
s.Llm.DefaultMood = _defaultMood;
s.Llm.AutoPreview = _autoPreview;