CI / build (push) Has been cancelled
- Archive 79 completed framework-dev tasks from tasks/ -> tasks/complete/ - status.py: add --cleanup-done and --install-cleanup-schedule commands - Add scripts/automaton-cleanup.sh for periodic task archiving - Dashboard: rename 'Background' tab -> 'Agent', 'Cleanup' agent -> 'Completed Task Archiver', remove redundant group headers and pill badges, dim inactive agent placeholders - .rules.md: add Self-Documenting UI Names rule - New tests: test_cleanup_done.py, expanded test_app.py and test_task.py
1.1 KiB
1.1 KiB
Implementation: fix-dashboard-read-state
Bug
Dashboard's determine_task_state() in task.py inferred task phase from artifact filenames only, ignoring the .state file. This caused the dashboard to show incorrect states when the .state file (source of truth) disagreed with the artifact heuristic.
Fix
- Added
_state_string_to_task_state()helper function that maps state machine phase strings (e.g."implement","code_review:awaiting_approval") toTaskStateenum values. Handles sub-states by splitting on":"and using the base phase. - Modified
determine_task_state()to read the.statefile first. If.stateexists and maps to a validTaskState, that takes precedence. The artifact heuristic is now a fallback for tasks without.statefiles.
Files Changed
automaton/dashboard/core/task.py: Added_state_string_to_task_state()function, modifieddetermine_task_state()to read.statebefore falling back to artifact heuristic
Tests
- Existing tests in
test_task.pycontinue to pass (they test the artifact fallback path since test tasks don't have.statefiles by default) - All 249 tests pass