AX Agent claw-code 진척율 문서화 및 메시지 축 단순화
Some checks failed
Release Gate / gate (push) Has been cancelled
Some checks failed
Release Gate / gate (push) Has been cancelled
- claw-code 대비 AX Agent 진척율을 README, DEVELOPMENT, parity 계획 문서에 수치로 기록 - 핵심 엔진 영향 설정 최소화 원칙을 정리하고 계획 모드 잔재 노출을 추가로 축소 - ChatWindow 메시지 버블과 좌측 대화 목록 카드를 더 얇은 밀도로 조정해 claw-code식 읽기 축에 가깝게 정리 - 검증: 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:
@@ -1888,6 +1888,7 @@
|
||||
<Button x:Name="BtnInlinePlanMode"
|
||||
Style="{StaticResource OutlineHoverBtn}"
|
||||
Visibility="Collapsed"
|
||||
IsEnabled="False"
|
||||
Margin="0,0,6,6"
|
||||
Padding="9,4"
|
||||
Click="BtnInlinePlanMode_Click"/>
|
||||
@@ -2873,6 +2874,7 @@
|
||||
</StackPanel>
|
||||
<ComboBox x:Name="CmbOverlayPlanMode"
|
||||
Grid.Column="1"
|
||||
Visibility="Collapsed"
|
||||
Style="{StaticResource OverlayComboBox}"
|
||||
SelectionChanged="CmbOverlayPlanMode_SelectionChanged">
|
||||
<ComboBoxItem Content="계획 · 끄기" Tag="off"/>
|
||||
@@ -4498,7 +4500,7 @@
|
||||
Style="{StaticResource ToggleSwitch}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border x:Name="OverlayTogglePlanModeTools" Style="{StaticResource OverlayAdvancedToggleRowStyle}">
|
||||
<Border x:Name="OverlayTogglePlanModeTools" Style="{StaticResource OverlayAdvancedToggleRowStyle}" Visibility="Collapsed">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
|
||||
@@ -3227,16 +3227,16 @@ public partial class ChatWindow : Window
|
||||
var border = new Border
|
||||
{
|
||||
Background = isSelected
|
||||
? new SolidColorBrush(Color.FromArgb(0x14, 0x4B, 0x5E, 0xFC))
|
||||
? new SolidColorBrush(Color.FromArgb(0x10, 0x4B, 0x5E, 0xFC))
|
||||
: Brushes.Transparent,
|
||||
CornerRadius = new CornerRadius(7),
|
||||
Padding = new Thickness(8, 5, 8, 5),
|
||||
Margin = isBranch ? new Thickness(14, 1, 0, 1) : new Thickness(0, 1, 0, 1),
|
||||
CornerRadius = new CornerRadius(6),
|
||||
Padding = new Thickness(7, 4, 7, 4),
|
||||
Margin = isBranch ? new Thickness(12, 1, 0, 1) : new Thickness(0, 1, 0, 1),
|
||||
Cursor = Cursors.Hand
|
||||
};
|
||||
|
||||
var grid = new Grid();
|
||||
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(20) });
|
||||
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(18) });
|
||||
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
|
||||
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto });
|
||||
|
||||
@@ -3255,7 +3255,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
Text = iconText,
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 11,
|
||||
FontSize = 10,
|
||||
Foreground = iconBrush,
|
||||
VerticalAlignment = VerticalAlignment.Center
|
||||
};
|
||||
@@ -3270,7 +3270,7 @@ public partial class ChatWindow : Window
|
||||
var title = new TextBlock
|
||||
{
|
||||
Text = item.Title,
|
||||
FontSize = 11,
|
||||
FontSize = 10.5,
|
||||
FontWeight = isSelected ? FontWeights.SemiBold : FontWeights.Normal,
|
||||
Foreground = titleColor,
|
||||
TextTrimming = TextTrimming.CharacterEllipsis
|
||||
@@ -3278,7 +3278,7 @@ public partial class ChatWindow : Window
|
||||
var date = new TextBlock
|
||||
{
|
||||
Text = item.UpdatedAtText,
|
||||
FontSize = 8.5,
|
||||
FontSize = 8,
|
||||
Foreground = dateColor,
|
||||
Margin = new Thickness(0, 1, 0, 0)
|
||||
};
|
||||
@@ -3286,89 +3286,29 @@ public partial class ChatWindow : Window
|
||||
stack.Children.Add(date);
|
||||
if (item.IsRunning)
|
||||
{
|
||||
stack.Children.Add(new Border
|
||||
stack.Children.Add(new TextBlock
|
||||
{
|
||||
Background = BrushFromHex("#EEF2FF"),
|
||||
BorderBrush = BrushFromHex("#C7D2FE"),
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(6),
|
||||
Padding = new Thickness(4, 1, 4, 1),
|
||||
Text = _appState.ActiveTasks.Count > 0
|
||||
? $"진행 중 {_appState.ActiveTasks.Count}"
|
||||
: "진행 중",
|
||||
FontSize = 8,
|
||||
FontWeight = FontWeights.Medium,
|
||||
Foreground = BrushFromHex("#4F46E5"),
|
||||
Margin = new Thickness(0, 2, 0, 0),
|
||||
HorizontalAlignment = HorizontalAlignment.Left,
|
||||
Child = new TextBlock
|
||||
{
|
||||
Text = _appState.ActiveTasks.Count > 0
|
||||
? $"진행 중 {_appState.ActiveTasks.Count}"
|
||||
: "진행 중",
|
||||
FontSize = 8,
|
||||
FontWeight = FontWeights.Medium,
|
||||
Foreground = BrushFromHex("#4F46E5"),
|
||||
}
|
||||
});
|
||||
}
|
||||
if (item.AgentRunCount > 0)
|
||||
{
|
||||
var runSummaryPanel = new DockPanel
|
||||
{
|
||||
Margin = new Thickness(0, 2, 0, 0),
|
||||
LastChildFill = true,
|
||||
};
|
||||
|
||||
if (item.FailedAgentRunCount > 0 && item.LastFailedAt.HasValue)
|
||||
{
|
||||
var failedBadge = new Border
|
||||
{
|
||||
Background = BrushFromHex("#FEF2F2"),
|
||||
BorderBrush = BrushFromHex("#FEE2E2"),
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(6),
|
||||
Padding = new Thickness(4, 1, 4, 1),
|
||||
Margin = new Thickness(0, 0, 4, 0),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
Child = new TextBlock
|
||||
{
|
||||
Text = $"실패 {FormatDate(item.LastFailedAt.Value)}",
|
||||
FontSize = 8,
|
||||
FontWeight = FontWeights.Medium,
|
||||
Foreground = BrushFromHex("#B91C1C"),
|
||||
}
|
||||
};
|
||||
DockPanel.SetDock(failedBadge, Dock.Right);
|
||||
runSummaryPanel.Children.Add(failedBadge);
|
||||
}
|
||||
else if (item.LastCompletedAt.HasValue)
|
||||
{
|
||||
var completedBadge = new Border
|
||||
{
|
||||
Background = BrushFromHex("#ECFDF5"),
|
||||
BorderBrush = BrushFromHex("#DCFCE7"),
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(6),
|
||||
Padding = new Thickness(4, 1, 4, 1),
|
||||
Margin = new Thickness(0, 0, 4, 0),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
Child = new TextBlock
|
||||
{
|
||||
Text = $"성공 {FormatDate(item.LastCompletedAt.Value)}",
|
||||
FontSize = 8,
|
||||
FontWeight = FontWeights.Medium,
|
||||
Foreground = BrushFromHex("#166534"),
|
||||
}
|
||||
};
|
||||
DockPanel.SetDock(completedBadge, Dock.Right);
|
||||
runSummaryPanel.Children.Add(completedBadge);
|
||||
}
|
||||
|
||||
var runSummaryText = new TextBlock
|
||||
{
|
||||
Text = item.FailedAgentRunCount > 0
|
||||
? $"실행 {item.AgentRunCount} · 실패 {item.FailedAgentRunCount} · {TruncateForStatus(item.LastAgentRunSummary, 28)}"
|
||||
: $"실행 {item.AgentRunCount} · {TruncateForStatus(item.LastAgentRunSummary, 32)}",
|
||||
? $"실패 {item.FailedAgentRunCount} · {TruncateForStatus(item.LastAgentRunSummary, 26)}"
|
||||
: $"실행 {item.AgentRunCount} · {TruncateForStatus(item.LastAgentRunSummary, 28)}",
|
||||
FontSize = 8.25,
|
||||
Foreground = item.FailedAgentRunCount > 0
|
||||
? BrushFromHex("#B91C1C")
|
||||
: (TryFindResource("SecondaryText") as Brush ?? Brushes.Gray),
|
||||
Margin = new Thickness(0, 1, 0, 0),
|
||||
Margin = new Thickness(0, 2, 0, 0),
|
||||
TextTrimming = TextTrimming.CharacterEllipsis
|
||||
};
|
||||
if (!string.IsNullOrWhiteSpace(item.LastAgentRunSummary))
|
||||
@@ -3377,8 +3317,7 @@ public partial class ChatWindow : Window
|
||||
? $"최근 실패 포함\n{item.LastAgentRunSummary}"
|
||||
: item.LastAgentRunSummary;
|
||||
}
|
||||
runSummaryPanel.Children.Add(runSummaryText);
|
||||
stack.Children.Add(runSummaryPanel);
|
||||
stack.Children.Add(runSummaryText);
|
||||
}
|
||||
Grid.SetColumn(stack, 1);
|
||||
grid.Children.Add(stack);
|
||||
@@ -4447,7 +4386,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
HorizontalAlignment = HorizontalAlignment.Right,
|
||||
MaxWidth = GetMessageMaxWidth(),
|
||||
Margin = new Thickness(172, 2, 16, 2),
|
||||
Margin = new Thickness(196, 2, 12, 2),
|
||||
};
|
||||
|
||||
var bubble = new Border
|
||||
@@ -4455,16 +4394,16 @@ public partial class ChatWindow : Window
|
||||
Background = userBubbleBg,
|
||||
BorderBrush = borderBrush,
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(13),
|
||||
Padding = new Thickness(12, 8, 12, 8),
|
||||
CornerRadius = new CornerRadius(12),
|
||||
Padding = new Thickness(11, 7, 11, 7),
|
||||
Child = new TextBlock
|
||||
{
|
||||
Text = content,
|
||||
TextAlignment = TextAlignment.Left,
|
||||
FontSize = 12,
|
||||
FontSize = 11.5,
|
||||
Foreground = primaryText,
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
LineHeight = 19,
|
||||
LineHeight = 18,
|
||||
}
|
||||
};
|
||||
wrapper.Children.Add(bubble);
|
||||
@@ -4492,7 +4431,7 @@ public partial class ChatWindow : Window
|
||||
userBottomBar.Children.Add(new TextBlock
|
||||
{
|
||||
Text = timestamp.ToString("HH:mm"),
|
||||
FontSize = 8.5, Opacity = 0.46,
|
||||
FontSize = 8, Opacity = 0.42,
|
||||
Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.Gray,
|
||||
HorizontalAlignment = HorizontalAlignment.Right,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
@@ -4530,19 +4469,19 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
HorizontalAlignment = HorizontalAlignment.Left,
|
||||
MaxWidth = GetMessageMaxWidth(),
|
||||
Margin = new Thickness(6, 2, 180, 2)
|
||||
Margin = new Thickness(4, 2, 164, 2)
|
||||
};
|
||||
if (animate) ApplyMessageEntryAnimation(container);
|
||||
|
||||
// AI 에이전트 이름 + 아이콘
|
||||
var (agentName, _, _) = GetAgentIdentity();
|
||||
var headerSp = new StackPanel { Orientation = Orientation.Horizontal, Margin = new Thickness(3, 0, 0, 1) };
|
||||
var headerSp = new StackPanel { Orientation = Orientation.Horizontal, Margin = new Thickness(2, 0, 0, 1) };
|
||||
|
||||
var iconBlock = new TextBlock
|
||||
{
|
||||
Text = "\uE945",
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 7.5,
|
||||
FontSize = 7,
|
||||
Foreground = secondaryText,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
};
|
||||
@@ -4551,7 +4490,7 @@ public partial class ChatWindow : Window
|
||||
headerSp.Children.Add(new TextBlock
|
||||
{
|
||||
Text = agentName,
|
||||
FontSize = 8.5,
|
||||
FontSize = 8,
|
||||
FontWeight = FontWeights.Normal,
|
||||
Foreground = secondaryText,
|
||||
Margin = new Thickness(3, 0, 0, 0),
|
||||
@@ -4564,8 +4503,8 @@ public partial class ChatWindow : Window
|
||||
Background = assistantBubbleBg,
|
||||
BorderBrush = borderBrush,
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(13),
|
||||
Padding = new Thickness(12, 8, 12, 8),
|
||||
CornerRadius = new CornerRadius(12),
|
||||
Padding = new Thickness(11, 7, 11, 7),
|
||||
};
|
||||
var contentStack = new StackPanel();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user