From d3e1f947ba56a9593490fd34532c85c46d769f0c Mon Sep 17 00:00:00 2001 From: lacvet Date: Sat, 4 Apr 2026 14:10:42 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8A=AC=EB=9E=98=EC=8B=9C=20=ED=8C=9D?= =?UTF-8?q?=EC=97=85=20=EB=B0=80=EB=8F=84=20=EC=95=95=EC=B6=95=202?= =?UTF-8?q?=EB=8B=A8=EA=B3=84:=20=EC=BB=B4=ED=8C=A9=ED=8A=B8=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=95=84=EC=9B=83/=ED=96=89=20=EB=86=92=EC=9D=B4=20?= =?UTF-8?q?=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ChatWindow.xaml에서 slash 팝업 폭/높이/헤더/리스트/푸터 패딩을 축소해 한 화면 정보량을 증가 - ChatWindow.xaml.cs에서 섹션 헤더/명령 항목의 폰트와 패딩을 낮춰 Codex형 컴팩트 탐색 밀도 반영 - 스크롤/선택 UX(재렌더링 최소화) 경로와 충돌 없이 시각 밀도만 조정 - README.md, docs/DEVELOPMENT.md에 2026-04-04 14:09(KST) 기준 이력 반영 - 검증: dotnet build 0경고/0오류, slash 관련 필터 테스트 41건 통과 --- README.md | 3 ++- docs/DEVELOPMENT.md | 22 ++++++++++++++++++++++ src/AxCopilot/Views/ChatWindow.xaml | 24 ++++++++++++------------ src/AxCopilot/Views/ChatWindow.xaml.cs | 18 +++++++++--------- 4 files changed, 45 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 078d08f..a9b2781 100644 --- a/README.md +++ b/README.md @@ -222,7 +222,7 @@ public class MyHandler : IActionHandler ### v0.7.3 — AX Agent 권한 코어 재구성 + 입력 계층 정리 -업데이트: 2026-04-04 14:01 (KST) +업데이트: 2026-04-04 14:09 (KST) | 분류 | 내용 | |------|------| @@ -282,6 +282,7 @@ public class MyHandler : IActionHandler | L4 통합 회귀 보강 | `PermissionModeCatalogTests`/`PermissionModePresentationCatalogTests`/`SlashCommandCatalogTests`를 추가하고 deny 우선 규칙을 `OperationModePolicyTests`에 반영해 권한·슬래시 회귀망을 강화 | | 권한 팝업 핵심 4모드 정렬 | 권한 팝업을 `소극 활용/적극 활용/계획 중심/완전 자동` 중심으로 단순화하고 `활용하지 않음/질문 없이 진행`은 `고급 모드` 접힘 섹션으로 분리 | | slash 스크롤 체감 개선 | 휠/방향키 이동 시 전체 재렌더링을 제거하고 선택 하이라이트만 갱신하도록 바꿔 `/` 팝업 스크롤 반응성과 안정성을 개선 | +| slash 팝업 밀도 압축 2단계 | `/` 팝업 폭/높이/패딩과 항목 폰트/행 높이를 축소해 Codex형 컴팩트 밀도와 스캔 속도를 강화 | | Slash palette 상태 분리 시작 | `ChatWindow`에 몰려 있던 slash 상태를 `SlashPaletteState`로 분리해 이후 Codex/Claude형 composer 개편 기반 마련 | | 런처 이미지 미리보기 추가 | `#` 클립보드 이미지 항목에서 `Shift+Enter`로 전용 미리보기 창을 열고, 줌·원본 해상도 확인·PNG/JPEG/BMP 저장·클립보드 복사를 지원 | | 검증 | `dotnet build` 경고 0 / 오류 0, `dotnet test` 436 passed / 0 failed | diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index f49e344..5ec9e4c 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -3430,3 +3430,25 @@ else: ### 3) 품질 게이트 - `dotnet build src/AxCopilot/AxCopilot.csproj -c Debug -p:UseSharedCompilation=false -nodeReuse:false` 통과 (경고 0, 오류 0). - `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj --no-build --filter "FullyQualifiedName~ChatWindowSlashPolicyTests|FullyQualifiedName~SlashCommandCatalogTests|FullyQualifiedName~OperationModePolicyTests|FullyQualifiedName~PermissionModeCatalogTests|FullyQualifiedName~PermissionModePresentationCatalogTests"` 통과 (84 passed, 0 failed). + +## 2026-04-04 추가 진행 기록 (연속 실행 32차: slash 팝업 밀도 압축 2단계) + +업데이트: 2026-04-04 14:09 (KST) + +### 1) slash 팝업 프레임 밀도 조정 +- `ChatWindow.xaml`의 slash 팝업 폭/높이와 내부 여백을 축소: + - `MinWidth 620 → 580`, `MaxWidth 780 → 740` + - `ScrollViewer MaxHeight 420 → 380` + - 헤더/리스트/푸터 패딩 및 마진 축소 +- 목적: 더 컴팩트한 정보 밀도와 빠른 스캔 흐름 확보. + +### 2) 항목/섹션 타이포 밀도 조정 +- `ChatWindow.xaml.cs`의 렌더링 항목 크기를 축소: + - 섹션 헤더 패딩/폰트(`10.5/10 → 10/9.5`) + - 명령 항목 패딩/마진 축소 + - 명령 라벨/설명 폰트(`13/11.5 → 12.5/11`) +- 목적: 한 화면에 더 많은 명령이 보이도록 개선. + +### 3) 품질 게이트 +- `dotnet build src/AxCopilot/AxCopilot.csproj -c Debug -p:UseSharedCompilation=false -nodeReuse:false` 통과 (경고 0, 오류 0). +- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj --no-build --filter "FullyQualifiedName~ChatWindowSlashPolicyTests|FullyQualifiedName~SlashCommandCatalogTests"` 통과 (41 passed, 0 failed). diff --git a/src/AxCopilot/Views/ChatWindow.xaml b/src/AxCopilot/Views/ChatWindow.xaml index 040bdfe..d958929 100644 --- a/src/AxCopilot/Views/ChatWindow.xaml +++ b/src/AxCopilot/Views/ChatWindow.xaml @@ -861,7 +861,7 @@ @@ -871,7 +871,7 @@ BorderBrush="{DynamicResource BorderColor}" BorderThickness="0,0,0,1" CornerRadius="18,18,0,0" - Padding="14,12,14,10"> + Padding="12,10,12,8"> @@ -882,7 +882,7 @@ @@ -901,7 +901,7 @@ x:Name="BtnSlashReset" Click="BtnSlashReset_Click" Style="{StaticResource GhostBtn}" - Padding="8,4" + Padding="7,3" Margin="0,0,6,0" ToolTip="핀/최근 정리"> @@ -919,7 +919,7 @@ x:Name="BtnSlashToggleGroups" Click="BtnSlashToggleGroups_Click" Style="{StaticResource GhostBtn}" - Padding="8,4" + Padding="7,3" ToolTip="명령/스킬 그룹 전체 접기 또는 펼치기"> + Margin="0,5,0,0"/> + Padding="8,8,8,6"> diff --git a/src/AxCopilot/Views/ChatWindow.xaml.cs b/src/AxCopilot/Views/ChatWindow.xaml.cs index d93989a..24d332b 100644 --- a/src/AxCopilot/Views/ChatWindow.xaml.cs +++ b/src/AxCopilot/Views/ChatWindow.xaml.cs @@ -5255,8 +5255,8 @@ public partial class ChatWindow : Window BorderBrush = borderBrush, BorderThickness = new Thickness(1), CornerRadius = new CornerRadius(8), - Padding = new Thickness(10, 6, 10, 6), - Margin = new Thickness(0, 0, 0, 6), + Padding = new Thickness(9, 5, 9, 5), + Margin = new Thickness(0, 0, 0, 5), Cursor = Cursors.Hand, }; var grid = new Grid(); @@ -5276,7 +5276,7 @@ public partial class ChatWindow : Window var titleText = new TextBlock { Text = $"{title} {count}", - FontSize = 10.5, + FontSize = 10, FontWeight = FontWeights.SemiBold, Foreground = primaryText, VerticalAlignment = VerticalAlignment.Center, @@ -5286,7 +5286,7 @@ public partial class ChatWindow : Window var metaText = new TextBlock { Text = expanded ? "접기" : "펼치기", - FontSize = 10, + FontSize = 9.5, Foreground = secondaryText, VerticalAlignment = VerticalAlignment.Center, }; @@ -5328,8 +5328,8 @@ public partial class ChatWindow : Window BorderBrush = borderBrush, BorderThickness = new Thickness(1), CornerRadius = new CornerRadius(10), - Padding = new Thickness(10, 7, 10, 7), - Margin = new Thickness(0, 0, 0, 4), + Padding = new Thickness(9, 6, 9, 6), + Margin = new Thickness(0, 0, 0, 3), Cursor = skillAvailable ? Cursors.Hand : Cursors.Arrow, Opacity = skillAvailable ? 1.0 : 0.5, }; @@ -5351,7 +5351,7 @@ public partial class ChatWindow : Window titleRow.Children.Add(new TextBlock { Text = cmd, - FontSize = 13, + FontSize = 12.5, FontWeight = FontWeights.SemiBold, Foreground = skillAvailable ? primaryText : secondaryText, VerticalAlignment = VerticalAlignment.Center, @@ -5396,10 +5396,10 @@ public partial class ChatWindow : Window leftStack.Children.Add(new TextBlock { Text = label, - FontSize = 11.5, + FontSize = 11, Foreground = secondaryText, VerticalAlignment = VerticalAlignment.Center, - Margin = new Thickness(18, 2, 0, 0), + Margin = new Thickness(18, 1.5, 0, 0), TextTrimming = TextTrimming.CharacterEllipsis, }); Grid.SetColumn(leftStack, 0);