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);