동시 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

@@ -2296,3 +2296,9 @@ MIT License
- 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에서 Cowork/Code를 동시에 실행할 때 메인 루프 번호와 라이브 진행 힌트가 서로 섞이던 문제를 정리했습니다. `src/AxCopilot/Views/ChatWindow.xaml.cs`, `src/AxCopilot/Views/ChatWindow.AgentStatusPresentation.cs`, `src/AxCopilot/Views/ChatWindow.TimelinePresentation.cs`가 전역 단일 상태 대신 탭별 현재 run 상태, 진행 스텝, 라이브 힌트, 대기 UI 이벤트를 분리해 관리합니다.
- `src/AxCopilot/Services/AppStateService.cs`는 탭별 최신 run 상태 조회를 지원하도록 확장했고, 대화목록/작업요약/실행 메타 표시가 `Cowork``Code` 각각의 run 정보를 읽도록 맞췄습니다. 동시에 실행해도 한 탭의 `메인 루프 1`이 다른 탭의 `메인 루프 14/15/16` 사이에 끼어드는 식의 혼선이 줄어듭니다.
- 테스트:
- `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