- 메시지 버블 패딩, 코너, 폰트, 타임스탬프와 assistant 헤더 메타를 더 축소해 본문 중심 흐름 강화 - 작업 요약 팝업의 완료 카드 라벨과 run/step 메타를 더 짧고 가볍게 정리 - README와 DEVELOPMENT 문서에 2026-04-05 17:33 (KST) 기준 이력 반영 - 검증: 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:
@@ -4386,7 +4386,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
HorizontalAlignment = HorizontalAlignment.Right,
|
||||
MaxWidth = GetMessageMaxWidth(),
|
||||
Margin = new Thickness(196, 2, 12, 2),
|
||||
Margin = new Thickness(208, 2, 12, 2),
|
||||
};
|
||||
|
||||
var bubble = new Border
|
||||
@@ -4394,16 +4394,16 @@ public partial class ChatWindow : Window
|
||||
Background = userBubbleBg,
|
||||
BorderBrush = borderBrush,
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(12),
|
||||
Padding = new Thickness(11, 7, 11, 7),
|
||||
CornerRadius = new CornerRadius(11),
|
||||
Padding = new Thickness(10, 6.5, 10, 6.5),
|
||||
Child = new TextBlock
|
||||
{
|
||||
Text = content,
|
||||
TextAlignment = TextAlignment.Left,
|
||||
FontSize = 11.5,
|
||||
FontSize = 11.25,
|
||||
Foreground = primaryText,
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
LineHeight = 18,
|
||||
LineHeight = 17.5,
|
||||
}
|
||||
};
|
||||
wrapper.Children.Add(bubble);
|
||||
@@ -4431,11 +4431,11 @@ public partial class ChatWindow : Window
|
||||
userBottomBar.Children.Add(new TextBlock
|
||||
{
|
||||
Text = timestamp.ToString("HH:mm"),
|
||||
FontSize = 8, Opacity = 0.42,
|
||||
FontSize = 7.5, Opacity = 0.36,
|
||||
Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.Gray,
|
||||
HorizontalAlignment = HorizontalAlignment.Right,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
Margin = new Thickness(0, 0, 3, 0),
|
||||
Margin = new Thickness(0, 0, 2, 0),
|
||||
});
|
||||
userBottomBar.Children.Add(userActionBar);
|
||||
wrapper.Children.Add(userBottomBar);
|
||||
@@ -4469,19 +4469,19 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
HorizontalAlignment = HorizontalAlignment.Left,
|
||||
MaxWidth = GetMessageMaxWidth(),
|
||||
Margin = new Thickness(4, 2, 164, 2)
|
||||
Margin = new Thickness(4, 2, 178, 2)
|
||||
};
|
||||
if (animate) ApplyMessageEntryAnimation(container);
|
||||
|
||||
// AI 에이전트 이름 + 아이콘
|
||||
var (agentName, _, _) = GetAgentIdentity();
|
||||
var headerSp = new StackPanel { Orientation = Orientation.Horizontal, Margin = new Thickness(2, 0, 0, 1) };
|
||||
var headerSp = new StackPanel { Orientation = Orientation.Horizontal, Margin = new Thickness(2, 0, 0, 0.5) };
|
||||
|
||||
var iconBlock = new TextBlock
|
||||
{
|
||||
Text = "\uE945",
|
||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||
FontSize = 7,
|
||||
FontSize = 6.5,
|
||||
Foreground = secondaryText,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
};
|
||||
@@ -4490,10 +4490,10 @@ public partial class ChatWindow : Window
|
||||
headerSp.Children.Add(new TextBlock
|
||||
{
|
||||
Text = agentName,
|
||||
FontSize = 8,
|
||||
FontSize = 7.5,
|
||||
FontWeight = FontWeights.Normal,
|
||||
Foreground = secondaryText,
|
||||
Margin = new Thickness(3, 0, 0, 0),
|
||||
Margin = new Thickness(2.5, 0, 0, 0),
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
});
|
||||
container.Children.Add(headerSp);
|
||||
@@ -4503,8 +4503,8 @@ public partial class ChatWindow : Window
|
||||
Background = assistantBubbleBg,
|
||||
BorderBrush = borderBrush,
|
||||
BorderThickness = new Thickness(1),
|
||||
CornerRadius = new CornerRadius(12),
|
||||
Padding = new Thickness(11, 7, 11, 7),
|
||||
CornerRadius = new CornerRadius(11),
|
||||
Padding = new Thickness(10, 6.5, 10, 6.5),
|
||||
};
|
||||
var contentStack = new StackPanel();
|
||||
|
||||
@@ -4633,7 +4633,7 @@ public partial class ChatWindow : Window
|
||||
{
|
||||
Orientation = Orientation.Horizontal,
|
||||
HorizontalAlignment = HorizontalAlignment.Left,
|
||||
Margin = new Thickness(2, 1, 0, 0),
|
||||
Margin = new Thickness(2, 0.5, 0, 0),
|
||||
Opacity = 0
|
||||
};
|
||||
|
||||
@@ -4653,10 +4653,10 @@ public partial class ChatWindow : Window
|
||||
actionBar.Children.Add(new TextBlock
|
||||
{
|
||||
Text = aiTimestamp.ToString("HH:mm"),
|
||||
FontSize = 8.5, Opacity = 0.46,
|
||||
FontSize = 7.75, Opacity = 0.38,
|
||||
Foreground = btnColor,
|
||||
VerticalAlignment = VerticalAlignment.Center,
|
||||
Margin = new Thickness(4, 0, 0, 0),
|
||||
Margin = new Thickness(3, 0, 0, 0),
|
||||
});
|
||||
|
||||
container.Children.Add(actionBar);
|
||||
@@ -20150,16 +20150,17 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
{
|
||||
new TextBlock
|
||||
{
|
||||
Text = $"현재 실행 run {ShortRunId(_appState.AgentRun.RunId)}",
|
||||
Text = $"실행 run {ShortRunId(_appState.AgentRun.RunId)}",
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = primaryText,
|
||||
FontSize = 9.75,
|
||||
},
|
||||
new TextBlock
|
||||
{
|
||||
Text = $"{GetRunStatusLabel(_appState.AgentRun.Status)} · iteration {_appState.AgentRun.LastIteration}",
|
||||
Text = $"{GetRunStatusLabel(_appState.AgentRun.Status)} · step {_appState.AgentRun.LastIteration}",
|
||||
Margin = new Thickness(0, 2, 0, 0),
|
||||
Foreground = GetRunStatusBrush(_appState.AgentRun.Status),
|
||||
FontSize = 9.5,
|
||||
FontSize = 9,
|
||||
},
|
||||
new TextBlock
|
||||
{
|
||||
@@ -20167,7 +20168,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
Margin = new Thickness(0, 3, 0, 0),
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
Foreground = Brushes.DimGray,
|
||||
FontSize = 9.5,
|
||||
FontSize = 9,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20195,16 +20196,17 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
{
|
||||
new TextBlock
|
||||
{
|
||||
Text = $"최근 실패 원인 · run {ShortRunId(latestFailedRun.RunId)}",
|
||||
Text = $"최근 실패 · run {ShortRunId(latestFailedRun.RunId)}",
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = BrushFromHex("#991B1B"),
|
||||
FontSize = 9.75,
|
||||
},
|
||||
new TextBlock
|
||||
{
|
||||
Text = $"{latestFailedRun.UpdatedAt:HH:mm:ss} · iteration {latestFailedRun.LastIteration}",
|
||||
Text = $"{latestFailedRun.UpdatedAt:HH:mm:ss} · step {latestFailedRun.LastIteration}",
|
||||
Margin = new Thickness(0, 2, 0, 0),
|
||||
Foreground = BrushFromHex("#B45309"),
|
||||
FontSize = 9.25,
|
||||
FontSize = 8.75,
|
||||
},
|
||||
new TextBlock
|
||||
{
|
||||
@@ -20212,7 +20214,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
Margin = new Thickness(0, 3, 0, 0),
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
Foreground = secondaryText,
|
||||
FontSize = 9.25,
|
||||
FontSize = 8.9,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20221,8 +20223,8 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
|
||||
panel.Children.Add(new TextBlock
|
||||
{
|
||||
Text = "최근 에이전트 실행",
|
||||
FontSize = 10,
|
||||
Text = "최근 실행",
|
||||
FontSize = 9.5,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = Brushes.DimGray,
|
||||
Margin = new Thickness(8, 0, 8, 2),
|
||||
@@ -20242,13 +20244,14 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
Text = runDisplay.HeaderText,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = GetRunStatusBrush(run.Status),
|
||||
FontSize = 9.75,
|
||||
},
|
||||
new TextBlock
|
||||
{
|
||||
Text = runDisplay.MetaText,
|
||||
Margin = new Thickness(0, 2, 0, 0),
|
||||
Foreground = secondaryText,
|
||||
FontSize = 9.25,
|
||||
FontSize = 8.75,
|
||||
},
|
||||
new TextBlock
|
||||
{
|
||||
@@ -20256,7 +20259,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
Margin = new Thickness(0, 2, 0, 0),
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
Foreground = secondaryText,
|
||||
FontSize = 9.25,
|
||||
FontSize = 8.9,
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -20266,8 +20269,8 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
var activitySummary = new StackPanel();
|
||||
activitySummary.Children.Add(new TextBlock
|
||||
{
|
||||
Text = $"실행 로그 {runEvents.Count} · 관련 파일 {runFilePaths.Count}",
|
||||
FontSize = 8.75,
|
||||
Text = $"로그 {runEvents.Count} · 파일 {runFilePaths.Count}",
|
||||
FontSize = 8.4,
|
||||
Foreground = secondaryText,
|
||||
});
|
||||
|
||||
@@ -20275,13 +20278,13 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
{
|
||||
var capturedRunId = run.RunId;
|
||||
var timelineButton = CreateTaskSummaryActionButton(
|
||||
"타임라인 보기",
|
||||
"타임라인",
|
||||
"#F8FAFC",
|
||||
"#CBD5E1",
|
||||
"#334155",
|
||||
(_, _) => ScrollToRunInTimeline(capturedRunId),
|
||||
trailingMargin: false);
|
||||
timelineButton.Margin = new Thickness(0, 6, 0, 0);
|
||||
timelineButton.Margin = new Thickness(0, 5, 0, 0);
|
||||
activitySummary.Children.Add(timelineButton);
|
||||
}
|
||||
|
||||
@@ -20301,20 +20304,20 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
{
|
||||
var capturedRun = run;
|
||||
var followUpButton = CreateTaskSummaryActionButton(
|
||||
"후속 작업 큐에 넣기",
|
||||
"후속 큐",
|
||||
"#ECFDF5",
|
||||
"#BBF7D0",
|
||||
"#166534",
|
||||
(_, _) => EnqueueFollowUpFromRun(capturedRun),
|
||||
trailingMargin: false);
|
||||
followUpButton.Margin = new Thickness(0, 8, 0, 0);
|
||||
followUpButton.Margin = new Thickness(0, 6, 0, 0);
|
||||
runCardStack.Children.Add(followUpButton);
|
||||
}
|
||||
|
||||
if (string.Equals(run.Status, "failed", StringComparison.OrdinalIgnoreCase) && CanRetryCurrentConversation())
|
||||
{
|
||||
var retryButton = CreateTaskSummaryActionButton(
|
||||
"이 실행 다시 시도",
|
||||
"다시 시도",
|
||||
"#FEF2F2",
|
||||
"#FCA5A5",
|
||||
"#991B1B",
|
||||
@@ -20324,7 +20327,7 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
|
||||
RetryLastUserMessageFromConversation();
|
||||
},
|
||||
trailingMargin: false);
|
||||
retryButton.Margin = new Thickness(0, 8, 0, 0);
|
||||
retryButton.Margin = new Thickness(0, 6, 0, 0);
|
||||
runCardStack.Children.Add(retryButton);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user