**task-1080.1 완료 보고** (dev2-team) **완료 보고서: 대시보드 신호등 — 논리적 팀 상태 표시 수정** (5분 55초) **핵심 결과** `_enrich_bot_activity()`에 `bot` 필드 기반 역매핑(bot-b→dev1 등)을 추가하고, `LogicalTeamCard`의 멤버 상태 결정 로직에 `runningCount > 0` 분기를 추가하여 해결. pytest 70건 중 69건 통과 (1건 기존 실패, 범위 외), pyright 에러 0건. ## 수정 내용 ### 1. server.py — `_enrich_bot_activity()` (522-591줄) 기존 `team_to_bot` 매핑 이후, task-timers.json의 running task 중 `bot` 필드가 있는 것을 추가 처리하는 블록 삽입: - `bot_to_dev_id` 매핑: `{"bot-b": "dev1", ..., "bot-i": "dev8"}` - running + non-stale + bot 필드 있는 task → 해당 dev_id의 `has_running_tasks = True` - stale 판단은 `STALE_TASK_RUNNING_SECONDS` 기준 동일 적용 ### 2. utils.js — `LogicalTeamCard` (265-413줄) **리드 상태 (294-299줄)**: break 상태 명시적 분기 추가 → break가 running task 여부와 무관하게 최우선 반영 **멤버 상태 (372-382줄)**: 비-composite 논리적 팀의 상태 결정에 `runningCount > 0` 고려: - break → break (최우선) - working → working (member-status.json 기반) - run 테스트: pytest 69건 통과, pyright 0 errors **발견/해결 이슈 4건** 1. **리드 break 상태 미분리** — `LogicalTeamCard`에서 비-composite 리드 상태가 `leadMsEntry?.status`를 OR로 처리하여 break가 running 상태에 덮일 수 있었음. 명시적 break 분기 추가로 해결. 2. **멤버 상태 runningCount 미참조** — 비-composite 멤버가 `msEntry?.status || m.status || 'available'`로만 결정되어 running task가 있어도 available로 표시됨. `runningCount > 0` 시 standby 분기 추가. 3. **bot_to_dev_id 매핑에서 bots 딕셔너리 미존재 케이스** — bot이 bots에 없을 때 새 항목 생성 로직 포함. 4. **`TestMemberStatusTimezone::test_timezone_aware_since_not_stuck_working` 기존 실패** — 미해결: timezone Z suffix 처리 관련 기존 버그. 본 작업 범위 외.