# task-408.1: task-timer 이중 등록 방어 로직

## 문제
아누가 `task-timer.py start task-406.1`로 타이머를 먼저 시작한 뒤, `dispatch.py`가 자체적으로 `task-407.1`이라는 새 ID를 발번하여 또 timer start를 호출함. 결과: 대시보드에 task-406.1과 task-407.1 두 개가 동시에 뜸.

## 근본 원인
- dispatch.py가 항상 새 task_id를 자동 생성함
- 아누가 미리 만든 task_id를 dispatch.py에 전달할 방법이 없음
- task-timer.py에 동일 작업 중복 감지가 없음

## 수정 대상
1. `/home/jay/workspace/dispatch.py`
2. `/home/jay/workspace/memory/task-timer.py` (필요 시)

## 요구사항

### dispatch.py 수정
- `--task-id` 옵션 추가 (선택적)
- `--task-id`가 주어지면 자동 발번하지 않고 해당 ID 사용
- `--task-id`가 없으면 기존처럼 자동 발번
- 기존 동작 완전 호환

### task-timer.py 수정 (방어 로직)
- `start_task()` 호출 시, 동일 task_id가 이미 running 상태면 중복 시작 거부
- 경고 로그 출력 + 기존 task 정보 반환 (에러 아님, 멱등성)

## 테스트
- dispatch.py: `--task-id task-999.1` 전달 시 해당 ID 사용 확인
- dispatch.py: `--task-id` 미전달 시 기존 자동 발번 확인
- task-timer.py: 이미 running인 task_id로 start 시 중복 거부 확인
- 기존 테스트 전체 통과
- pyright 에러 0건

## 산출물
- 완료 보고서: `memory/reports/task-408.1.md`

## 작업 레벨: Lv.1