# Implementation: Add Status Reason to Task Display ## Summary Added `status_reason` property to `Task` model providing human-readable explanations for each task state, exposed it in API responses, displayed it prominently in the detail panel and on task cards. Fixed the pending review count to exclude terminal-state tasks. Replaced approve/request-changes buttons with revoke buttons when a review is already submitted. ## Changes - `automaton/dashboard/core/task.py`: Added `status_reason` property on `Task` with explanations for all 10+ task states - `automaton/dashboard/ui/app.py`: Added `status_reason` to `_serve_tasks()` and `_serve_task()` JSON responses; accepted `"pending"` as valid review status - `automaton/dashboard/html/dashboard.js`: Displayed `status_reason` in detail panel and on task cards; fixed pending count to exclude done/blocked; added conditional button rendering for approved/changes_requested reviews - `automaton/dashboard/html/styles.css`: Added `.detail-status-reason` and `.task-card-reason` styles - `tests/test_task.py`: Added `TestStatusReason` class with 5 tests covering done, blocked, and in-progress states ## Test Results 156 passed ## Blockers None