빌드 부산물 추적 해제와 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

@@ -149,6 +149,10 @@ public class SettingsViewModel : INotifyPropertyChanged
private bool _snippetAutoExpand;
private string _language;
private string _indexSpeed;
private bool _aiEnabled = true;
private string _operationMode = "internal";
private string _agentTheme = "system";
private string _agentThemePreset = "claw";
// 기능 토글
private bool _showNumberBadges;
@@ -237,7 +241,7 @@ public class SettingsViewModel : INotifyPropertyChanged
public int LlmMaxContextTokens
{
get => _llmMaxContextTokens;
set { _llmMaxContextTokens = value; OnPropertyChanged(); }
set { _llmMaxContextTokens = Math.Clamp(value, 1024, 1_000_000); OnPropertyChanged(); }
}
public int LlmRetentionDays
{
@@ -688,6 +692,30 @@ public class SettingsViewModel : INotifyPropertyChanged
set { _indexSpeed = value; OnPropertyChanged(); OnPropertyChanged(nameof(IndexSpeedHint)); }
}
public bool AiEnabled
{
get => _aiEnabled;
set { _aiEnabled = value; OnPropertyChanged(); }
}
public string OperationMode
{
get => _operationMode;
set { _operationMode = string.IsNullOrWhiteSpace(value) ? "internal" : value.Trim().ToLowerInvariant(); OnPropertyChanged(); }
}
public string AgentTheme
{
get => _agentTheme;
set { _agentTheme = string.IsNullOrWhiteSpace(value) ? "system" : value.Trim().ToLowerInvariant(); OnPropertyChanged(); }
}
public string AgentThemePreset
{
get => _agentThemePreset;
set { _agentThemePreset = string.IsNullOrWhiteSpace(value) ? "claw" : value.Trim().ToLowerInvariant(); OnPropertyChanged(); }
}
public string IndexSpeedHint => _indexSpeed switch
{
"fast" => "CPU 사용률이 높아질 수 있습니다. 고성능 PC에 권장합니다.",
@@ -1025,7 +1053,7 @@ public class SettingsViewModel : INotifyPropertyChanged
var llm = s.Llm;
_llmService = NormalizeServiceKey(llm.Service);
_llmStreaming = llm.Streaming;
_llmMaxContextTokens = llm.MaxContextTokens;
_llmMaxContextTokens = Math.Clamp(llm.MaxContextTokens, 1024, 1_000_000);
_llmRetentionDays = llm.RetentionDays;
_llmTemperature = llm.Temperature;
_defaultAgentPermission = PermissionModeCatalog.NormalizeGlobalMode(llm.DefaultAgentPermission);
@@ -1038,6 +1066,10 @@ public class SettingsViewModel : INotifyPropertyChanged
_contextCompactTriggerPercent = llm.ContextCompactTriggerPercent > 0
? Math.Clamp(llm.ContextCompactTriggerPercent, 50, 95)
: 80;
_aiEnabled = _service.Settings.AiEnabled;
_operationMode = string.IsNullOrWhiteSpace(_service.Settings.OperationMode) ? "internal" : _service.Settings.OperationMode;
_agentTheme = string.IsNullOrWhiteSpace(llm.AgentTheme) ? "system" : llm.AgentTheme;
_agentThemePreset = string.IsNullOrWhiteSpace(llm.AgentThemePreset) ? "claw" : llm.AgentThemePreset;
_agentLogLevel = llm.AgentLogLevel;
_agentUiExpressionLevel = (llm.AgentUiExpressionLevel ?? "balanced").Trim().ToLowerInvariant() switch
{
@@ -1463,7 +1495,7 @@ public class SettingsViewModel : INotifyPropertyChanged
// LLM 공통 설정 저장
s.Llm.Service = _llmService;
s.Llm.Streaming = _llmStreaming;
s.Llm.MaxContextTokens = _llmMaxContextTokens;
s.Llm.MaxContextTokens = Math.Clamp(_llmMaxContextTokens, 1024, 1_000_000);
s.Llm.RetentionDays = _llmRetentionDays;
s.Llm.Temperature = _llmTemperature;
s.Llm.DefaultAgentPermission = PermissionModeCatalog.NormalizeGlobalMode(_defaultAgentPermission);
@@ -1474,6 +1506,10 @@ public class SettingsViewModel : INotifyPropertyChanged
s.Llm.MaxRetryOnError = _maxRetryOnError;
s.Llm.EnableProactiveContextCompact = _enableProactiveContextCompact;
s.Llm.ContextCompactTriggerPercent = _contextCompactTriggerPercent;
s.AiEnabled = _aiEnabled;
s.OperationMode = _operationMode;
s.Llm.AgentTheme = _agentTheme;
s.Llm.AgentThemePreset = _agentThemePreset;
s.Llm.AgentLogLevel = _agentLogLevel;
s.Llm.AgentUiExpressionLevel = _agentUiExpressionLevel;
s.Llm.PlanDiffSeverityMediumCount = _planDiffSeverityMediumCount;