AX Agent 상태 노출과 계획 표시를 claw-code 기준으로 정리
- 대화 상단 빠른 스트립을 자동 카운트 노출 대신 사용자 필터와 정렬 전환 시에만 보이도록 조정 - 상단 상태 스트립은 권한 대기와 실패 계열만 남기고 queue 관련 기본 배너를 제거 - planning 이벤트는 기본 transcript에서 큰 카드 대신 compact pill만 표시되도록 변경 - README와 DEVELOPMENT 문서에 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:
@@ -9241,8 +9241,7 @@ public partial class ChatWindow : Window
|
||||
var showCompactStrip = !string.Equals(_activeTab, "Chat", StringComparison.OrdinalIgnoreCase)
|
||||
&& (string.Equals(status.StripKind, "permission_waiting", StringComparison.OrdinalIgnoreCase)
|
||||
|| string.Equals(status.StripKind, "failed_run", StringComparison.OrdinalIgnoreCase)
|
||||
|| string.Equals(status.StripKind, "permission_denied", StringComparison.OrdinalIgnoreCase)
|
||||
|| string.Equals(status.StripKind, "queue_blocked", StringComparison.OrdinalIgnoreCase));
|
||||
|| string.Equals(status.StripKind, "permission_denied", StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
if (!showCompactStrip)
|
||||
{
|
||||
@@ -9266,22 +9265,6 @@ public partial class ChatWindow : Window
|
||||
ConversationStatusStripLabel.Foreground = BrushFromHex("#991B1B");
|
||||
ConversationStatusStripLabel.Text = status.StripText;
|
||||
}
|
||||
else if (string.Equals(status.StripKind, "queue", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
ConversationStatusStrip.Visibility = Visibility.Visible;
|
||||
ConversationStatusStrip.Background = BrushFromHex("#F5F3FF");
|
||||
ConversationStatusStrip.BorderBrush = BrushFromHex("#C4B5FD");
|
||||
ConversationStatusStripLabel.Foreground = BrushFromHex("#6D28D9");
|
||||
ConversationStatusStripLabel.Text = status.StripText;
|
||||
}
|
||||
else if (string.Equals(status.StripKind, "queue_blocked", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
ConversationStatusStrip.Visibility = Visibility.Visible;
|
||||
ConversationStatusStrip.Background = BrushFromHex("#FFFBEB");
|
||||
ConversationStatusStrip.BorderBrush = BrushFromHex("#FCD34D");
|
||||
ConversationStatusStripLabel.Foreground = BrushFromHex("#B45309");
|
||||
ConversationStatusStripLabel.Text = status.StripText;
|
||||
}
|
||||
else
|
||||
{
|
||||
ConversationStatusStrip.Visibility = Visibility.Collapsed;
|
||||
@@ -9300,8 +9283,8 @@ public partial class ChatWindow : Window
|
||||
|
||||
var allowQuickStrip = !string.Equals(_activeTab, "Chat", StringComparison.OrdinalIgnoreCase);
|
||||
var hasQuickSignal = allowQuickStrip
|
||||
&& (_runningConversationCount > 0
|
||||
|| _spotlightConversationCount > 0);
|
||||
&& (_runningOnlyFilter
|
||||
|| !_sortConversationsByRecent);
|
||||
|
||||
ConversationQuickStrip.Visibility = hasQuickSignal
|
||||
? Visibility.Visible
|
||||
@@ -10343,29 +10326,22 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
var logLevel = _settings.Settings.Llm.AgentLogLevel;
|
||||
|
||||
// Planning 이벤트는 기본적으로 얇은 요약만 보이고, debug에서만 큰 카드로 펼칩니다.
|
||||
// Planning 이벤트는 claw-code 기준으로 기본 transcript에 요약 pill만 남깁니다.
|
||||
if (evt.Type == AgentEventType.Planning && evt.Steps is { Count: > 0 })
|
||||
{
|
||||
if (string.Equals(logLevel, "debug", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
AddPlanningCard(evt);
|
||||
}
|
||||
else
|
||||
{
|
||||
var compactPrimaryText = TryFindResource("PrimaryText") as Brush ?? Brushes.White;
|
||||
var compactSecondaryText = TryFindResource("SecondaryText") as Brush ?? Brushes.Gray;
|
||||
var compactHintBg = TryFindResource("HintBackground") as Brush
|
||||
?? new SolidColorBrush(Color.FromArgb(0x18, 0xFF, 0xFF, 0xFF));
|
||||
var compactBorderBrush = TryFindResource("BorderColor") as Brush ?? Brushes.Gray;
|
||||
var compactAccentBrush = TryFindResource("AccentColor") as Brush ?? Brushes.CornflowerBlue;
|
||||
var summary = !string.IsNullOrWhiteSpace(evt.Summary)
|
||||
? evt.Summary!
|
||||
: $"계획 {evt.Steps.Count}단계";
|
||||
var pill = CreateCompactEventPill(summary, compactPrimaryText, compactSecondaryText, compactHintBg, compactBorderBrush, compactAccentBrush);
|
||||
pill.Opacity = 0;
|
||||
pill.BeginAnimation(UIElement.OpacityProperty, new DoubleAnimation(0, 1, TimeSpan.FromMilliseconds(160)));
|
||||
MessagePanel.Children.Add(pill);
|
||||
}
|
||||
var compactPrimaryText = TryFindResource("PrimaryText") as Brush ?? Brushes.White;
|
||||
var compactSecondaryText = TryFindResource("SecondaryText") as Brush ?? Brushes.Gray;
|
||||
var compactHintBg = TryFindResource("HintBackground") as Brush
|
||||
?? new SolidColorBrush(Color.FromArgb(0x18, 0xFF, 0xFF, 0xFF));
|
||||
var compactBorderBrush = TryFindResource("BorderColor") as Brush ?? Brushes.Gray;
|
||||
var compactAccentBrush = TryFindResource("AccentColor") as Brush ?? Brushes.CornflowerBlue;
|
||||
var summary = !string.IsNullOrWhiteSpace(evt.Summary)
|
||||
? evt.Summary!
|
||||
: $"계획 {evt.Steps.Count}단계";
|
||||
var pill = CreateCompactEventPill(summary, compactPrimaryText, compactSecondaryText, compactHintBg, compactBorderBrush, compactAccentBrush);
|
||||
pill.Opacity = 0;
|
||||
pill.BeginAnimation(UIElement.OpacityProperty, new DoubleAnimation(0, 1, TimeSpan.FromMilliseconds(160)));
|
||||
MessagePanel.Children.Add(pill);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user