AX Agent transcript 호스트를 컬렉션 기반으로 재구성해 코워크·코드 스트리밍 중 UI 부하를 줄임
Some checks failed
Release Gate / gate (push) Has been cancelled
Some checks failed
Release Gate / gate (push) Has been cancelled
- 메시지 영역을 ScrollViewer+StackPanel 직접 조작 구조에서 ListBox+ObservableCollection 기반 transcript 호스트로 전환 - ChatWindow.TranscriptHost 도입으로 transcript 요소 추가·교체·삭제·스크롤 접근을 공용 helper로 정리 - 코워크/코드 실행 중 RenderMessages와 라이브 카드가 MessagePanel.Children 직접 조작에 덜 의존하도록 정리 - MessageBubble, AgentEventRendering, Timeline, UserAsk, ConversationManagement 등 transcript 관련 partial을 새 호스트 구조에 맞게 전환 - 향후 claw-code의 VirtualMessageList 수준 가상화를 적용할 수 있는 기반을 마련 - README와 DEVELOPMENT 문서를 2026-04-08 12:52 (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:
@@ -122,7 +122,7 @@ public partial class ChatWindow
|
||||
if (animate)
|
||||
ApplyMessageEntryAnimation(wrapper);
|
||||
if (message?.MsgId != null) _elementCache[$"m_{message.MsgId}"] = wrapper;
|
||||
MessagePanel.Children.Add(wrapper);
|
||||
AddTranscriptElement(wrapper);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -132,7 +132,7 @@ public partial class ChatWindow
|
||||
if (animate)
|
||||
ApplyMessageEntryAnimation(compactCard);
|
||||
if (message.MsgId != null) _elementCache[$"m_{message.MsgId}"] = compactCard;
|
||||
MessagePanel.Children.Add(compactCard);
|
||||
AddTranscriptElement(compactCard);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -335,6 +335,6 @@ public partial class ChatWindow
|
||||
};
|
||||
|
||||
if (message?.MsgId != null) _elementCache[$"m_{message.MsgId}"] = container;
|
||||
MessagePanel.Children.Add(container);
|
||||
AddTranscriptElement(container);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user