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.6 KiB
1.6 KiB
Implementation: Fix Verdict Parsing and State Machine Alignment
Summary
- Added
parse_verdict_status()function totask.pythat uses structured status-line parsing (## Status:,- **Status**:) before falling back to substring search - Fixed
determine_task_state()to use structured verdict parsing, eliminating false-BLOCKED classification when PASS verdicts discuss failures - Aligned state machine with orchestrator spec: IMPLEMENTATION.md alone → BUG_FIND (not IMPLEMENT), ADVERSARIAL_BUG_REPORT alone → BUG_FIND (not ADV_BUG_FIND)
- Added filesystem-sourced task name validation in
discover_tasks()andparse_sub_tasks()— directories with characters outside[A-Za-z0-9_-]are skipped - Added comprehensive test classes:
TestVerdictParsing,TestStateMachineAlignment,TestTaskNameValidation - Updated existing
test_implementation_stateto reflect new state machine behavior
Changes
automaton/dashboard/core/task.py: Addedparse_verdict_status(),_VALID_TASK_NAME_CHARS, rewrotedetermine_task_state(), added name validation todiscover_tasks()andparse_sub_tasks()tests/test_task.py: Added 16 new tests, updated 1 existing test
Test Results
90 passed in 0.06s (full suite)
Decisions
- Kept substring fallback for unstructured verdicts for backward compatibility
- ADVERSARIAL_BUG_REPORT alone now maps to BUG_FIND (not ADV_BUG_FIND) per orchestrator spec clarification
- State machine checks are: DOC_REVIEW → both bug reports → BUG_REPORT alone → ADV alone → IMPLEMENTATION alone → TEST_PLAN → DESIGN → DECOMPOSITION → SPEC → BACKLOG
Blockers
None