From 13061fa3ca043f058cbb2efd147e261b672489ed Mon Sep 17 00:00:00 2001 From: lacvet Date: Thu, 16 Apr 2026 00:02:50 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8A=A4=ED=81=AC=EB=A1=A4=20=EB=A7=A8?= =?UTF-8?q?=EC=95=84=EB=9E=98=20=EC=9D=B4=EB=8F=99=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98=EC=99=80=20=EC=9E=85=EB=A0=A5=EB=B0=94=20?= =?UTF-8?q?=EC=97=B0=EB=8F=99=20=EB=B3=B4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AX Agent의 스크롤 맨아래 이동 FAB가 입력창 아래로 잘려 보이던 문제를 수정했습니다. ChatWindow.xaml에서 버튼을 Grid.RowSpan=2로 옮기고 기본 하단 여백을 높여 메시지 영역과 입력 바를 함께 기준으로 배치되도록 맞췄습니다. ChatWindow.xaml.cs에는 UpdateScrollToBottomFabPosition()을 추가해 ComposerShell 높이, 입력창 크기 변화, 창 리사이즈 시 FAB 하단 margin을 자동 계산하도록 연결했습니다. 함께 Loaded 구간의 InputBox/InputBorder 이벤트 연결을 null-safe로 정리해 경고 없이 같은 UI 흐름을 유지하도록 보강했습니다. 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify_scroll_to_bottom_fab\ -p:IntermediateOutputPath=obj\verify_scroll_to_bottom_fab\ (경고 0 / 오류 0), dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter ChatWindowSlashPolicyTests -p:OutputPath=bin\verify_scroll_to_bottom_fab_tests\ -p:IntermediateOutputPath=obj\verify_scroll_to_bottom_fab_tests\ (통과 59) --- README.md | 8 ++ docs/DEVELOPMENT.md | 8 ++ src/AxCopilot/Views/ChatWindow.xaml | 4 +- src/AxCopilot/Views/ChatWindow.xaml.cs | 132 +++++++++++++++---------- 4 files changed, 98 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index f2e716d..7ca7986 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ # AX Commander +- 업데이트: 2026-04-16 00:01 (KST) +- AX Agent 스크롤 맨아래 이동 FAB가 입력창 아래로 잘려 보이던 위치 문제를 조정했습니다. `src/AxCopilot/Views/ChatWindow.xaml`에서 버튼을 `Grid.RowSpan="2"`로 옮겨 메시지 영역과 입력 바를 함께 기준으로 잡고, 기본 하단 여백도 더 넉넉하게 올렸습니다. +- `src/AxCopilot/Views/ChatWindow.xaml.cs`에는 `UpdateScrollToBottomFabPosition()`을 추가해 `ComposerShell` 높이, 입력창 크기 변화, 창 리사이즈에 맞춰 버튼 하단 여백을 자동 계산하도록 연결했습니다. 이제 입력창이 커지거나 상태 행 높이가 변해도 FAB가 그 위에 안전하게 떠 있습니다. +- 함께 `Loaded` 초기화 구간의 `InputBox`/`InputBorder` nullability를 정리해 빌드 경고 없이 같은 UI 흐름을 유지하도록 보강했습니다. +- 검증: + - `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_scroll_to_bottom_fab\\ -p:IntermediateOutputPath=obj\\verify_scroll_to_bottom_fab\\` 경고 0 / 오류 0 + - `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ChatWindowSlashPolicyTests" -p:OutputPath=bin\\verify_scroll_to_bottom_fab_tests\\ -p:IntermediateOutputPath=obj\\verify_scroll_to_bottom_fab_tests\\` 통과 59 + - 업데이트: 2026-04-15 23:52 (KST) - AX Agent 채팅 본문이 오른쪽 여백을 더 활용하도록 반응형 폭 계산을 넓혔습니다. `src/AxCopilot/Views/ChatWindow.ResponsePresentation.cs`에서 본문 최대폭을 `1040`, 입력창 폭을 `980` 기준까지 확장하고 `MessageList` 폭 계산도 함께 조정해 큰 창에서 process feed와 응답 본문이 너무 이르게 잘리지 않도록 맞췄습니다. - `src/AxCopilot/Views/ChatWindow.AgentEventRendering.cs`, `src/AxCopilot/Views/ChatWindow.V2LiveProgressPresentation.cs`에서는 process feed 헤더/이벤트 줄과 라이브 thinking 줄을 말줄임 우선 대신 줄바꿈 우선으로 바꿨습니다. 필요한 미리보기 카드만 기존 ellipsis를 유지하고, 나머지 진행 로그는 같은 폭 안에서 더 길게 읽히도록 정리했습니다. diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 83c00f0..c4a302d 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -1695,6 +1695,14 @@ UI ?遺우쁽????域뱀뮆???귐뗫솯?醫딆춦 ???袁る퓮 ?臾믩씜 ??疫 - 검증: - `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_project_scaffold_layout\\ -p:IntermediateOutputPath=obj\\verify_project_scaffold_layout\\` 경고 0 / 오류 0 - `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "IntentGateServiceTests|ProjectScaffoldProfileCatalogTests|SkillServiceRuntimePolicyTests|AgentLoopCodeQualityTests" -p:OutputPath=bin\\verify_project_scaffold_layout_tests\\ -p:IntermediateOutputPath=obj\\verify_project_scaffold_layout_tests\\` 통과 183 +업데이트: 2026-04-16 00:01 (KST) +- AX Agent 스크롤 맨아래 이동 FAB 위치를 입력창 높이에 연동되도록 조정했습니다. `src/AxCopilot/Views/ChatWindow.xaml`에서 FAB를 `Grid.Row="3" Grid.RowSpan="2"`로 옮겨 메시지 영역과 입력 바를 함께 기준으로 잡고, 기본 하단 여백을 높여 잘려 보이던 배치를 먼저 보정했습니다. +- `src/AxCopilot/Views/ChatWindow.xaml.cs`에는 `UpdateScrollToBottomFabPosition()`을 추가했습니다. 이 메서드는 `ComposerShell.ActualHeight`를 읽어 FAB 하단 margin을 계산하고, 스크롤 상태 갱신, 창 로드, 입력창 크기 변화, 입력 바 크기 변화, 창 리사이즈 때마다 다시 적용됩니다. +- 같은 `Loaded` 구간에서 `InputBox`, `InputBorder` 포커스/드래그 이벤트 연결도 null-safe로 정리해 이번 위치 보정과 함께 `CS8602` 경고가 남지 않도록 맞췄습니다. +- 검증: + - `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_scroll_to_bottom_fab\\ -p:IntermediateOutputPath=obj\\verify_scroll_to_bottom_fab\\` 경고 0 / 오류 0 + - `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ChatWindowSlashPolicyTests" -p:OutputPath=bin\\verify_scroll_to_bottom_fab_tests\\ -p:IntermediateOutputPath=obj\\verify_scroll_to_bottom_fab_tests\\` 통과 59 + 업데이트: 2026-04-15 23:52 (KST) - AX Agent 채팅 본문 반응형 폭 계산을 조정했습니다. `src/AxCopilot/Views/ChatWindow.ResponsePresentation.cs`의 본문 상한을 `1040`, 입력창 상한을 `980`까지 넓히고 `MessageList` 최대 폭도 함께 늘려 넓은 창에서 process feed와 본문 로그가 불필요하게 조기 잘리지 않도록 정리했습니다. - `src/AxCopilot/Views/ChatWindow.AgentEventRendering.cs`는 process feed 헤더, 실행 이력 요약, 배너 헤더를 줄바꿈 우선으로 변경했습니다. 기존 `CharacterEllipsis`는 3줄 미리보기처럼 요약 카드가 실제로 필요한 곳에만 남기고, 이벤트 본문/요약 줄은 가능한 한 전체 문장을 읽을 수 있게 했습니다. diff --git a/src/AxCopilot/Views/ChatWindow.xaml b/src/AxCopilot/Views/ChatWindow.xaml index 4884db4..9e28201 100644 --- a/src/AxCopilot/Views/ChatWindow.xaml +++ b/src/AxCopilot/Views/ChatWindow.xaml @@ -1764,10 +1764,10 @@ -