동시 Cowork·Code 실행 시 메인 루프 상태 혼선을 탭별로 분리

Cowork와 Code를 동시에 실행할 때 메인 루프 번호와 라이브 진행 힌트가 서로 섞이던 문제를 수정했다. ChatWindow가 전역 단일 진행 상태를 공유하던 구조를 탭별 현재 run 상태, 진행 스텝, 라이브 힌트, 대기 UI 이벤트로 분리해 현재 탭 기준으로만 렌더링하도록 정리했다.

AppStateService에 탭별 최신 run 상태 추적을 추가하고 ConversationList, TaskSummary, Timeline, V2 라이브 카드가 활성 탭의 run 메타를 읽도록 변경했다. AppStateServiceTests에 탭별 run iteration 분리 회귀 테스트를 추가했고 README와 DEVELOPMENT 문서에도 2026-04-15 22:25 (KST) 기준 이력을 반영했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_tab_loop_isolation\\ -p:IntermediateOutputPath=obj\\verify_tab_loop_isolation\\ (경고 0 / 오류 0)
검증: dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AppStateServiceTests" -p:OutputPath=bin\\verify_tab_loop_isolation_tests\\ -p:IntermediateOutputPath=obj\\verify_tab_loop_isolation_tests\\ (통과 45)
This commit is contained in:
2026-04-15 22:26:10 +09:00
parent 2f74780367
commit 82e58bde57
10 changed files with 375 additions and 115 deletions

View File

@@ -1620,3 +1620,8 @@ UI ?遺우쁽????域뱀뮆???귐뗫솯?醫딆춦 ???袁る퓮 ?臾믩씜 ??疫
- AX Agent 좌측 대화 목록 상태 심볼을 열린 링 대신 꽉 찬 원형 구체 스타일로 정리했습니다. `src/AxCopilot/Views/ChatWindow.xaml``ConversationItemTemplate`에서 idle/running 표시를 모두 레이어드 `Ellipse` 배지로 교체해, 한쪽이 비어 보이던 시각 문제를 없앴습니다.
- idle 상태는 중립색 구체와 하이라이트 조합으로, 실행 중 상태는 `AccentColor` 기반 구체로 보이게 바꿨고, unread completion 점도 같은 외곽/하이라이트 패턴으로 맞췄습니다.
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_conversation_symbol_sphere\\ -p:IntermediateOutputPath=obj\\verify_conversation_symbol_sphere\\` 경고 0 / 오류 0
업데이트: 2026-04-15 22:25 (KST)
- AX Agent 동시 실행 회귀를 수정했습니다. `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Views/ChatWindow.AgentStatusPresentation.cs`, `src/AxCopilot/Views/ChatWindow.TimelinePresentation.cs`, `src/AxCopilot/Views/ChatWindow.V2LiveProgressPresentation.cs`가 전역 단일 진행 상태 대신 탭별 현재 run 상태, 라이브 힌트, 진행 스텝, 대기 UI 이벤트를 분리해 Cowork/Code 동시 실행 시 메인 루프 번호가 서로 섞이지 않도록 보정합니다.
- `src/AxCopilot/Services/AppStateService.cs``GetAgentRunForTab(...)`과 탭 지정 `ApplyAgentEvent(...)`를 지원하도록 확장했고, `src/AxCopilot/Views/ChatWindow.ConversationListPresentation.cs`, `src/AxCopilot/Views/ChatWindow.TaskSummary.cs`가 현재 활성 탭의 run 메타를 읽도록 변경했습니다.
- 테스트: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_tab_loop_isolation\\ -p:IntermediateOutputPath=obj\\verify_tab_loop_isolation\\` 경고 0 / 오류 0
- 테스트: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AppStateServiceTests" -p:OutputPath=bin\\verify_tab_loop_isolation_tests\\ -p:IntermediateOutputPath=obj\\verify_tab_loop_isolation_tests\\` 통과 45