AX Agent 설정/오버레이의 PlanMode dead UI를 제거
Some checks failed
Release Gate / gate (push) Has been cancelled
Some checks failed
Release Gate / gate (push) Has been cancelled
- SettingsWindow와 ChatWindow에서 숨김 PlanMode row, hidden toggle, dead handler와 binding 제거 - SettingsViewModel dead PlanMode property/save 경로 정리로 현재 정책과 설정 모델을 일치시킴 - README와 DEVELOPMENT 문서에 2026-04-05 21:12 (KST) 기준 변경 내역과 parity 98% 재평가 반영 - 검증: 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:
@@ -370,15 +370,6 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
set { _agentDecisionLevel = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
public string PlanMode
|
||||
{
|
||||
get => "off";
|
||||
set
|
||||
{
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private bool _enableMultiPassDocument;
|
||||
public bool EnableMultiPassDocument
|
||||
{
|
||||
@@ -1581,7 +1572,6 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
s.Llm.PlanDiffSeverityMediumRatioPercent = _planDiffSeverityMediumRatioPercent;
|
||||
s.Llm.PlanDiffSeverityHighRatioPercent = _planDiffSeverityHighRatioPercent;
|
||||
s.Llm.AgentDecisionLevel = _agentDecisionLevel;
|
||||
s.Llm.PlanMode = "off";
|
||||
s.Llm.EnableMultiPassDocument = _enableMultiPassDocument;
|
||||
s.Llm.EnableCoworkVerification = _enableCoworkVerification;
|
||||
s.Llm.EnableFilePathHighlight = _enableFilePathHighlight;
|
||||
|
||||
@@ -4572,48 +4572,6 @@
|
||||
Style="{StaticResource ToggleSwitch}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border x:Name="OverlayTogglePlanModeTools" Style="{StaticResource OverlayAdvancedToggleRowStyle}" Visibility="Collapsed">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Margin="0,0,16,0">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="Plan Mode 도구"
|
||||
FontSize="12.5"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
<Border Style="{StaticResource OverlayHelpBadge}">
|
||||
<TextBlock Text="?"
|
||||
FontSize="10"
|
||||
FontWeight="Bold"
|
||||
Foreground="{DynamicResource AccentColor}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
<Border.ToolTip>
|
||||
<ToolTip Style="{StaticResource HelpTooltipStyle}">
|
||||
<TextBlock TextWrapping="Wrap"
|
||||
Foreground="White"
|
||||
FontSize="12"
|
||||
LineHeight="18"
|
||||
MaxWidth="280">코드 탭에서 작업을 바로 실행하기 전에 계획 단계로 분리해 검토할 수 있게 합니다. 큰 변경이나 위험 작업을 다룰 때 안전장치 역할을 합니다.</TextBlock>
|
||||
</ToolTip>
|
||||
</Border.ToolTip>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
<TextBlock Text="코드 탭에서 계획 전용 단계 전환 도구를 사용할 수 있게 합니다."
|
||||
Margin="0,4,0,0"
|
||||
FontSize="11.5"
|
||||
TextWrapping="Wrap"
|
||||
Foreground="{DynamicResource SecondaryText}"/>
|
||||
</StackPanel>
|
||||
<CheckBox x:Name="ChkOverlayEnablePlanModeTools"
|
||||
Grid.Column="1"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource ToggleSwitch}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border x:Name="OverlayToggleWorktreeTools" Style="{StaticResource OverlayAdvancedToggleRowStyle}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
|
||||
@@ -14329,7 +14329,6 @@ public partial class ChatWindow : Window
|
||||
llm.EnableParallelTools = ChkOverlayEnableParallelTools?.IsChecked == true;
|
||||
llm.EnableProjectRules = ChkOverlayEnableProjectRules?.IsChecked == true;
|
||||
llm.EnableAgentMemory = ChkOverlayEnableAgentMemory?.IsChecked == true;
|
||||
llm.Code.EnablePlanModeTools = false;
|
||||
llm.Code.EnableWorktreeTools = ChkOverlayEnableWorktreeTools?.IsChecked == true;
|
||||
llm.Code.EnableTeamTools = ChkOverlayEnableTeamTools?.IsChecked == true;
|
||||
llm.Code.EnableCronTools = ChkOverlayEnableCronTools?.IsChecked == true;
|
||||
@@ -14529,8 +14528,6 @@ public partial class ChatWindow : Window
|
||||
ChkOverlayEnableProjectRules.IsChecked = llm.EnableProjectRules;
|
||||
if (ChkOverlayEnableAgentMemory != null)
|
||||
ChkOverlayEnableAgentMemory.IsChecked = llm.EnableAgentMemory;
|
||||
if (ChkOverlayEnablePlanModeTools != null)
|
||||
ChkOverlayEnablePlanModeTools.IsChecked = false;
|
||||
if (ChkOverlayEnableWorktreeTools != null)
|
||||
ChkOverlayEnableWorktreeTools.IsChecked = llm.Code.EnableWorktreeTools;
|
||||
if (ChkOverlayEnableTeamTools != null)
|
||||
@@ -15288,8 +15285,6 @@ public partial class ChatWindow : Window
|
||||
OverlayToggleProjectRules.Visibility = showDev ? Visibility.Visible : Visibility.Collapsed;
|
||||
if (OverlayToggleAgentMemory != null)
|
||||
OverlayToggleAgentMemory.Visibility = showDev ? Visibility.Visible : Visibility.Collapsed;
|
||||
if (OverlayTogglePlanModeTools != null)
|
||||
OverlayTogglePlanModeTools.Visibility = Visibility.Collapsed;
|
||||
if (OverlayToggleWorktreeTools != null)
|
||||
OverlayToggleWorktreeTools.Visibility = showCode ? Visibility.Visible : Visibility.Collapsed;
|
||||
if (OverlayToggleTeamTools != null)
|
||||
|
||||
@@ -4697,49 +4697,6 @@
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border Style="{StaticResource AgentSettingsRow}" Visibility="Collapsed">
|
||||
<Grid>
|
||||
<StackPanel HorizontalAlignment="Left" Margin="0,0,180,0">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Style="{StaticResource RowLabel}" Text="플랜 모드"/>
|
||||
<Border Width="16" Height="16" CornerRadius="8" Background="{DynamicResource ItemHoverBackground}" Margin="6,0,0,0" Cursor="Help" VerticalAlignment="Center">
|
||||
<TextBlock Text="?" FontSize="10" FontWeight="Bold" Foreground="{DynamicResource AccentColor}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
<Border.ToolTip>
|
||||
<ToolTip Style="{StaticResource HelpTooltipStyle}">
|
||||
<TextBlock TextWrapping="Wrap" Foreground="White" FontSize="12" LineHeight="18">
|
||||
AI가 도구를 실행하기 전에 실행 계획을 먼저 생성합니다.
|
||||
<LineBreak/><LineBreak/>• Off — 기존 동작 (계획 없이 바로 실행)
|
||||
<LineBreak/>• Always — 항상 계획 생성 후 승인 대기
|
||||
<LineBreak/>• Auto — 복잡한 작업 감지 시 자동 계획
|
||||
<LineBreak/><LineBreak/>계획을 검토·수정·승인한 후 실행됩니다.
|
||||
</TextBlock>
|
||||
</ToolTip>
|
||||
</Border.ToolTip>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
<TextBlock Style="{StaticResource RowHint}" Text="도구 실행 전 구조화된 실행 계획 생성 및 사용자 승인"/>
|
||||
</StackPanel>
|
||||
<WrapPanel HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<RadioButton x:Name="AgentPlanModeCardOff"
|
||||
Content="Off"
|
||||
GroupName="AgentPlanModeCard"
|
||||
Style="{StaticResource AgentSubTabStyle}"
|
||||
Margin="0,0,6,0"
|
||||
Checked="AgentPlanModeCard_Checked"/>
|
||||
<RadioButton x:Name="AgentPlanModeCardAlways"
|
||||
Content="Always"
|
||||
GroupName="AgentPlanModeCard"
|
||||
Style="{StaticResource AgentSubTabStyle}"
|
||||
Margin="0,0,6,0"
|
||||
Checked="AgentPlanModeCard_Checked"/>
|
||||
<RadioButton x:Name="AgentPlanModeCardAuto"
|
||||
Content="Auto"
|
||||
GroupName="AgentPlanModeCard"
|
||||
Style="{StaticResource AgentSubTabStyle}"
|
||||
Checked="AgentPlanModeCard_Checked"/>
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border Style="{StaticResource AgentSettingsRow}">
|
||||
<Grid>
|
||||
<StackPanel HorizontalAlignment="Left" Margin="0,0,60,0">
|
||||
@@ -5154,16 +5111,6 @@
|
||||
|
||||
<!-- ── Agentic 도구 설정 ── -->
|
||||
<TextBlock Style="{StaticResource SectionHeader}" Text="Agentic 도구"/>
|
||||
<Border Style="{StaticResource SettingsRow}" Visibility="Collapsed">
|
||||
<Grid>
|
||||
<StackPanel HorizontalAlignment="Left" Margin="0,0,60,0">
|
||||
<TextBlock Style="{StaticResource RowLabel}" Text="Plan Mode 도구"/>
|
||||
<TextBlock Style="{StaticResource RowHint}" Text="EnterPlanMode/ExitPlanMode 도구를 사용할지 설정합니다."/>
|
||||
</StackPanel>
|
||||
<CheckBox Style="{StaticResource ToggleSwitch}" HorizontalAlignment="Right" VerticalAlignment="Center"
|
||||
IsChecked="{Binding Code.EnablePlanModeTools, Mode=TwoWay}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border Style="{StaticResource SettingsRow}">
|
||||
<Grid>
|
||||
<StackPanel HorizontalAlignment="Left" Margin="0,0,60,0">
|
||||
|
||||
@@ -126,10 +126,6 @@ public partial class SettingsWindow : Window
|
||||
if (AgentDecisionCardNormal != null) AgentDecisionCardNormal.IsChecked = decision == "normal";
|
||||
if (AgentDecisionCardDetailed != null) AgentDecisionCardDetailed.IsChecked = decision == "detailed";
|
||||
|
||||
if (AgentPlanModeCardOff != null) AgentPlanModeCardOff.IsChecked = true;
|
||||
if (AgentPlanModeCardAlways != null) AgentPlanModeCardAlways.IsChecked = false;
|
||||
if (AgentPlanModeCardAuto != null) AgentPlanModeCardAuto.IsChecked = false;
|
||||
|
||||
var operationMode = OperationModePolicy.Normalize(_vm.OperationMode);
|
||||
if (AgentOperationModeInternal != null) AgentOperationModeInternal.IsChecked = operationMode == OperationModePolicy.InternalMode;
|
||||
if (AgentOperationModeExternal != null) AgentOperationModeExternal.IsChecked = operationMode == OperationModePolicy.ExternalMode;
|
||||
@@ -2213,12 +2209,6 @@ public partial class SettingsWindow : Window
|
||||
};
|
||||
}
|
||||
|
||||
private void AgentPlanModeCard_Checked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!IsLoaded || sender is not RadioButton rb || rb.IsChecked != true) return;
|
||||
_vm.PlanMode = "off";
|
||||
}
|
||||
|
||||
private void AgentOperationModeCard_Checked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!IsLoaded || sender is not RadioButton rb || rb.IsChecked != true)
|
||||
|
||||
Reference in New Issue
Block a user