AX Agent 컨텍스트 토큰 심볼 잘림 및 hover 라벨 닫힘 개선

- 하단 컨텍스트 토큰 카드 외곽 크기와 내부 원형 그리드 여백을 조정해 파이 심볼 왼쪽 잘림 인상 보정
- usage arc 및 threshold marker 계산 중심점을 실제 심볼 크기에 맞게 재설정
- hover popup을 비상호작용 툴팁 형태로 바꿔 카드 밖으로 벗어나면 더 자연스럽게 닫히도록 정리
- README 및 DEVELOPMENT 문서에 2026-04-05 23: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 21:04:08 +09:00
parent cf59a010ac
commit 8331c0eedc
4 changed files with 12 additions and 10 deletions

View File

@@ -1063,3 +1063,5 @@ MIT License
- 권한 모드 팝업에서 불필요한 `상세 정보` 섹션을 제거하고, 선택 가능한 모드 행만 남기는 단순 리스트형 UI로 정리했다. `계획 모드`는 제외하고 실제 사용하는 권한 요청/편집 자동 승인/권한 건너뛰기 중심으로 재정렬했다. - 권한 모드 팝업에서 불필요한 `상세 정보` 섹션을 제거하고, 선택 가능한 모드 행만 남기는 단순 리스트형 UI로 정리했다. `계획 모드`는 제외하고 실제 사용하는 권한 요청/편집 자동 승인/권한 건너뛰기 중심으로 재정렬했다.
- 업데이트: 2026-04-05 23:49 (KST) - 업데이트: 2026-04-05 23:49 (KST)
- AX Agent 상단 중앙 탭의 글자가 잘리지 않도록 탭 버튼 폰트/패딩/최소 크기와 헤더 래퍼 크기를 소폭 줄였다. 함께 빈 상태의 상단 아이콘과 제목/설명은 한 단계 키워 프리셋 카드 한 장과 시각 비율이 더 자연스럽게 맞도록 조정했다. - AX Agent 상단 중앙 탭의 글자가 잘리지 않도록 탭 버튼 폰트/패딩/최소 크기와 헤더 래퍼 크기를 소폭 줄였다. 함께 빈 상태의 상단 아이콘과 제목/설명은 한 단계 키워 프리셋 카드 한 장과 시각 비율이 더 자연스럽게 맞도록 조정했다.
- 업데이트: 2026-04-05 23:55 (KST)
- 하단 컨텍스트 토큰 심볼의 파이 아크가 왼쪽에서 잘려 보이던 문제를 수정했다. 원형 아크 계산 기준을 실제 카드 크기에 맞게 조정하고, hover 라벨은 비상호작용 툴팁처럼 바꿔 카드에서 마우스를 벗어나면 더 깔끔하게 사라지도록 정리했다.

View File

@@ -4816,3 +4816,6 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎.
- 업데이트: 2026-04-05 23:49 (KST) - 업데이트: 2026-04-05 23:49 (KST)
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 상단 중앙 탭 버튼 폰트, padding, 최소 크기와 탭 래퍼 크기를 소폭 줄여 글자가 잘리던 문제를 보정했다. - [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 상단 중앙 탭 버튼 폰트, padding, 최소 크기와 탭 래퍼 크기를 소폭 줄여 글자가 잘리던 문제를 보정했다.
- 같은 파일의 빈 상태 상단 아이콘과 제목/설명은 반대로 한 단계 키워, 작업 유형/대화 주제 프리셋 카드 한 장과 상단 안내 블록 사이 시각 비율이 더 자연스럽게 맞도록 조정했다. - 같은 파일의 빈 상태 상단 아이콘과 제목/설명은 반대로 한 단계 키워, 작업 유형/대화 주제 프리셋 카드 한 장과 상단 안내 블록 사이 시각 비율이 더 자연스럽게 맞도록 조정했다.
- 업데이트: 2026-04-05 23:55 (KST)
- [ChatWindow.xaml](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml) 의 하단 컨텍스트 토큰 카드 외곽 크기를 30 기준으로 조정하고 내부 원형 그리드에 여백을 확보해 파이 심볼이 왼쪽에서 잘려 보이지 않도록 보정했다.
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에서 원형 usage arc와 threshold marker 계산 중심점을 실제 카드 크기에 맞게 다시 잡았다. 함께 hover popup은 비상호작용 툴팁처럼 바꿔 카드 밖으로 벗어나면 더 자연스럽게 닫히도록 정리했다.

View File

@@ -1744,9 +1744,9 @@
<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="0" Padding="1"
Width="28" Width="30"
Height="28" Height="30"
CornerRadius="999" CornerRadius="999"
BorderBrush="{DynamicResource BorderColor}" BorderBrush="{DynamicResource BorderColor}"
BorderThickness="1" BorderThickness="1"
@@ -1757,7 +1757,7 @@
MouseEnter="TokenUsageCard_MouseEnter" MouseEnter="TokenUsageCard_MouseEnter"
MouseLeave="TokenUsageCard_MouseLeave"> MouseLeave="TokenUsageCard_MouseLeave">
<Grid> <Grid>
<Grid Width="28" Height="28" VerticalAlignment="Center"> <Grid Width="28" Height="28" VerticalAlignment="Center" HorizontalAlignment="Center">
<Ellipse Stroke="{DynamicResource BorderColor}" <Ellipse Stroke="{DynamicResource BorderColor}"
StrokeThickness="2.5"/> StrokeThickness="2.5"/>
<Path x:Name="TokenUsageArc" <Path x:Name="TokenUsageArc"
@@ -1829,8 +1829,7 @@
CornerRadius="12" CornerRadius="12"
Padding="12,10" Padding="12,10"
MinWidth="186" MinWidth="186"
MouseEnter="TokenUsagePopup_MouseEnter" IsHitTestVisible="False">
MouseLeave="TokenUsagePopup_MouseLeave">
<Border.Effect> <Border.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Opacity="0.08"/> <DropShadowEffect BlurRadius="10" ShadowDepth="0" Opacity="0.08"/>
</Border.Effect> </Border.Effect>

View File

@@ -18691,8 +18691,8 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
} }
TokenUsageCard.ToolTip = null; TokenUsageCard.ToolTip = null;
UpdateCircularUsageArc(TokenUsageArc, usageRatio, 18, 18, 14); UpdateCircularUsageArc(TokenUsageArc, usageRatio, 14, 14, 11);
PositionThresholdMarker(TokenUsageThresholdMarker, triggerRatio, 18, 18, 14, 3); PositionThresholdMarker(TokenUsageThresholdMarker, triggerRatio, 14, 14, 11, 2.5);
} }
private void TokenUsageCard_MouseEnter(object sender, MouseEventArgs e) private void TokenUsageCard_MouseEnter(object sender, MouseEventArgs e)
@@ -18711,8 +18711,6 @@ private static (string icon, string label, string bgHex, string fgHex) GetDecisi
private void TokenUsagePopup_MouseEnter(object sender, MouseEventArgs e) private void TokenUsagePopup_MouseEnter(object sender, MouseEventArgs e)
{ {
_tokenUsagePopupCloseTimer.Stop(); _tokenUsagePopupCloseTimer.Stop();
if (TokenUsagePopup != null)
TokenUsagePopup.IsOpen = true;
} }
private void TokenUsagePopup_MouseLeave(object sender, MouseEventArgs e) private void TokenUsagePopup_MouseLeave(object sender, MouseEventArgs e)