# task-2041 완료 보고서

## SCQA

**S**: dispatch.py의 `_wake_up_bot()` 함수가 봇 lazy-start 시 `"."` 메시지를 cron으로 전송하여 봇 세션을 깨우는 로직을 사용 중이었다.

**C**: 봇이 `"."`를 실제 작업 프롬프트로 인식하여 세션을 소비하고, 이후 전송되는 실제 작업 프롬프트를 수신하지 못하는 문제 발생. 1팀 헤르메스(bot-b) task-2039 위임 시 실제 발생 확인.

**Q**: 봇 세션을 소비하지 않으면서 lazy-start를 안정적으로 처리할 수 있는가?

**A**: `"."` 메시지 전송을 완전 제거하고, systemd 자동 시작을 polling으로 대기하는 방식으로 전환. 실패 시 dispatch 딜레이를 45초로 확대하여 봇 시작 여유를 확보.

## 수정 내용

### 파일: `/home/jay/workspace/dispatch.py`

1. **`_wake_up_bot()` 함수 (1248행)**
   - `"."` cron 전송 코드 블록 완전 제거 (약 15행 삭제)
   - 함수 역할 변경: "메시지 전송 → 세션 깨우기" → "systemd 자동 시작을 polling으로 대기"
   - polling 로직(25초, 5초 간격) 유지
   - 함수 시그니처 변경 없음 (호환성 유지)

2. **호출부 딜레이 조정 (2162행, 2956행)**
   - wake-up 실패 시 `_dispatch_delay`: 30초 → 45초
   - 봇 자동 시작에 더 많은 여유 시간 확보

## 테스트 결과

- `python3 -m pytest tests/test_dispatch.py -x`: **179 passed** (33.83s)
- grep 검증: `"."` 단독 전송 코드 0건 확인
- `_dispatch_delay = 45`: 2곳 정확히 존재 확인

## L1 스모크테스트 결과
- 서버 재시작: 해당없음 (dispatch.py는 CLI 도구, 상시 서버 아님)
- API 응답 확인: 해당없음
- 스크린샷: 해당없음

## 모델 사용 기록
- 카르티케야(백엔드): Sonnet — 코드 수정 + grep 검증 + pytest 실행

## 완료 시그니처 검증
- [x] `"."` 단독 전송 코드 없음 (grep 0건)
- [x] wake-up 로직에서 세션 소비하는 메시지 전송 없음
- [x] `python3 -m pytest tests/test_dispatch.py -x` → 179 PASS

## 세션 통계
- 총 도구 호출: 0회

