# notify-completion.py + done-watcher.sh에 cokacdir --cron 아누 세션 깨우기 추가

## 배경
task-563.1에서 Telegram 직접 전송으로 전환 완료. 이제 **추가로** cokacdir --cron을 호출하여 아누 세션을 깨우는 로직을 넣는다.

- Telegram 직접 전송 = 확실한 알림 (이미 구현됨)
- cokacdir --cron = 아누 세션 자동 깨우기 (best-effort 추가)

## 변경 대상

### 1. `/home/jay/workspace/scripts/notify-completion.py`

#### 1-A. `wake_anu_via_cron()` 함수 추가
```python
def wake_anu_via_cron(task_id: str, chat_id: str, anu_key: str) -> None:
    """cokacdir --cron으로 아누 세션 깨우기 (best-effort, 실패해도 무시)"""
    prompt = (
        f"{task_id} 완료됨. "
        f"memory/events/{task_id}.done 처리하고 "
        f"memory/reports/{task_id}.md 읽어서 제이회장님께 프로젝트 전체 현황 포함 보고하라."
    )
    cmd = [
        "cokacdir", "--cron", prompt,
        "--at", "1m",
        "--chat", chat_id,
        "--key", anu_key,
        "--once",
    ]
    try:
        subprocess.run(cmd, capture_output=True, text=True, timeout=30)
    except Exception:
        pass  # best-effort — 실패해도 Telegram 알림은 이미 전송됨
```

#### 1-B. else 분기 (일반/마지막 Phase, 현재 line 228~257)
`send_direct_telegram()` 성공 후, `.done.clear` 생성 후에 `wake_anu_via_cron()` 호출 추가:
```python
if sent:
    # .done.clear 생성 (기존 코드 유지)
    ...
    # 아누 세션 깨우기 (best-effort)
    wake_anu_via_cron(args.task_id, args.chat_id, anu_key)
```

#### 1-C. chain 중간 Phase 분기 (현재 line 165~226)
dispatch + telegram 성공 후, `.done.clear` 생성 후에 동일하게 추가:
```python
if dispatch_success and sent:
    # .done.clear 생성 (기존 코드 유지)
    ...
    # 아누 세션 깨우기 (best-effort)
    wake_anu_via_cron(args.task_id, args.chat_id, anu_key)
```

### 2. `/home/jay/workspace/scripts/done-watcher.sh`

L3 Fallback에서 curl 전송 성공 + `.done.clear` 생성 후에 cokacdir 호출 추가:
```bash
if [ "$RESULT" = "200" ]; then
    # .done.clear 생성 (기존 코드 유지)
    ...
    # 아누 세션 깨우기 (best-effort)
    source /home/jay/workspace/.env.keys 2>/dev/null || true
    cokacdir --cron "${task_id} 완료됨. memory/events/${task_id}.done 처리하고 memory/reports/${task_id}.md 읽어서 제이회장님께 프로젝트 전체 현황 포함 보고하라." --at "1m" --chat "6937032012" --key "${COKACDIR_KEY_ANU:-c119085addb0f8b7}" --once 2>/dev/null || true
    echo "[$(date -Iseconds)] L3 cokacdir 아누 세션 깨우기 시도: $task_id" >> "$LOG"
fi
```

## 핵심 원칙
- cokacdir 호출은 **best-effort**. 실패해도 에러 처리/재시도 불필요
- Telegram 직접 전송이 이미 성공한 상태에서만 호출
- `anu_key`는 `args.anu_key` 또는 `get_anu_key()`에서 가져옴 (이미 코드에 존재)

## 테스트
- 기존 test_notify_completion.py 30건 회귀 없어야 함
- `wake_anu_via_cron` 함수에 대한 단위 테스트 추가 (subprocess mock)
- E2E: `.done` 생성 → Telegram 알림 + cokacdir 호출 확인

## 완료 기준
- [ ] `wake_anu_via_cron()` 함수 추가
- [ ] else 분기에서 호출
- [ ] chain 분기에서 호출
- [ ] done-watcher.sh에서 호출
- [ ] 기존 테스트 회귀 없음
- [ ] 신규 테스트 추가