# task-22.1 보고서: 오케스트레이터 완료감지 버그 수정

**팀**: dev1-team (헤르메스)
**소요 시간**: 2분 41초
**완료 시각**: 2026-03-01 11:01:36

## 작업 내용

오케스트레이터(`/home/jay/workspace/orchestrator.py`)의 `run()` 메인 루프에서 `poll_completions()` 메서드가 호출되지 않아 dev1-team, dev2-team(direct 타입) 작업 완료를 감지하지 못하는 버그를 수정했습니다.

### 원인 분석
- `run()` 메인 루프에서 `_process_existing_done_files()`만 호출
- 이 메서드는 `events/.done` 파일만 감시 → dev3-team(GLM 타입) 전용
- dev1-team, dev2-team은 `task-timer.py end`로 `task-timers.json`에 완료 기록
- `poll_completions()` 메서드가 이미 구현되어 있었으나 메인 루프에서 호출되지 않음

### 수정 내용
`orchestrator.py`의 `run()` 메서드 두 곳에 `self.poll_completions()` 호출 추가:

1. **line 546**: 이벤트 감시 시작 전 초기 처리 (`_process_existing_done_files()` 직후)
2. **line 560**: 메인 while 루프 내부 (`_process_existing_done_files()` 직후)

기존 `events/.done` 방식(dev3-team용)은 변경 없이 유지.

## 수정 파일 목록
- `/home/jay/workspace/orchestrator.py` (2줄 추가)

## 테스트 결과
- **14/14 PASS, 0 FAIL**
- 테스트 항목:
  - poll_completions 메서드 존재 및 callable 확인
  - task-timers.json 기반 완료 감지 동작 확인 (running → completed 전환)
  - run() 소스코드에 poll_completions 2곳 호출 확인
  - events/.done 기존 방식 유지 확인
- `--dry-run` 모드로 3팀 동시 배치 정상 동작 확인

## 버그 유무
- 없음

## 비고
- 최소한의 수정(2줄 추가)으로 버그 해결
- 기존 이벤트 기반 감시 로직과 타이머 기반 폴링이 상호 보완적으로 동작
