모델 프로파일 기반 Cowork/Code 루프와 진행 UX 고도화 반영
- 등록 모델 실행 프로파일을 검증 게이트, 문서 fallback, post-tool verification까지 확장 적용 - Cowork/Code 진행 카드에 계획/도구/검증/압축/폴백/재시도 단계 메타를 추가해 대기 상태 가시성 강화 - OpenAI/vLLM tool 요청에 병렬 도구 호출 힌트를 추가하고 회귀 프롬프트 문서를 프로파일 기준으로 전면 정리 - 검증: 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:
@@ -169,11 +169,12 @@ public partial class SettingsWindow : Window
|
||||
if (AgentOperationModeExternal != null) AgentOperationModeExternal.IsChecked = operationMode == OperationModePolicy.ExternalMode;
|
||||
|
||||
var maxContextTokens = _vm.LlmMaxContextTokens;
|
||||
if (AgentContextTokens4K != null) AgentContextTokens4K.IsChecked = maxContextTokens <= 4096;
|
||||
if (AgentContextTokens16K != null) AgentContextTokens16K.IsChecked = maxContextTokens > 4096 && maxContextTokens <= 16384;
|
||||
if (AgentContextTokens64K != null) AgentContextTokens64K.IsChecked = maxContextTokens > 16384 && maxContextTokens <= 65536;
|
||||
if (AgentContextTokens256K != null) AgentContextTokens256K.IsChecked = maxContextTokens > 65536 && maxContextTokens <= 262144;
|
||||
if (AgentContextTokens1M != null) AgentContextTokens1M.IsChecked = maxContextTokens > 262144;
|
||||
if (AgentContextTokens4K != null) AgentContextTokens4K.IsChecked = maxContextTokens <= 4_096;
|
||||
if (AgentContextTokens16K != null) AgentContextTokens16K.IsChecked = maxContextTokens > 4_096 && maxContextTokens <= 16_384;
|
||||
if (AgentContextTokens64K != null) AgentContextTokens64K.IsChecked = maxContextTokens > 16_384 && maxContextTokens <= 65_536;
|
||||
if (AgentContextTokens128K != null) AgentContextTokens128K.IsChecked = maxContextTokens > 65_536 && maxContextTokens <= 131_072;
|
||||
if (AgentContextTokens256K != null) AgentContextTokens256K.IsChecked = maxContextTokens > 131_072 && maxContextTokens <= 262_144;
|
||||
if (AgentContextTokens1M != null) AgentContextTokens1M.IsChecked = maxContextTokens > 262_144;
|
||||
|
||||
var retentionDays = _vm.LlmRetentionDays;
|
||||
if (AgentRetentionDays7 != null) AgentRetentionDays7.IsChecked = retentionDays == 7;
|
||||
@@ -1170,6 +1171,14 @@ public partial class SettingsWindow : Window
|
||||
ChkDockRainbowGlow.Checked += (_, _) => { launcher.DockBarRainbowGlow = true; svc.Save(); RefreshDock(); };
|
||||
ChkDockRainbowGlow.Unchecked += (_, _) => { launcher.DockBarRainbowGlow = false; svc.Save(); RefreshDock(); };
|
||||
|
||||
ChkLauncherRainbowGlow.IsChecked = launcher.EnableRainbowGlow;
|
||||
ChkLauncherRainbowGlow.Checked += (_, _) => { launcher.EnableRainbowGlow = true; svc.Save(); };
|
||||
ChkLauncherRainbowGlow.Unchecked += (_, _) => { launcher.EnableRainbowGlow = false; svc.Save(); };
|
||||
|
||||
ChkLauncherSelectionGlow.IsChecked = launcher.EnableSelectionGlow;
|
||||
ChkLauncherSelectionGlow.Checked += (_, _) => { launcher.EnableSelectionGlow = true; svc.Save(); };
|
||||
ChkLauncherSelectionGlow.Unchecked += (_, _) => { launcher.EnableSelectionGlow = false; svc.Save(); };
|
||||
|
||||
SliderDockOpacity.Value = launcher.DockBarOpacity;
|
||||
SliderDockOpacity.ValueChanged += (_, e) => { launcher.DockBarOpacity = e.NewValue; svc.Save(); RefreshDock(); };
|
||||
|
||||
@@ -1805,6 +1814,7 @@ public partial class SettingsWindow : Window
|
||||
Alias = dlg.ModelAlias,
|
||||
EncryptedModelName = Services.CryptoService.EncryptIfEnabled(dlg.ModelName, IsEncryptionEnabled),
|
||||
Service = currentService,
|
||||
ExecutionProfile = dlg.ExecutionProfile,
|
||||
Endpoint = dlg.Endpoint,
|
||||
ApiKey = dlg.ApiKey,
|
||||
AllowInsecureTls = dlg.AllowInsecureTls,
|
||||
@@ -1828,13 +1838,15 @@ public partial class SettingsWindow : Window
|
||||
var currentService = GetCurrentServiceSubTab();
|
||||
var dlg = new ModelRegistrationDialog(currentService, row.Alias, currentModel,
|
||||
row.Endpoint, row.ApiKey, row.AllowInsecureTls,
|
||||
row.AuthType ?? "bearer", row.Cp4dUrl ?? "", row.Cp4dUsername ?? "", cp4dPw);
|
||||
row.AuthType ?? "bearer", row.Cp4dUrl ?? "", row.Cp4dUsername ?? "", cp4dPw,
|
||||
row.ExecutionProfile ?? "balanced");
|
||||
dlg.Owner = this;
|
||||
if (dlg.ShowDialog() == true)
|
||||
{
|
||||
row.Alias = dlg.ModelAlias;
|
||||
row.EncryptedModelName = Services.CryptoService.EncryptIfEnabled(dlg.ModelName, IsEncryptionEnabled);
|
||||
row.Service = currentService;
|
||||
row.ExecutionProfile = dlg.ExecutionProfile;
|
||||
row.Endpoint = dlg.Endpoint;
|
||||
row.ApiKey = dlg.ApiKey;
|
||||
row.AllowInsecureTls = dlg.AllowInsecureTls;
|
||||
@@ -2288,11 +2300,12 @@ public partial class SettingsWindow : Window
|
||||
|
||||
_vm.LlmMaxContextTokens = rb.Name switch
|
||||
{
|
||||
"AgentContextTokens16K" => 16384,
|
||||
"AgentContextTokens64K" => 65536,
|
||||
"AgentContextTokens256K" => 262144,
|
||||
"AgentContextTokens1M" => 1_000_000,
|
||||
_ => 4096,
|
||||
"AgentContextTokens16K" => 16_384,
|
||||
"AgentContextTokens64K" => 65_536,
|
||||
"AgentContextTokens128K" => 131_072,
|
||||
"AgentContextTokens256K" => 262_144,
|
||||
"AgentContextTokens1M" => 1_000_000,
|
||||
_ => 4_096,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2407,9 +2420,7 @@ public partial class SettingsWindow : Window
|
||||
BorderBrush = isSelected
|
||||
? (TryFindResource("AccentColor") as Brush ?? Brushes.DodgerBlue)
|
||||
: (TryFindResource("BorderColor") as Brush ?? Brushes.LightGray),
|
||||
Background = isSelected
|
||||
? (TryFindResource("ItemHoverBackground") as Brush ?? Brushes.AliceBlue)
|
||||
: Brushes.Transparent,
|
||||
Background = Brushes.Transparent, // 테마 배경색 대신 항상 투명 (다크 테마 흰 배경 방지)
|
||||
Padding = new Thickness(12, 9, 12, 9),
|
||||
Margin = new Thickness(0, 0, 8, 8),
|
||||
Child = new StackPanel
|
||||
@@ -2467,9 +2478,7 @@ public partial class SettingsWindow : Window
|
||||
BorderBrush = isSelected
|
||||
? (TryFindResource("AccentColor") as Brush ?? Brushes.DodgerBlue)
|
||||
: (TryFindResource("BorderColor") as Brush ?? Brushes.LightGray),
|
||||
Background = isSelected
|
||||
? (TryFindResource("ItemHoverBackground") as Brush ?? Brushes.AliceBlue)
|
||||
: Brushes.Transparent,
|
||||
Background = Brushes.Transparent, // 다크 테마 흰 배경 방지
|
||||
Padding = new Thickness(12, 9, 12, 9),
|
||||
Margin = new Thickness(0, 0, 8, 8),
|
||||
Child = new StackPanel
|
||||
@@ -4130,4 +4139,3 @@ public partial class SettingsWindow : Window
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user