권한 기본값 Deny 정렬: 초기 정책/상태/슬래시 가이드 일치
Some checks failed
Release Gate / gate (push) Has been cancelled

- AppSettings 기본 권한(FilePermission, DefaultAgentPermission)을 Deny로 변경

- AppStateService 권한 상태/요약 기본값을 Deny로 동기화

- /permissions,/allowed-tools 사용법 문구를 none|passive|active|plan|fullauto|silent 체계로 정리

- AppStateServiceTests 추가 및 빌드/회귀 테스트/문서 이력(2026-04-04 15:02 KST) 반영
This commit is contained in:
2026-04-04 15:03:22 +09:00
parent 68d49b8835
commit 73a4111100
6 changed files with 77 additions and 11 deletions

View File

@@ -12,7 +12,7 @@ public class AppSettings
/// claw code 미포함 배포는 false로 설정합니다.
/// </summary>
[JsonPropertyName("ai_enabled")]
public bool AiEnabled { get; set; } = false;
public bool AiEnabled { get; set; } = true;
/// <summary>
/// 운영 모드. internal(사내) | external(사외).
@@ -599,11 +599,11 @@ public class LlmSettings
/// BypassPermissions = 모든 확인 생략 | DontAsk = 권한 질문 없이 진행 | Deny = 읽기 전용
/// </summary>
[JsonPropertyName("filePermission")]
public string FilePermission { get; set; } = "Default";
public string FilePermission { get; set; } = "Deny";
/// <summary>Cowork/Code 탭의 기본 파일 접근 권한. 탭 전환 시 자동 적용.</summary>
[JsonPropertyName("defaultAgentPermission")]
public string DefaultAgentPermission { get; set; } = "Default";
public string DefaultAgentPermission { get; set; } = "Deny";
// ── 서비스별 독립 설정 ──────────────────────────────────────
[JsonPropertyName("ollamaEndpoint")] public string OllamaEndpoint { get; set; } = "http://localhost:11434";
@@ -666,6 +666,14 @@ public class LlmSettings
[JsonPropertyName("agentUiExpressionLevel")]
public string AgentUiExpressionLevel { get; set; } = "balanced";
/// <summary>권한 팝업 섹션 접힘/펼침 상태. key=section id, value=true(펼침).</summary>
[JsonPropertyName("permissionPopupSections")]
public Dictionary<string, bool> PermissionPopupSections { get; set; } = new(StringComparer.OrdinalIgnoreCase);
/// <summary>슬래시 팔레트 그룹 접힘/펼침 상태. key=group id, value=true(펼침).</summary>
[JsonPropertyName("slashPaletteSections")]
public Dictionary<string, bool> SlashPaletteSections { get; set; } = new(StringComparer.OrdinalIgnoreCase);
/// <summary>계획 diff 심각도 중간 기준: 변경 개수 임계값.</summary>
[JsonPropertyName("planDiffSeverityMediumCount")]
public int PlanDiffSeverityMediumCount { get; set; } = 2;
@@ -965,6 +973,18 @@ public class LlmSettings
[JsonPropertyName("favoriteSlashCommands")]
public List<string> FavoriteSlashCommands { get; set; } = new();
/// <summary>슬래시 핀(즐겨찾기) 최대 개수. 기본 10.</summary>
[JsonPropertyName("maxFavoriteSlashCommands")]
public int MaxFavoriteSlashCommands { get; set; } = 10;
/// <summary>최근 사용 슬래시 명령어 목록(MRU, 최신 순). 예: ["/compact", "/status"]</summary>
[JsonPropertyName("recentSlashCommands")]
public List<string> RecentSlashCommands { get; set; } = new();
/// <summary>슬래시 최근 사용(MRU) 최대 개수. 기본 20.</summary>
[JsonPropertyName("maxRecentSlashCommands")]
public int MaxRecentSlashCommands { get; set; } = 20;
// ─── 드래그 앤 드롭 AI 처리 ──────────────────────────────────────
/// <summary>파일 드래그 시 AI 액션 팝업 표시 여부. 기본 true.</summary>