빌드 부산물 추적 해제와 AX Agent 대기열·composer UI 정리
Some checks failed
Release Gate / gate (push) Has been cancelled

- .gitignore에 bin/obj/publish 및 IDE/OS/비밀정보 패턴 추가
- Git 인덱스에서 publish 및 src 하위 bin/obj 빌드 부산물 추적을 해제하여 저장소 노이즈를 정리
- DraftQueue를 실행 대기/최근 결과 섹션과 상태 요약 pill 구조로 재정리
- composer 상단 모델/컨텍스트/프리셋 줄과 하단 작업 위치 칩 UI를 더 평평한 시각 언어로 통일
- 워크스페이스·브랜치·워크트리 패널에 공통 row 및 요약 strip을 적용해 panel UX를 정돈
- README.md와 docs/DEVELOPMENT.md, docs/AGENT_ROADMAP.md, AGENTS.md 이력을 갱신

검증
- 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:
2026-04-04 23:03:42 +09:00
parent a027ea4f9a
commit 72a8c0d541
908 changed files with 5661 additions and 77215 deletions

View File

@@ -19,6 +19,7 @@ public partial class AgentSettingsWindow : Window
private string _reasoningMode = "detailed";
private string _folderDataUsage = "active";
private string _operationMode = OperationModePolicy.InternalMode;
private string _selectedModel = string.Empty;
public AgentSettingsWindow(SettingsService settings)
{
@@ -30,14 +31,14 @@ public partial class AgentSettingsWindow : Window
private void LoadFromSettings()
{
ModelInput.Text = _llm.Model ?? "";
_selectedModel = _llm.Model ?? "";
ModelInput.Text = _selectedModel;
_permissionMode = PermissionModeCatalog.NormalizeGlobalMode(_llm.FilePermission);
_planMode = string.IsNullOrWhiteSpace(_llm.PlanMode) ? "off" : _llm.PlanMode;
_reasoningMode = string.IsNullOrWhiteSpace(_llm.AgentDecisionLevel) ? "detailed" : _llm.AgentDecisionLevel;
_folderDataUsage = string.IsNullOrWhiteSpace(_llm.FolderDataUsage) ? "active" : _llm.FolderDataUsage;
_operationMode = OperationModePolicy.Normalize(_settings.Settings.OperationMode);
ChkVllmAllowInsecureTls.IsChecked = _llm.VllmAllowInsecureTls;
ChkEnableProactiveCompact.IsChecked = _llm.EnableProactiveContextCompact;
TxtContextCompactTriggerPercent.Text = Math.Clamp(_llm.ContextCompactTriggerPercent, 10, 95).ToString();
TxtMaxContextTokens.Text = Math.Max(1024, _llm.MaxContextTokens).ToString();
@@ -154,7 +155,13 @@ public partial class AgentSettingsWindow : Window
Foreground = TryFindResource("PrimaryText") as Brush ?? Brushes.White,
},
};
border.MouseLeftButtonUp += (_, _) => ModelInput.Text = captured;
SetCardSelection(border, string.Equals(captured, _selectedModel, StringComparison.OrdinalIgnoreCase));
border.MouseLeftButtonUp += (_, _) =>
{
_selectedModel = captured;
ModelInput.Text = captured;
BuildModelChips();
};
ModelChipPanel.Children.Add(border);
}
}
@@ -328,7 +335,7 @@ public partial class AgentSettingsWindow : Window
PermissionModeCatalog.Default => PermissionModeCatalog.AcceptEdits,
PermissionModeCatalog.AcceptEdits => PermissionModeCatalog.Plan,
PermissionModeCatalog.Plan => PermissionModeCatalog.BypassPermissions,
// 기본 순환에서는 코어 모드만 순환하고 dontAsk는 명시 선택으로만 진입.
// 권한 표면 모드는 코어 4단계만 순환합니다.
PermissionModeCatalog.BypassPermissions => PermissionModeCatalog.Deny,
PermissionModeCatalog.DontAsk => PermissionModeCatalog.Deny,
_ => PermissionModeCatalog.Deny,
@@ -371,14 +378,13 @@ public partial class AgentSettingsWindow : Window
private void BtnSave_Click(object sender, RoutedEventArgs e)
{
_llm.Model = ModelInput.Text.Trim();
_llm.Model = string.IsNullOrWhiteSpace(_selectedModel) ? (_llm.Model ?? "") : _selectedModel.Trim();
_llm.FilePermission = _permissionMode;
_llm.PlanMode = _planMode;
_llm.AgentDecisionLevel = _reasoningMode;
_llm.FolderDataUsage = _folderDataUsage;
_llm.AgentUiExpressionLevel = "rich";
_llm.VllmAllowInsecureTls = ChkVllmAllowInsecureTls.IsChecked == true;
_llm.EnableProactiveContextCompact = ChkEnableProactiveCompact.IsChecked == true;
_llm.ContextCompactTriggerPercent = ParseInt(TxtContextCompactTriggerPercent.Text, 80, 10, 95);
_llm.MaxContextTokens = ParseInt(TxtMaxContextTokens.Text, 4096, 1024, 200000);