diff --git a/README.md b/README.md index 29299a0..a8c3349 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@ Windows 전용 시맨틱 런처 & 워크스페이스 매니저 개발 참고: Claw Code 동등성 작업 추적 문서 `docs/claw-code-parity-plan.md` +- 업데이트: 2026-04-06 15:04 (KST) +- AX Agent 사용자 메시지 하단 메타 행 레이아웃을 정리해, 시간 표시와 복사/편집 액션 버튼이 같은 위치에 겹쳐 보이던 문제를 수정했습니다. +- 사용자 메시지 하단 바는 이제 전용 컬럼을 나눠 시간과 액션이 항상 분리되어 보이며, hover 상태와 무관하게 메타 행이 안정적으로 유지됩니다. + - 업데이트: 2026-04-06 09:27 (KST) - `claw-code`와 AX Agent를 다시 대조해 남은 품질 향상 작업을 3트랙으로 재정리했습니다. 앞으로 계획은 `사용자 체감 UI/UX`, `LLM·작업 처리`, `유지보수·추가기능 구조`로 분리해 관리합니다. - `docs/claw-code-parity-plan.md`에 각 트랙별 참조 파일, AX 적용 위치, 완료 조건, 품질 판정 기준, 권장 실행 순서를 고정했습니다. diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 1dc9cdc..8637201 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -1,5 +1,6 @@ # AX Copilot - 媛쒕컻 臾몄꽌 +- Document update: 2026-04-06 15:04 (KST) - Fixed the AX Agent user-message footer row overlap. Sent-time metadata and copy/edit actions no longer share the same overlay cell and now render in dedicated columns so hover actions cannot collide with the timestamp. - Document update: 2026-04-06 09:27 (KST) - Re-framed the remaining `claw-code` parity work into three explicit tracks: user-facing UI/UX quality, LLM/task-handling quality, and maintainability/extensibility structure. This separates visible polish from runtime truth and from architectural cleanup. - Document update: 2026-04-06 09:27 (KST) - Captured the new track plan in `docs/claw-code-parity-plan.md` with reference files, AX apply targets, completion criteria, quality criteria, and recommended execution order so future work can be prioritized more deliberately. diff --git a/src/AxCopilot/Views/ChatWindow.MessageBubblePresentation.cs b/src/AxCopilot/Views/ChatWindow.MessageBubblePresentation.cs index f3be835..2e03bd8 100644 --- a/src/AxCopilot/Views/ChatWindow.MessageBubblePresentation.cs +++ b/src/AxCopilot/Views/ChatWindow.MessageBubblePresentation.cs @@ -85,8 +85,14 @@ public partial class ChatWindow () => EnterEditMode(wrapper, capturedUserContent))); var userBottomBar = new Grid { Margin = new Thickness(0, 1, 0, 0) }; + userBottomBar.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); + userBottomBar.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto }); + userBottomBar.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto }); var timestamp = message?.Timestamp ?? DateTime.Now; - userBottomBar.Children.Add(new TextBlock + Grid.SetColumn(userActionBar, 1); + userBottomBar.Children.Add(userActionBar); + + var timestampText = new TextBlock { Text = timestamp.ToString("HH:mm"), FontSize = 10.5, @@ -94,9 +100,10 @@ public partial class ChatWindow Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.Gray, HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Center, - Margin = new Thickness(0, 0, 2, 1), - }); - userBottomBar.Children.Add(userActionBar); + Margin = new Thickness(8, 0, 2, 1), + }; + Grid.SetColumn(timestampText, 2); + userBottomBar.Children.Add(timestampText); wrapper.Children.Add(userBottomBar); wrapper.MouseEnter += (_, _) => userActionBar.Opacity = 1; wrapper.MouseLeave += (_, _) => userActionBar.Opacity = ReferenceEquals(_selectedMessageActionBar, userActionBar) ? 1 : 0.8;