AX Agent 메시지 액션과 실행 배너를 claw-code 쪽으로 축소
Some checks failed
Release Gate / gate (push) Has been cancelled
Some checks failed
Release Gate / gate (push) Has been cancelled
- 메시지 액션 바를 텍스트+아이콘 조합에서 작은 아이콘 버튼 중심으로 바꿔 본문 집중도를 높임 - Cowork/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:
@@ -18,6 +18,10 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저
|
|||||||
- 반응형 폭 계산도 새 골격에 맞춰 다시 조정했습니다. 메시지 축은 최대 `880`, 컴포저는 최대 `820` 기준으로 더 자연스럽게 줄어들도록 바꿔 창 크기가 변해도 `claw-code`처럼 중심선이 크게 흔들리지 않게 맞췄습니다.
|
- 반응형 폭 계산도 새 골격에 맞춰 다시 조정했습니다. 메시지 축은 최대 `880`, 컴포저는 최대 `820` 기준으로 더 자연스럽게 줄어들도록 바꿔 창 크기가 변해도 `claw-code`처럼 중심선이 크게 흔들리지 않게 맞췄습니다.
|
||||||
- 검증 예정: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
|
- 검증 예정: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
|
||||||
|
|
||||||
|
- 업데이트: 2026-04-05 17:12 (KST)
|
||||||
|
- 메시지 내부 액션 바와 Cowork/Code 실행 배너를 더 `claw-code`처럼 보조 레이어로 낮췄습니다. 메시지 액션은 텍스트 버튼 대신 작은 아이콘 버튼 중심으로 바꾸고, 실행 배너는 여백·폰트·토큰 배지·파일 경로 표시를 한 단계 더 얇게 줄여 본문보다 덜 튀게 정리했습니다.
|
||||||
|
- 검증 예정: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\`
|
||||||
|
|
||||||
- 업데이트: 2026-04-05 16:02 (KST)
|
- 업데이트: 2026-04-05 16:02 (KST)
|
||||||
- `document_plan` 후속 실행 분기를 `claw-code` 기준으로 다시 보강했습니다. 이제 문서 플래너 출력에서 body 골격과 즉시 실행 지시를 깨진 문자열 비교에 의존하지 않고 안정적으로 추출해, `html_create / document_assemble / docx_create / markdown_create` 후속 호출 유도가 실제로 이어집니다.
|
- `document_plan` 후속 실행 분기를 `claw-code` 기준으로 다시 보강했습니다. 이제 문서 플래너 출력에서 body 골격과 즉시 실행 지시를 깨진 문자열 비교에 의존하지 않고 안정적으로 추출해, `html_create / document_assemble / docx_create / markdown_create` 후속 호출 유도가 실제로 이어집니다.
|
||||||
- 코워크 문서형 작업은 설정이 `planMode=off`여도 내부적으로 `always` 플랜 경로를 타도록 보정했습니다. 그래서 문서/보고서/제안서 요청은 먼저 계획을 세우고, 그 계획을 바탕으로 실제 문서 생성 단계까지 이어가도록 정리했습니다.
|
- 코워크 문서형 작업은 설정이 `planMode=off`여도 내부적으로 `always` 플랜 경로를 타도록 보정했습니다. 그래서 문서/보고서/제안서 요청은 먼저 계획을 세우고, 그 계획을 바탕으로 실제 문서 생성 단계까지 이어가도록 정리했습니다.
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
- Document update: 2026-04-05 16:55 (KST) - Simplified AX Agent message rows and sidebar conversation items toward the `claw-code` reading model. Message bubbles now use tighter padding/radius/meta text, and conversation rows now prefer lightweight running/failure summary text over heavier success/failure badge cards.
|
- Document update: 2026-04-05 16:55 (KST) - Simplified AX Agent message rows and sidebar conversation items toward the `claw-code` reading model. Message bubbles now use tighter padding/radius/meta text, and conversation rows now prefer lightweight running/failure summary text over heavier success/failure badge cards.
|
||||||
- Document update: 2026-04-05 17:03 (KST) - Reworked the AX Agent UI skeleton further toward `claw-code`: sidebar width and row heights were tightened, the collapsed icon rail and sidebar header were flattened, status strips were reduced, and the composer shell/input chrome was made slimmer and less card-like.
|
- Document update: 2026-04-05 17:03 (KST) - Reworked the AX Agent UI skeleton further toward `claw-code`: sidebar width and row heights were tightened, the collapsed icon rail and sidebar header were flattened, status strips were reduced, and the composer shell/input chrome was made slimmer and less card-like.
|
||||||
- Document update: 2026-04-05 17:03 (KST) - Re-tuned responsive width calculation for the new shell so the message axis now scales up to `880` and the composer up to `820`, keeping both aligned on the same center line as the window narrows or expands.
|
- Document update: 2026-04-05 17:03 (KST) - Re-tuned responsive width calculation for the new shell so the message axis now scales up to `880` and the composer up to `820`, keeping both aligned on the same center line as the window narrows or expands.
|
||||||
|
- Document update: 2026-04-05 17:12 (KST) - Reduced message action chrome and event-banner density further toward `claw-code`. Message actions now use compact icon-only buttons, and Cowork/Code event banners use tighter margins, smaller metadata, and lighter file-path summaries so execution status stays subordinate to the main transcript.
|
||||||
- Document update: 2026-04-05 16:02 (KST) - Fixed the Cowork document execution handoff around `document_plan`. The loop no longer depends on broken localized marker strings to detect the scaffold/body block or the immediate-next-step hint; it now extracts body markers robustly and resolves the correct follow-up tool (`html_create`, `document_assemble`, `docx_create`, `markdown_create`) before re-prompting the model.
|
- Document update: 2026-04-05 16:02 (KST) - Fixed the Cowork document execution handoff around `document_plan`. The loop no longer depends on broken localized marker strings to detect the scaffold/body block or the immediate-next-step hint; it now extracts body markers robustly and resolves the correct follow-up tool (`html_create`, `document_assemble`, `docx_create`, `markdown_create`) before re-prompting the model.
|
||||||
- Document update: 2026-04-05 16:02 (KST) - Added `ResolveEffectivePlanMode(...)` so Cowork document/content tasks automatically use the `always` plan path even when the persisted plan mode is `off`. This brings Cowork closer to the `claw-code` expectation of plan-first execution for document-heavy work.
|
- Document update: 2026-04-05 16:02 (KST) - Added `ResolveEffectivePlanMode(...)` so Cowork document/content tasks automatically use the `always` plan path even when the persisted plan mode is `off`. This brings Cowork closer to the `claw-code` expectation of plan-first execution for document-heavy work.
|
||||||
- Document update: 2026-04-05 16:02 (KST) - Strengthened `BuildCoworkSystemPrompt()` so document/report/proposal/manual requests must produce an execution plan first and are not considered complete until a real output file path has been created or updated.
|
- Document update: 2026-04-05 16:02 (KST) - Strengthened `BuildCoworkSystemPrompt()` so document/report/proposal/manual requests must produce an execution plan first and are not considered complete until a real output file path has been created or updated.
|
||||||
|
|||||||
@@ -4866,49 +4866,35 @@ public partial class ChatWindow : Window
|
|||||||
{
|
{
|
||||||
Text = symbol,
|
Text = symbol,
|
||||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||||
FontSize = 10.5,
|
FontSize = 10,
|
||||||
Foreground = foreground,
|
Foreground = foreground,
|
||||||
VerticalAlignment = VerticalAlignment.Center
|
VerticalAlignment = VerticalAlignment.Center
|
||||||
};
|
};
|
||||||
var label = new TextBlock
|
|
||||||
{
|
|
||||||
Text = tooltip,
|
|
||||||
FontSize = 10.5,
|
|
||||||
Foreground = foreground,
|
|
||||||
VerticalAlignment = VerticalAlignment.Center,
|
|
||||||
Margin = new Thickness(4, 0, 0, 0),
|
|
||||||
};
|
|
||||||
var content = new StackPanel
|
|
||||||
{
|
|
||||||
Orientation = Orientation.Horizontal,
|
|
||||||
Children = { icon, label }
|
|
||||||
};
|
|
||||||
var btn = new Button
|
var btn = new Button
|
||||||
{
|
{
|
||||||
Content = content,
|
Content = icon,
|
||||||
Background = Brushes.Transparent,
|
Background = Brushes.Transparent,
|
||||||
BorderBrush = borderBrush,
|
BorderBrush = borderBrush,
|
||||||
BorderThickness = new Thickness(1),
|
BorderThickness = new Thickness(1),
|
||||||
Cursor = Cursors.Hand,
|
Cursor = Cursors.Hand,
|
||||||
Padding = new Thickness(7, 3, 7, 3),
|
Width = 24,
|
||||||
Margin = new Thickness(0, 0, 3, 0),
|
Height = 24,
|
||||||
|
Padding = new Thickness(0),
|
||||||
|
Margin = new Thickness(0, 0, 2, 0),
|
||||||
ToolTip = tooltip
|
ToolTip = tooltip
|
||||||
};
|
};
|
||||||
btn.Template = BuildMinimalIconButtonTemplate();
|
btn.Template = BuildMinimalIconButtonTemplate();
|
||||||
btn.MouseEnter += (_, _) =>
|
btn.MouseEnter += (_, _) =>
|
||||||
{
|
{
|
||||||
icon.Foreground = hoverBrush;
|
icon.Foreground = hoverBrush;
|
||||||
label.Foreground = hoverBrush;
|
|
||||||
btn.Background = hoverBg;
|
btn.Background = hoverBg;
|
||||||
};
|
};
|
||||||
btn.MouseLeave += (_, _) =>
|
btn.MouseLeave += (_, _) =>
|
||||||
{
|
{
|
||||||
icon.Foreground = foreground;
|
icon.Foreground = foreground;
|
||||||
label.Foreground = foreground;
|
|
||||||
btn.Background = Brushes.Transparent;
|
btn.Background = Brushes.Transparent;
|
||||||
};
|
};
|
||||||
btn.Click += (_, _) => onClick();
|
btn.Click += (_, _) => onClick();
|
||||||
ApplyHoverScaleAnimation(btn, 1.04);
|
|
||||||
return btn;
|
return btn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -10371,7 +10357,7 @@ public partial class ChatWindow : Window
|
|||||||
BorderThickness = new Thickness(0),
|
BorderThickness = new Thickness(0),
|
||||||
CornerRadius = new CornerRadius(0),
|
CornerRadius = new CornerRadius(0),
|
||||||
Padding = new Thickness(0),
|
Padding = new Thickness(0),
|
||||||
Margin = new Thickness(18, 1, 18, 1),
|
Margin = new Thickness(14, 1, 14, 1),
|
||||||
HorizontalAlignment = HorizontalAlignment.Stretch,
|
HorizontalAlignment = HorizontalAlignment.Stretch,
|
||||||
};
|
};
|
||||||
if (!string.IsNullOrWhiteSpace(evt.RunId))
|
if (!string.IsNullOrWhiteSpace(evt.RunId))
|
||||||
@@ -10390,15 +10376,15 @@ public partial class ChatWindow : Window
|
|||||||
{
|
{
|
||||||
Text = icon,
|
Text = icon,
|
||||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||||
FontSize = 10,
|
FontSize = 9.5,
|
||||||
Foreground = accentBrush,
|
Foreground = accentBrush,
|
||||||
VerticalAlignment = VerticalAlignment.Center,
|
VerticalAlignment = VerticalAlignment.Center,
|
||||||
Margin = new Thickness(0, 0, 5, 0),
|
Margin = new Thickness(0, 0, 4, 0),
|
||||||
});
|
});
|
||||||
headerLeft.Children.Add(new TextBlock
|
headerLeft.Children.Add(new TextBlock
|
||||||
{
|
{
|
||||||
Text = label,
|
Text = label,
|
||||||
FontSize = 10,
|
FontSize = 9.5,
|
||||||
FontWeight = FontWeights.Medium,
|
FontWeight = FontWeights.Medium,
|
||||||
Foreground = secondaryText,
|
Foreground = secondaryText,
|
||||||
VerticalAlignment = VerticalAlignment.Center,
|
VerticalAlignment = VerticalAlignment.Center,
|
||||||
@@ -10412,10 +10398,10 @@ public partial class ChatWindow : Window
|
|||||||
headerRight.Children.Add(new TextBlock
|
headerRight.Children.Add(new TextBlock
|
||||||
{
|
{
|
||||||
Text = evt.ElapsedMs < 1000 ? $"{evt.ElapsedMs}ms" : $"{evt.ElapsedMs / 1000.0:F1}s",
|
Text = evt.ElapsedMs < 1000 ? $"{evt.ElapsedMs}ms" : $"{evt.ElapsedMs / 1000.0:F1}s",
|
||||||
FontSize = 9.5,
|
FontSize = 8.5,
|
||||||
Foreground = secondaryText,
|
Foreground = secondaryText,
|
||||||
VerticalAlignment = VerticalAlignment.Center,
|
VerticalAlignment = VerticalAlignment.Center,
|
||||||
Margin = new Thickness(6, 0, 0, 0),
|
Margin = new Thickness(4, 0, 0, 0),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (logLevel != "simple" && (evt.InputTokens > 0 || evt.OutputTokens > 0))
|
if (logLevel != "simple" && (evt.InputTokens > 0 || evt.OutputTokens > 0))
|
||||||
@@ -10429,13 +10415,13 @@ public partial class ChatWindow : Window
|
|||||||
BorderBrush = borderColor,
|
BorderBrush = borderColor,
|
||||||
BorderThickness = new Thickness(1),
|
BorderThickness = new Thickness(1),
|
||||||
CornerRadius = new CornerRadius(999),
|
CornerRadius = new CornerRadius(999),
|
||||||
Padding = new Thickness(5, 1, 5, 1),
|
Padding = new Thickness(4, 1, 4, 1),
|
||||||
Margin = new Thickness(5, 0, 0, 0),
|
Margin = new Thickness(4, 0, 0, 0),
|
||||||
VerticalAlignment = VerticalAlignment.Center,
|
VerticalAlignment = VerticalAlignment.Center,
|
||||||
Child = new TextBlock
|
Child = new TextBlock
|
||||||
{
|
{
|
||||||
Text = tokenText,
|
Text = tokenText,
|
||||||
FontSize = 9,
|
FontSize = 8,
|
||||||
Foreground = secondaryText,
|
Foreground = secondaryText,
|
||||||
FontFamily = new FontFamily("Consolas"),
|
FontFamily = new FontFamily("Consolas"),
|
||||||
},
|
},
|
||||||
@@ -10462,11 +10448,11 @@ public partial class ChatWindow : Window
|
|||||||
sp.Children.Add(new TextBlock
|
sp.Children.Add(new TextBlock
|
||||||
{
|
{
|
||||||
Text = shortSummary,
|
Text = shortSummary,
|
||||||
FontSize = 10,
|
FontSize = 9.5,
|
||||||
Foreground = secondaryText,
|
Foreground = secondaryText,
|
||||||
TextWrapping = TextWrapping.NoWrap,
|
TextWrapping = TextWrapping.NoWrap,
|
||||||
TextTrimming = TextTrimming.CharacterEllipsis,
|
TextTrimming = TextTrimming.CharacterEllipsis,
|
||||||
Margin = new Thickness(15, 1, 0, 0),
|
Margin = new Thickness(13, 1, 0, 0),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10477,10 +10463,10 @@ public partial class ChatWindow : Window
|
|||||||
sp.Children.Add(new TextBlock
|
sp.Children.Add(new TextBlock
|
||||||
{
|
{
|
||||||
Text = summaryText,
|
Text = summaryText,
|
||||||
FontSize = 10,
|
FontSize = 9.5,
|
||||||
Foreground = secondaryText,
|
Foreground = secondaryText,
|
||||||
TextWrapping = TextWrapping.Wrap,
|
TextWrapping = TextWrapping.Wrap,
|
||||||
Margin = new Thickness(15, 1, 0, 0),
|
Margin = new Thickness(13, 1, 0, 0),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -10491,7 +10477,7 @@ public partial class ChatWindow : Window
|
|||||||
summary: evt.Summary);
|
summary: evt.Summary);
|
||||||
if (reviewChipRow != null)
|
if (reviewChipRow != null)
|
||||||
{
|
{
|
||||||
reviewChipRow.Margin = new Thickness(15, 3, 0, 0);
|
reviewChipRow.Margin = new Thickness(13, 2, 0, 0);
|
||||||
sp.Children.Add(reviewChipRow);
|
sp.Children.Add(reviewChipRow);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -10504,12 +10490,12 @@ public partial class ChatWindow : Window
|
|||||||
BorderBrush = borderColor,
|
BorderBrush = borderColor,
|
||||||
BorderThickness = new Thickness(1),
|
BorderThickness = new Thickness(1),
|
||||||
CornerRadius = new CornerRadius(8),
|
CornerRadius = new CornerRadius(8),
|
||||||
Padding = new Thickness(7, 3, 7, 3),
|
Padding = new Thickness(6, 3, 6, 3),
|
||||||
Margin = new Thickness(15, 3, 0, 0),
|
Margin = new Thickness(13, 2, 0, 0),
|
||||||
Child = new TextBlock
|
Child = new TextBlock
|
||||||
{
|
{
|
||||||
Text = evt.ToolInput.Length > 240 ? evt.ToolInput[..240] + "…" : evt.ToolInput,
|
Text = evt.ToolInput.Length > 240 ? evt.ToolInput[..240] + "…" : evt.ToolInput,
|
||||||
FontSize = 9.5,
|
FontSize = 9,
|
||||||
Foreground = secondaryText,
|
Foreground = secondaryText,
|
||||||
FontFamily = new FontFamily("Consolas"),
|
FontFamily = new FontFamily("Consolas"),
|
||||||
TextWrapping = TextWrapping.Wrap,
|
TextWrapping = TextWrapping.Wrap,
|
||||||
@@ -10529,14 +10515,14 @@ public partial class ChatWindow : Window
|
|||||||
var compactPathRow = new StackPanel
|
var compactPathRow = new StackPanel
|
||||||
{
|
{
|
||||||
Orientation = Orientation.Horizontal,
|
Orientation = Orientation.Horizontal,
|
||||||
Margin = new Thickness(15, 2, 0, 0),
|
Margin = new Thickness(13, 2, 0, 0),
|
||||||
ToolTip = evt.FilePath,
|
ToolTip = evt.FilePath,
|
||||||
};
|
};
|
||||||
compactPathRow.Children.Add(new TextBlock
|
compactPathRow.Children.Add(new TextBlock
|
||||||
{
|
{
|
||||||
Text = "\uE8B7",
|
Text = "\uE8B7",
|
||||||
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
FontFamily = new FontFamily("Segoe MDL2 Assets"),
|
||||||
FontSize = 9,
|
FontSize = 8.5,
|
||||||
Foreground = secondaryText,
|
Foreground = secondaryText,
|
||||||
VerticalAlignment = VerticalAlignment.Center,
|
VerticalAlignment = VerticalAlignment.Center,
|
||||||
Margin = new Thickness(0, 0, 4, 0),
|
Margin = new Thickness(0, 0, 4, 0),
|
||||||
@@ -10544,7 +10530,7 @@ public partial class ChatWindow : Window
|
|||||||
compactPathRow.Children.Add(new TextBlock
|
compactPathRow.Children.Add(new TextBlock
|
||||||
{
|
{
|
||||||
Text = string.IsNullOrWhiteSpace(fileName) ? evt.FilePath : fileName,
|
Text = string.IsNullOrWhiteSpace(fileName) ? evt.FilePath : fileName,
|
||||||
FontSize = 9.5,
|
FontSize = 9,
|
||||||
Foreground = secondaryText,
|
Foreground = secondaryText,
|
||||||
VerticalAlignment = VerticalAlignment.Center,
|
VerticalAlignment = VerticalAlignment.Center,
|
||||||
TextTrimming = TextTrimming.CharacterEllipsis,
|
TextTrimming = TextTrimming.CharacterEllipsis,
|
||||||
|
|||||||
Reference in New Issue
Block a user