- 하단 composer 상태줄에서 모델·데이터 활용·권한·브랜치가 같은 문법으로 읽히도록 문구를 정리하고 모델 버튼 툴팁에 현재 서비스/모델 정보를 보강함 - 데이터 활용과 권한 칩에 상태 색상 기반 테두리와 설명 툴팁을 추가해 현재 모드 인지가 더 쉬워지도록 정리함 - README.md와 docs/DEVELOPMENT.md에 2026-04-05 00:52 (KST) 기준 이력을 반영함 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ / 경고 0 / 오류 0
This commit is contained in:
@@ -2264,6 +2264,8 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
var operationMode = OperationModePolicy.Normalize(_settings.Settings.OperationMode);
|
||||
BtnPermission.ToolTip = $"{summary.Description}\n운영 모드: {operationMode}\n기본값 {PermissionModeCatalog.ToDisplayLabel(summary.DefaultMode)} · 예외 {summary.OverrideCount}개";
|
||||
BtnPermission.Background = Brushes.Transparent;
|
||||
BtnPermission.BorderThickness = new Thickness(1);
|
||||
}
|
||||
|
||||
if (!string.Equals(_lastPermissionBannerMode, perm, StringComparison.OrdinalIgnoreCase))
|
||||
@@ -2277,6 +2279,8 @@ public partial class ChatWindow : Window
|
||||
var activeColor = new SolidColorBrush(Color.FromRgb(0x10, 0x7C, 0x10));
|
||||
PermissionLabel.Foreground = activeColor;
|
||||
PermissionIcon.Foreground = activeColor;
|
||||
if (BtnPermission != null)
|
||||
BtnPermission.BorderBrush = BrushFromHex("#86EFAC");
|
||||
if (PermissionTopBanner != null)
|
||||
{
|
||||
PermissionTopBanner.BorderBrush = BrushFromHex("#86EFAC");
|
||||
@@ -2293,6 +2297,8 @@ public partial class ChatWindow : Window
|
||||
var denyColor = new SolidColorBrush(Color.FromRgb(0x10, 0x7C, 0x10));
|
||||
PermissionLabel.Foreground = denyColor;
|
||||
PermissionIcon.Foreground = denyColor;
|
||||
if (BtnPermission != null)
|
||||
BtnPermission.BorderBrush = BrushFromHex("#86EFAC");
|
||||
if (PermissionTopBanner != null)
|
||||
{
|
||||
PermissionTopBanner.BorderBrush = BrushFromHex("#86EFAC");
|
||||
@@ -2309,6 +2315,8 @@ public partial class ChatWindow : Window
|
||||
var autoColor = new SolidColorBrush(Color.FromRgb(0xC2, 0x41, 0x0C));
|
||||
PermissionLabel.Foreground = autoColor;
|
||||
PermissionIcon.Foreground = autoColor;
|
||||
if (BtnPermission != null)
|
||||
BtnPermission.BorderBrush = BrushFromHex("#FDBA74");
|
||||
if (PermissionTopBanner != null)
|
||||
{
|
||||
PermissionTopBanner.BorderBrush = BrushFromHex("#FDBA74");
|
||||
@@ -2330,6 +2338,10 @@ public partial class ChatWindow : Window
|
||||
};
|
||||
PermissionLabel.Foreground = defaultFg;
|
||||
PermissionIcon.Foreground = iconFg;
|
||||
if (BtnPermission != null)
|
||||
BtnPermission.BorderBrush = perm == PermissionModeCatalog.Plan
|
||||
? BrushFromHex("#C7D2FE")
|
||||
: BrushFromHex("#BFDBFE");
|
||||
if (PermissionTopBanner != null)
|
||||
{
|
||||
if (perm == PermissionModeCatalog.Plan)
|
||||
@@ -2493,9 +2505,9 @@ public partial class ChatWindow : Window
|
||||
if (DataUsageLabel == null || DataUsageIcon == null) return;
|
||||
var (label, icon, color) = _folderDataUsage switch
|
||||
{
|
||||
"none" => ("미활용", "\uE8D8", "#6B7280"),
|
||||
"passive" => ("소극", "\uE8FD", "#D97706"),
|
||||
_ => ("적극", "\uE9F5", "#107C10"),
|
||||
"none" => ("데이터 미활용", "\uE8D8", "#6B7280"),
|
||||
"passive" => ("데이터 소극", "\uE8FD", "#D97706"),
|
||||
_ => ("데이터 적극", "\uE9F5", "#107C10"),
|
||||
};
|
||||
DataUsageLabel.Text = label;
|
||||
DataUsageIcon.Text = icon;
|
||||
@@ -2503,8 +2515,14 @@ public partial class ChatWindow : Window
|
||||
if (BtnDataUsage != null)
|
||||
{
|
||||
BtnDataUsage.Background = Brushes.Transparent;
|
||||
BtnDataUsage.BorderBrush = TryFindResource("BorderColor") as Brush ?? Brushes.Gray;
|
||||
BtnDataUsage.BorderBrush = BrushFromHex($"{color}66");
|
||||
BtnDataUsage.BorderThickness = new Thickness(1);
|
||||
BtnDataUsage.ToolTip = _folderDataUsage switch
|
||||
{
|
||||
"none" => "폴더 문서와 파일을 읽지 않거나 참조하지 않습니다.",
|
||||
"passive" => "사용자가 요청할 때만 폴더 데이터를 참조합니다.",
|
||||
_ => "폴더 문서와 파일을 자동 탐색해 작업에 적극 활용합니다."
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13849,10 +13867,12 @@ public partial class ChatWindow : Window
|
||||
_ => "Ollama",
|
||||
};
|
||||
var model = GetCurrentModelDisplayName();
|
||||
const int maxLen = 26;
|
||||
const int maxLen = 22;
|
||||
if (model.Length > maxLen)
|
||||
model = model[..(maxLen - 1)] + "…";
|
||||
ModelLabel.Text = $"{serviceLabel} · {model}";
|
||||
ModelLabel.Text = $"서비스 {serviceLabel} · {model}";
|
||||
if (BtnModelSelector != null)
|
||||
BtnModelSelector.ToolTip = $"현재 서비스: {serviceLabel}\n현재 모델: {GetCurrentModelDisplayName()}\n모델/추론 빠른 설정";
|
||||
}
|
||||
|
||||
private static string NextPlanMode(string current) => (current ?? "off").ToLowerInvariant() switch
|
||||
@@ -17056,7 +17076,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
}
|
||||
|
||||
if (GitBranchLabel != null)
|
||||
GitBranchLabel.Text = string.IsNullOrWhiteSpace(branchName) ? "브랜치 없음" : branchName;
|
||||
GitBranchLabel.Text = string.IsNullOrWhiteSpace(branchName) ? "브랜치 없음" : $"브랜치 {branchName}";
|
||||
if (GitBranchFilesText != null)
|
||||
GitBranchFilesText.Text = filesText;
|
||||
if (GitBranchAddedText != null)
|
||||
|
||||
Reference in New Issue
Block a user