[Phase 17-F+G] 권한 시스템 고도화 + 멀티파일 Diff 추적기
Phase 17-F — 권한 시스템 고도화: AgentLoopService.Permissions.cs (신규, 97줄): - GetPermissionService(): PermissionsConfig → PermissionDecisionService 빌드·캐시 Chain: DenyRuleHandler → AllowRuleHandler → AcceptEditsHandler → PlanModeHandler → BypassHandler - EvaluateToolPermission(): Deny=즉시차단 / Allow=CheckDecisionRequired 스킵 / Ask=기존 흐름 - CheckMcpToolAllowed(): MCP 서버·도구 단위 권한 확인 - PermissionRuleEntry(설정) → PermissionRule(런타임) 자동 변환 Phase 17-G — 멀티파일 Diff 추적기: AgentLoopService.DiffTracker.cs (신규, 99줄): - DiffViewModel 프로퍼티: MultiFileDiffViewModel 지연 초기화, ChatWindow UI 바인딩용 - ExtractFilePathFromInput(): 도구 입력 JSON에서 path/file_path 추출 - CaptureOriginalFileContent(): 쓰기 도구 실행 전 원본 내용 캡처 (신규=빈 문자열) - TrackFileModificationForDiff(): 성공 후 디스크에서 신규 내용 읽어 DiffViewModel에 기록 - ResetDiffTracker(): 세션 시작 시 Diff 목록 초기화 AgentLoopService.Execution.cs (편집): - toolName17 변수 도입: call.ToolName ?? "" — CS8604 nullable 경고 전면 제거 (0개) - Phase 17-G2: EmitEvent(ToolCall)에 위험도 태그 [⚠ 높음]/[• 보통] 접미사 추가 - Phase 17-F: Deny→즉시차단+DENIED 메시지, Allow→skipLegacyDecisionCheck=true - Phase 17-G: Pre-실행 diffFilePath+diffOriginalContent 캡처, Post-성공 TrackFileModificationForDiff 호출 AgentLoopService.cs (편집): - 세션 시작 시 ResetDiffTracker() 호출 (이전 세션 Diff 항목 초기화) AppSettings.LlmSettings.cs (편집): - EnableDiffTracker 설정 추가 (기본 true, json: "enableDiffTracker") 빌드: 경고 0, 오류 0 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -364,6 +364,10 @@ public class LlmSettings
|
||||
[JsonPropertyName("enableMemorySystem")]
|
||||
public bool EnableMemorySystem { get; set; } = true;
|
||||
|
||||
/// <summary>멀티파일 Diff 추적 활성화 여부. 쓰기 도구 실행 전후 파일 변경을 기록. 기본 true.</summary>
|
||||
[JsonPropertyName("enableDiffTracker")]
|
||||
public bool EnableDiffTracker { get; set; } = true;
|
||||
|
||||
/// <summary>추가 스킬 폴더 경로. 빈 문자열이면 기본 폴더만 사용.</summary>
|
||||
[JsonPropertyName("skillsFolderPath")]
|
||||
public string SkillsFolderPath { get; set; } = "";
|
||||
|
||||
Reference in New Issue
Block a user