AX Agent 상단 탭 복구 및 하단 컴포저 겹침 수정
Some checks failed
Release Gate / gate (push) Has been cancelled

- 상단 Chat/Cowork/Code 탭의 폰트와 패딩을 키워 예전처럼 더 읽기 쉬운 pill 형태로 복구함
- 하단 컴포저 상단 줄에서 토큰 카드와 프리셋 버튼이 같은 Grid 컬럼을 공유하던 구조를 분리해 겹침을 제거함
- 모델 선택, 토큰 사용 카드, 프리셋 버튼의 패딩과 글자 크기를 다시 키워 하단 정보 가독성을 복구함
- README 및 DEVELOPMENT 문서에 2026-04-05 18:55 (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:
2026-04-05 16:17:57 +09:00
parent 51ff046e1a
commit a4d21ecc0b
3 changed files with 33 additions and 24 deletions

View File

@@ -879,6 +879,10 @@ ow + toggle 시각 언어로 통일했습니다.
- 현재 `claw-code` 대비 추정 진척율은 핵심 엔진 `89%`, 채팅 메인 UI `96%`, Cowork/Code 상태 UX `92%`, 내부 설정 연결 `88%`, 전체 AX Agent `94%` 정도입니다. - 현재 `claw-code` 대비 추정 진척율은 핵심 엔진 `89%`, 채팅 메인 UI `96%`, Cowork/Code 상태 UX `92%`, 내부 설정 연결 `88%`, 전체 AX Agent `94%` 정도입니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0 - 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 18:49 (KST) - 업데이트: 2026-04-05 18:49 (KST)
- 상단 탭과 하단 컴포저 일부는 사용자 피드백 기준으로 다시 복구했습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 상단 `Chat / Cowork / Code` 탭은 너무 얇아졌던 pill 스타일을 되돌려 폰트와 패딩을 키우고, 래퍼 패딩도 약간 넓혀 예전처럼 더 또렷하게 보이도록 조정했습니다.
- 같은 파일에서 하단 컴포저의 `토큰 사용 카드``프리셋` 버튼이 같은 컬럼을 같이 써서 겹치던 문제를 수정했습니다. 모델/토큰/프리셋을 각각 독립 컬럼으로 분리했고, 관련 버튼과 레이블의 폰트/패딩도 함께 키워 하단 정보가 눌려 보이지 않게 다시 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 18:55 (KST)
--- ---

View File

@@ -4639,3 +4639,7 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎.
- 현재 `claw-code` 대비 추정 진척율은 핵심 엔진 `89%`, 채팅 메인 UI `96%`, Cowork/Code 상태 UX `92%`, 내부 설정 연결 `88%`, 전체 AX Agent `94%` 정도로 봅니다. - 현재 `claw-code` 대비 추정 진척율은 핵심 엔진 `89%`, 채팅 메인 UI `96%`, Cowork/Code 상태 UX `92%`, 내부 설정 연결 `88%`, 전체 AX Agent `94%` 정도로 봅니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\` 경고 0 / 오류 0 - 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 18:49 (KST) - 업데이트: 2026-04-05 18:49 (KST)
- 사용자 피드백 기준 UI 복구도 반영했습니다. [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml)의 상단 탭은 너무 얇아진 세그먼트형에서 한 단계 되돌려 `TopTabBtn` 폰트와 패딩, 탭 그룹 외곽 패딩을 키워 예전처럼 더 읽기 쉬운 pill 형태로 복구했습니다.
- 같은 파일의 하단 컴포저 상단 줄에서는 `TokenUsageCard``BtnTemplateSelector`가 같은 Grid 컬럼을 공유해 겹치던 구조를 수정했습니다. 컬럼을 4개로 나눠 `모델 선택 / 여백 / 토큰 카드 / 프리셋 버튼`을 각각 독립 배치했고, 카드/버튼의 폰트와 패딩도 다시 키워 하단 레이아웃이 눌려 보이지 않게 정리했습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\` 경고 0 / 오류 0
- 업데이트: 2026-04-05 18:55 (KST)

View File

@@ -174,10 +174,10 @@
<!-- 탭 버튼 --> <!-- 탭 버튼 -->
<Style x:Key="TopTabBtn" TargetType="RadioButton"> <Style x:Key="TopTabBtn" TargetType="RadioButton">
<Setter Property="Foreground" Value="{DynamicResource SecondaryText}"/> <Setter Property="Foreground" Value="{DynamicResource SecondaryText}"/>
<Setter Property="FontSize" Value="11"/> <Setter Property="FontSize" Value="12.5"/>
<Setter Property="FontWeight" Value="SemiBold"/> <Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Cursor" Value="Hand"/> <Setter Property="Cursor" Value="Hand"/>
<Setter Property="Padding" Value="13,4"/> <Setter Property="Padding" Value="18,7"/>
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="RadioButton"> <ControlTemplate TargetType="RadioButton">
@@ -1090,7 +1090,7 @@
Background="{DynamicResource ItemBackground}" Background="{DynamicResource ItemBackground}"
BorderBrush="{DynamicResource BorderColor}" BorderBrush="{DynamicResource BorderColor}"
BorderThickness="1" BorderThickness="1"
CornerRadius="999" Padding="2" CornerRadius="999" Padding="3"
WindowChrome.IsHitTestVisibleInChrome="True"> WindowChrome.IsHitTestVisibleInChrome="True">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<RadioButton x:Name="TabChat" Content="Chat" Style="{StaticResource TopTabBtn}" <RadioButton x:Name="TabChat" Content="Chat" Style="{StaticResource TopTabBtn}"
@@ -1657,27 +1657,28 @@
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button x:Name="BtnModelSelector" <Button x:Name="BtnModelSelector"
Style="{StaticResource OutlineHoverBtn}" Style="{StaticResource OutlineHoverBtn}"
Grid.Column="0" Grid.Column="0"
HorizontalAlignment="Left" HorizontalAlignment="Left"
Margin="0" Margin="0"
MinHeight="24" MinHeight="28"
Padding="6,2" Padding="8,3"
Click="BtnModelSelector_Click" Click="BtnModelSelector_Click"
ToolTip="모델/추론 빠른 설정" ToolTip="모델/추론 빠른 설정"
WindowChrome.IsHitTestVisibleInChrome="True"> WindowChrome.IsHitTestVisibleInChrome="True">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<TextBlock Text="&#xEA86;" FontFamily="Segoe MDL2 Assets" FontSize="11" <TextBlock Text="&#xEA86;" FontFamily="Segoe MDL2 Assets" FontSize="12"
Foreground="{DynamicResource SecondaryText}" Foreground="{DynamicResource SecondaryText}"
VerticalAlignment="Center" Margin="0,0,4,0"/> VerticalAlignment="Center" Margin="0,0,4,0"/>
<TextBlock x:Name="ModelLabel" FontSize="11.5" <TextBlock x:Name="ModelLabel" FontSize="12.5"
Foreground="{DynamicResource SecondaryText}" Foreground="{DynamicResource SecondaryText}"
MaxWidth="300" MaxWidth="300"
TextTrimming="CharacterEllipsis" TextTrimming="CharacterEllipsis"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<TextBlock Text="&#xE70D;" FontFamily="Segoe MDL2 Assets" FontSize="8" <TextBlock Text="&#xE70D;" FontFamily="Segoe MDL2 Assets" FontSize="9"
Foreground="{DynamicResource SecondaryText}" Foreground="{DynamicResource SecondaryText}"
VerticalAlignment="Center" Margin="4,1,0,0"/> VerticalAlignment="Center" Margin="4,1,0,0"/>
</StackPanel> </StackPanel>
@@ -1685,7 +1686,7 @@
<Border x:Name="TokenUsageCard" <Border x:Name="TokenUsageCard"
Grid.Column="2" Grid.Column="2"
Margin="6,0,0,0" Margin="6,0,0,0"
Padding="4,2" Padding="6,3"
CornerRadius="999" CornerRadius="999"
BorderBrush="{DynamicResource BorderColor}" BorderBrush="{DynamicResource BorderColor}"
BorderThickness="1" BorderThickness="1"
@@ -1698,7 +1699,7 @@
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid Width="26" Height="26" VerticalAlignment="Center"> <Grid Width="28" Height="28" VerticalAlignment="Center">
<Ellipse Stroke="{DynamicResource HintBackground}" <Ellipse Stroke="{DynamicResource HintBackground}"
StrokeThickness="3.5"/> StrokeThickness="3.5"/>
<Path x:Name="TokenUsageArc" <Path x:Name="TokenUsageArc"
@@ -1714,29 +1715,29 @@
</Canvas> </Canvas>
<TextBlock x:Name="TokenUsagePercentText" <TextBlock x:Name="TokenUsagePercentText"
Text="0%" Text="0%"
FontSize="8.5" FontSize="9"
FontWeight="SemiBold" FontWeight="SemiBold"
Foreground="{DynamicResource PrimaryText}" Foreground="{DynamicResource PrimaryText}"
HorizontalAlignment="Center" HorizontalAlignment="Center"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
</Grid> </Grid>
<StackPanel Grid.Column="1" <StackPanel Grid.Column="1"
Margin="6,0,4,0" Margin="7,0,5,0"
VerticalAlignment="Center"> VerticalAlignment="Center">
<TextBlock x:Name="TokenUsageSummaryText" <TextBlock x:Name="TokenUsageSummaryText"
Text="컨텍스트" Text="컨텍스트"
FontSize="9.5" FontSize="10.5"
FontWeight="SemiBold" FontWeight="SemiBold"
Foreground="{DynamicResource PrimaryText}"/> Foreground="{DynamicResource PrimaryText}"/>
<TextBlock x:Name="TokenUsageHintText" <TextBlock x:Name="TokenUsageHintText"
Text="0 / 0" Text="0 / 0"
FontSize="8.5" FontSize="9"
Foreground="{DynamicResource SecondaryText}"/> Foreground="{DynamicResource SecondaryText}"/>
</StackPanel> </StackPanel>
<Button x:Name="BtnCompactNow" <Button x:Name="BtnCompactNow"
Grid.Column="2" Grid.Column="2"
Style="{StaticResource GhostBtn}" Style="{StaticResource GhostBtn}"
Padding="5,2" Padding="6,3"
Margin="0" Margin="0"
VerticalAlignment="Center" VerticalAlignment="Center"
Click="BtnCompactNow_Click" Click="BtnCompactNow_Click"
@@ -1750,7 +1751,7 @@
Margin="0,0,4,0"/> Margin="0,0,4,0"/>
<TextBlock x:Name="CompactNowLabel" <TextBlock x:Name="CompactNowLabel"
Text="압축" Text="압축"
FontSize="8.5" FontSize="9"
Foreground="{DynamicResource AccentColor}" Foreground="{DynamicResource AccentColor}"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
</StackPanel> </StackPanel>
@@ -1759,23 +1760,23 @@
</Border> </Border>
<Button x:Name="BtnTemplateSelector" <Button x:Name="BtnTemplateSelector"
Style="{StaticResource OutlineHoverBtn}" Style="{StaticResource OutlineHoverBtn}"
Grid.Column="2" Grid.Column="3"
HorizontalAlignment="Right" HorizontalAlignment="Right"
Margin="0" Margin="6,0,0,0"
MinHeight="24" MinHeight="28"
MinWidth="56" MinWidth="68"
Padding="6,2" Padding="8,3"
Click="BtnTemplateSelector_Click" Click="BtnTemplateSelector_Click"
ToolTip="프롬프트 템플릿" ToolTip="프롬프트 템플릿"
WindowChrome.IsHitTestVisibleInChrome="True"> WindowChrome.IsHitTestVisibleInChrome="True">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<TextBlock Text="&#xE8A5;" FontFamily="Segoe MDL2 Assets" FontSize="11" <TextBlock Text="&#xE8A5;" FontFamily="Segoe MDL2 Assets" FontSize="12"
Foreground="{DynamicResource SecondaryText}" Foreground="{DynamicResource SecondaryText}"
VerticalAlignment="Center" Margin="0,0,4,0"/> VerticalAlignment="Center" Margin="0,0,4,0"/>
<TextBlock Text="프리셋" FontSize="10.5" <TextBlock Text="프리셋" FontSize="11.5"
Foreground="{DynamicResource SecondaryText}" Foreground="{DynamicResource SecondaryText}"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<TextBlock Text="&#xE70D;" FontFamily="Segoe MDL2 Assets" FontSize="8" <TextBlock Text="&#xE70D;" FontFamily="Segoe MDL2 Assets" FontSize="9"
Foreground="{DynamicResource SecondaryText}" Foreground="{DynamicResource SecondaryText}"
VerticalAlignment="Center" Margin="4,1,0,0"/> VerticalAlignment="Center" Margin="4,1,0,0"/>
</StackPanel> </StackPanel>