Files
automaton/tasks/complete/add-decomposition-content/IMPLEMENTATION.md
T

24 lines
1.4 KiB
Markdown
Raw Normal View History

# Implementation: Add Decomposition Content to Dashboard Data Model
## Summary
- Added `decomposition_content`, `parent_spec_content`, `vram_config_content` fields to `Task` dataclass
- Added `waves: list[WaveGroup]` field to `Task` dataclass
- Added `WaveGroup` dataclass with `wave_number`, `label`, `sub_task_names`
- Added `parse_waves()` function to extract wave structure from DECOMPOSITION.md content
- Added `parse_vram_config()` function to read VRAM_CONFIG.md
- `discover_tasks()` now loads all three new content fields and populates `waves` from decomposition
- `/api/tasks` and `/api/task/{name}` responses include `decomposition_content`, `parent_spec_content`, `vram_config_content`, and `waves`
- Dashboard JS uses parsed wave data for Wave 1/Wave 2 statistics (falls back to 50/50 heuristic when no wave data)
- Detail panel shows Decomposition, Parent Context, and VRAM Configuration sections when available
## Changes
- `automaton/dashboard/core/task.py`: Added `WaveGroup` dataclass, `parse_waves()`, `parse_vram_config()`, new fields on `Task`, population in `discover_tasks()`
- `automaton/dashboard/ui/app.py`: Added new fields to API responses
- `automaton/dashboard/html/dashboard.js`: Wave stats use parsed wave data, detail panel shows new content sections
- `tests/test_task.py`: Added `TestParseWaves` (4 tests), `TestDecompositionContent` (1 test), `TestParentSpecAndVramConfig` (3 tests)
## Test Results
134 passed in 0.10s
## Blockers
None