권한 팝업 단순화: 핵심 4모드 전면 배치 + 고급 모드 분리
Some checks failed
Release Gate / gate (push) Has been cancelled

- ChatWindow 권한 팝업에서 기본 노출 모드를 소극/적극/계획/완전 자동 4개로 재정렬

- 활용하지 않음(Deny), 질문 없이 진행(DontAsk)은 고급 모드 접힘 섹션으로 분리

- permission_advanced_modes 섹션 상태를 설정에 저장/복원하도록 연결

- README.md, docs/DEVELOPMENT.md에 2026-04-04 13:55(KST) 기준 이력 추가

- 품질 확인: dotnet build 통과(0 경고/0 오류), 테스트는 wpftmp 간헐 이슈로 --no-build 필터 86건 통과
This commit is contained in:
2026-04-04 13:56:02 +09:00
parent b1fa8f692a
commit 0bb37d9390
3 changed files with 48 additions and 3 deletions

View File

@@ -1901,7 +1901,18 @@ public partial class ChatWindow : Window
};
}
var coreLevels = PermissionModePresentationCatalog.Ordered;
var coreLevels = PermissionModePresentationCatalog.Ordered
.Where(x =>
string.Equals(x.Mode, PermissionModeCatalog.Default, StringComparison.OrdinalIgnoreCase) ||
string.Equals(x.Mode, PermissionModeCatalog.AcceptEdits, StringComparison.OrdinalIgnoreCase) ||
string.Equals(x.Mode, PermissionModeCatalog.Plan, StringComparison.OrdinalIgnoreCase) ||
string.Equals(x.Mode, PermissionModeCatalog.BypassPermissions, StringComparison.OrdinalIgnoreCase))
.ToList();
var advancedLevels = PermissionModePresentationCatalog.Ordered
.Where(x =>
string.Equals(x.Mode, PermissionModeCatalog.Deny, StringComparison.OrdinalIgnoreCase) ||
string.Equals(x.Mode, PermissionModeCatalog.DontAsk, StringComparison.OrdinalIgnoreCase))
.ToList();
var current = PermissionModeCatalog.NormalizeGlobalMode(_settings.Settings.Llm.FilePermission);
void AddPermissionRows(Panel container, IEnumerable<PermissionModePresentation> levels)
{
@@ -2010,7 +2021,7 @@ public partial class ChatWindow : Window
PermissionItems.Children.Add(new TextBlock
{
Text = "권한 모드",
Text = "핵심 권한 모드",
FontSize = 10.5,
FontWeight = FontWeights.SemiBold,
Foreground = secondaryText,
@@ -2018,6 +2029,19 @@ public partial class ChatWindow : Window
});
AddPermissionRows(PermissionItems, coreLevels);
if (advancedLevels.Count > 0)
{
var advancedPanel = new StackPanel();
AddPermissionRows(advancedPanel, advancedLevels);
PermissionItems.Children.Add(CreateCollapsibleSection(
"permission_advanced_modes",
"\uE9D9",
"고급 모드",
advancedPanel,
expanded: GetPermissionPopupSectionExpanded("permission_advanced_modes", false),
accentHex: "#64748B"));
}
PermissionItems.Children.Add(CreateCollapsibleSection(
"permission_summary",
"\uE946",