권한 시각 체계 통일: 요약카드/상단배너 색상 정렬
Some checks failed
Release Gate / gate (push) Has been cancelled

- GetPermissionModePalette 모드별 색상 매핑을 팝업 체계와 일치

- BypassPermissions(주황)와 DontAsk(빨강) 배너 렌더링 분리

- README/DEVELOPMENT 이력(2026-04-04 16:12 KST) 동기화
This commit is contained in:
2026-04-04 16:12:52 +09:00
parent 666416ff65
commit 64be0e082d
3 changed files with 48 additions and 8 deletions

View File

@@ -2207,7 +2207,23 @@ public partial class ChatWindow : Window
PermissionTopBanner.Visibility = _permissionTopBannerDismissed ? Visibility.Collapsed : Visibility.Visible;
}
}
else if (perm == PermissionModeCatalog.BypassPermissions || perm == PermissionModeCatalog.DontAsk)
else if (perm == PermissionModeCatalog.BypassPermissions)
{
var autoColor = new SolidColorBrush(Color.FromRgb(0xC2, 0x41, 0x0C));
PermissionLabel.Foreground = autoColor;
PermissionIcon.Foreground = autoColor;
if (PermissionTopBanner != null)
{
PermissionTopBanner.BorderBrush = BrushFromHex("#FDBA74");
PermissionTopBannerIcon.Text = "\uE814";
PermissionTopBannerIcon.Foreground = autoColor;
PermissionTopBannerTitle.Text = "현재 권한 모드 · 완전 자동";
PermissionTopBannerTitle.Foreground = autoColor;
PermissionTopBannerText.Text = "권한 확인을 대부분 생략합니다. 민감한 작업 전에는 설정을 다시 확인하세요.";
PermissionTopBanner.Visibility = _permissionTopBannerDismissed ? Visibility.Collapsed : Visibility.Visible;
}
}
else if (perm == PermissionModeCatalog.DontAsk)
{
var dangerColor = new SolidColorBrush(Color.FromRgb(0xDC, 0x26, 0x26));
PermissionLabel.Foreground = dangerColor;
@@ -2215,9 +2231,9 @@ public partial class ChatWindow : Window
if (PermissionTopBanner != null)
{
PermissionTopBanner.BorderBrush = BrushFromHex("#FCA5A5");
PermissionTopBannerIcon.Text = "\uE814";
PermissionTopBannerIcon.Text = "\uE8A5";
PermissionTopBannerIcon.Foreground = dangerColor;
PermissionTopBannerTitle.Text = $"현재 권한 모드 · {PermissionModeCatalog.ToDisplayLabel(perm)}";
PermissionTopBannerTitle.Text = "현재 권한 모드 · 질문 없이 진행";
PermissionTopBannerTitle.Foreground = dangerColor;
PermissionTopBannerText.Text = "권한 확인을 거의 생략합니다. 민감한 작업 전에는 설정을 다시 확인하세요.";
PermissionTopBanner.Visibility = _permissionTopBannerDismissed ? Visibility.Collapsed : Visibility.Visible;
@@ -16428,15 +16444,15 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
return normalized switch
{
var x when string.Equals(x, PermissionModeCatalog.Deny, StringComparison.OrdinalIgnoreCase)
=> (BrushFromHex("#FEF2F2"), BrushFromHex("#FCA5A5"), BrushFromHex("#991B1B")),
=> (BrushFromHex("#ECFDF5"), BrushFromHex("#86EFAC"), BrushFromHex("#166534")),
var x when string.Equals(x, PermissionModeCatalog.AcceptEdits, StringComparison.OrdinalIgnoreCase)
=> (BrushFromHex("#FFF7ED"), BrushFromHex("#FDBA74"), BrushFromHex("#C2410C")),
=> (BrushFromHex("#ECFDF5"), BrushFromHex("#BBF7D0"), BrushFromHex("#166534")),
var x when string.Equals(x, PermissionModeCatalog.Plan, StringComparison.OrdinalIgnoreCase)
=> (BrushFromHex("#EEF2FF"), BrushFromHex("#C7D2FE"), BrushFromHex("#3730A3")),
var x when string.Equals(x, PermissionModeCatalog.BypassPermissions, StringComparison.OrdinalIgnoreCase)
=> (BrushFromHex("#ECFDF5"), BrushFromHex("#BBF7D0"), BrushFromHex("#166534")),
=> (BrushFromHex("#FFF7ED"), BrushFromHex("#FDBA74"), BrushFromHex("#C2410C")),
var x when string.Equals(x, PermissionModeCatalog.DontAsk, StringComparison.OrdinalIgnoreCase)
=> (BrushFromHex("#ECFDF5"), BrushFromHex("#86EFAC"), BrushFromHex("#166534")),
=> (BrushFromHex("#FEF2F2"), BrushFromHex("#FCA5A5"), BrushFromHex("#991B1B")),
_ => (BrushFromHex("#F8FAFC"), BrushFromHex("#CBD5E1"), BrushFromHex("#334155")),
};
}