- **Restore 82 completed tasks** from tasks/complete/ back to tasks/ top level (all <7 days old per the cleanup policy; premature bulk archive was fixed). - **Dashboard: fix scroll-reset on auto-refresh** — renderBoard rebuilds the board via innerHTML every 2s, destroying each column-body's scrollTop. Now snapshots column-body scrollTop + board.scrollLeft + view.scrollTop before rebuild and restores after (matched by PHASE_GROUPS index). - **Dashboard UI additions** (pre-existing unstaged work): approval section cards, transition buttons, inline artifact editor (textarea for writing missing SPEC/VERDICT/etc from the detail modal). - **Bind ornith as Implement model** — config.md: Model explicit to omlx/Ornith-1.0-35B-4bit-mlx, context window 32768. Interactive autopilot already used ornith via opencode default; now explicit. - **Fix cleanup stub** — automaton-cleanup.sh had a stale --project arg pointing at a pytest temp dir (test isolation leak). Rewired to point at ~/.automaton. - **Fix plist-isolation test** — test asserted host plist doesn't exist, but a real install creates it. Now snapshots mtime before run, asserts unchanged after (only a write during the test counts as bleed). - **New Playwright smoke test** (tests/test_dashboard_ui.py) — 2 tests: board renders tasks, column scroll survives auto-refresh tick. Verified the test fails without the scroll fix (scrollTop resets to 0). Skipped via importorskip when playwright is absent (main CI stays green). - **Clarify SI loop scope in README** — new-project onboarding section documents the framework-scoped self-improvement loop and options (leave/pause/create project loop). - **CHANGELOG** documents all changes including the known model-divergence gap (mde tasks marked complete but per-role model binding was never implemented).
62 lines
3.0 KiB
Markdown
62 lines
3.0 KiB
Markdown
# Contract: Dashboard Phase Grouping
|
|
|
|
## Goal
|
|
Group the 12 Kanban columns into 5 logical phase groups, with individual task states shown as sub-labels on cards. Also fix the header to show the project name instead of a scope indicator.
|
|
|
|
## Header Fix
|
|
The scope badge currently shows "🏗 Framework" or "📁 Project" — this should be replaced with the actual project name.
|
|
- Show the project name (from `README.md` first heading, or `.automaton/project-name.md` if it exists)
|
|
- If no project name is found, show the project directory name
|
|
- No need for scope indicators (Framework/Project mode is internal)
|
|
|
|
## Column Grouping
|
|
|
|
| Group | Columns | Rationale |
|
|
|-------|---------|----------|
|
|
| **Planning** | Backlog, Research, Decomposition | Early stage — defining the problem and scope |
|
|
| **Design** | Design, Test Design | Designing the solution |
|
|
| **Implementation** | Implement | Building the solution |
|
|
| **Verification** | Bug Find, Adversarial Bug Find, Doc Review, Referee | Quality assurance and validation |
|
|
| **Resolution** | Done, Blocked | Final states |
|
|
|
|
## Card Display
|
|
Each card shows its specific state as a small sub-label beneath the task name:
|
|
```
|
|
┌──────────────────────┐
|
|
│ Implement Task │
|
|
│ 🔄 implement │
|
|
└──────────────────────┘
|
|
|
|
┌──────────────────────┐
|
|
│ Bad Impl │
|
|
│ ❌ blocked │
|
|
└──────────────────────┘
|
|
|
|
┌──────────────────────┐
|
|
│ Research Task │
|
|
│ 🔄 research │
|
|
└──────────────────────┘
|
|
```
|
|
|
|
## Acceptance Criteria
|
|
- [ ] Board renders 5 grouped columns instead of 12 individual columns
|
|
- [ ] Cards in a column display a sub-label with their specific state (e.g., "research", "implement", "bug_find", "blocked")
|
|
- [ ] Empty columns are hidden (no empty groups shown)
|
|
- [ ] Column headers show the group name and total count
|
|
- [ ] Column headers show a colored indicator bar for each group:
|
|
- Planning: blue (#42a5f5)
|
|
- Design: cyan (#26c6da)
|
|
- Implementation: green (#66bb6a)
|
|
- Verification: amber (#ffa726)
|
|
- Resolution: green/red (#66bb6a / #ef5350)
|
|
- [ ] Grouped columns are sortable by total count (same as current board behavior)
|
|
- [ ] Clicking a card still opens the detail panel with the same information
|
|
- [ ] Filter bar still works with the grouped view (filter by specific state)
|
|
- [ ] Statistics view shows group-level breakdowns in addition to individual states
|
|
- [ ] Timeline view shows grouped phases (Planning, Design, Implementation, Verification, Resolution) instead of 12 individual states
|
|
- [ ] Header shows the project name (from README.md or directory name) instead of scope indicator
|
|
- [ ] Scope label no longer shows "🏗 Framework" or "📁 Project"
|
|
|
|
## Stop Condition
|
|
CONTRACT_MET
|