feat: add dashboard and commands
This commit is contained in:
+23
-1
@@ -55,8 +55,9 @@ src/
|
||||
│ ├── openTask.ts
|
||||
│ ├── deleteTask.ts
|
||||
│ └── changeStatus.ts
|
||||
├── dashboard/ # filter/group/view + inbound message parse
|
||||
├── views/
|
||||
│ └── taskTreeProvider.ts # (+ dashboard later)
|
||||
│ └── taskTreeProvider.ts # TreeView; WebView host — отдельно
|
||||
└── utils/
|
||||
├── uuid.ts
|
||||
└── markdown.ts # parse/serialize frontmatter
|
||||
@@ -89,6 +90,27 @@ use-cases + `ITaskRepository`. Ошибки — `AppError` из `error.ts`.
|
||||
| `changeStatus` | folder + id + status → update; not found |
|
||||
| `openTask` | folder + id → path + task для editor; not found |
|
||||
|
||||
### Фаза 5 — Task Dashboard
|
||||
|
||||
Split layout: список (filter/group) + detail (editable markdown body).
|
||||
|
||||
| Модуль | Поведение |
|
||||
| ------------------------------ | -------------------------------------------------------------------------------- |
|
||||
| `filterTasks` | statuses / priorities / query (title+body) / tags (AND); пустой = all |
|
||||
| `groupTasks` | `none` \| `status` \| `priority`; пустые группы не отдаём; фиксированный порядок |
|
||||
| `buildDashboardView` | filter → group; `selected` по id из полного списка (даже если отфильтрован) |
|
||||
| `parseDashboardInboundMessage` | ready / selectTask / setFilter / setGroupBy / saveDescription / refresh |
|
||||
| `loadDashboard` | folder → `{ tasks }`; `AppError.NO_FOLDER` |
|
||||
| `saveTaskDescription` | folder + id + description → update body; `NOT_FOUND` / validation |
|
||||
|
||||
**Unit-тестами не покрываем** (нужен Extension Host / DOM WebView):
|
||||
|
||||
- `WebviewPanel` create/dispose, HTML/CSS split layout, CSP / local resources
|
||||
- `postMessage` wiring host ↔ webview (кроме parse inbound payload)
|
||||
- регистрация `projectTasks.openDashboard`, status bar → open panel
|
||||
- live refresh watcher → push в webview
|
||||
- визуальный рендер списка/редактора в editor area
|
||||
|
||||
## Зависимости
|
||||
|
||||
- `front-matter` — разбор YAML frontmatter (body + attributes)
|
||||
|
||||
Reference in New Issue
Block a user