메인 루프2 이후 사라진 코워크/코드 라이브 카드 복구

메인 루프2 리팩터링 이후 StartLiveAgentProgressHints가 하단 상태 힌트만 시작하고 채팅창 바로 위 V2 라이브 카드를 다시 만들지 않아 Cowork/Code 실행 중 라이브 카드가 보이지 않던 회귀를 수정했다.

- StartLiveAgentProgressHints에서 Cowork/Code 실행 시작 시 ShowAgentLiveCard(runTab)를 다시 호출하도록 복구

- Chat 같은 비대상 탭은 시작 시 기존 라이브 카드를 즉시 정리하도록 보강

- IsAgentLiveCardEligibleTab 헬퍼를 추가해 라이브 카드 대상 탭 판정을 한곳으로 고정

- ChatWindowSlashPolicyTests에 라이브 카드 대상 탭 회귀 테스트 추가

- README.md, docs/DEVELOPMENT.md에 2026-04-15 15:27 (KST) 기준 작업 이력과 검증 결과 반영

검증:

- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_live_card_restore\\ -p:IntermediateOutputPath=obj\\verify_live_card_restore\\ (경고 0 / 오류 0)

- dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter ChatWindowSlashPolicyTests -p:OutputPath=bin\\verify_live_card_restore_tests\\ -p:IntermediateOutputPath=obj\\verify_live_card_restore_tests\\ (통과 49)
This commit is contained in:
2026-04-15 15:30:31 +09:00
parent 791d172850
commit 675bdc9595
5 changed files with 47 additions and 2 deletions

View File

@@ -6728,15 +6728,16 @@ public partial class ChatWindow : Window
_lastAgentProgressEventAt = DateTime.UtcNow;
_currentRunProgressSteps.Clear();
var runTab = string.IsNullOrWhiteSpace(_streamRunTab) ? _activeTab : _streamRunTab!;
if (string.Equals(runTab, "Cowork", StringComparison.OrdinalIgnoreCase)
|| string.Equals(runTab, "Code", StringComparison.OrdinalIgnoreCase))
if (IsAgentLiveCardEligibleTab(runTab))
{
ShowAgentLiveCard(runTab);
var initialStatus = AgentStatusNarrativeCatalog.BuildInitial(runTab);
UpdateLiveAgentProgressHint(initialStatus.Message, "agent_wait");
ShowStreamingStatusBar(initialStatus.Message, detail: initialStatus.Detail);
}
else
{
RemoveAgentLiveCard(animated: false);
UpdateLiveAgentProgressHint(null);
ShowStreamingStatusBar("생각하는 중...");
}