docs: add workspace capability documentation
This commit is contained in:
parent
5c9ae7f93b
commit
5fa2c0ddf9
|
|
@ -382,3 +382,74 @@ Vault plugin state хранится **внутри vault** в `.verstak/plugins.
|
|||
- `./scripts/check.sh` — ✅
|
||||
- `./scripts/smoke-platform.sh` — ✅ (enable/disable/plugins.json)
|
||||
- `./scripts/build.sh` — ✅
|
||||
|
||||
## Workspace / Cases Core Capability
|
||||
|
||||
Workspace — центральная модель Верстака вокруг "дел". Это НЕ notes/files — это фундамент.
|
||||
|
||||
### Ноды
|
||||
|
||||
| Поле | Тип | Описание |
|
||||
|------|-----|----------|
|
||||
| `id` | UUID | Стабильный идентификатор |
|
||||
| `parentId` | string | ID родителя (пусто для root) |
|
||||
| `type` | space/case/folder | Тип ноды |
|
||||
| `title` | string | Название |
|
||||
| `status` | active/sleeping/archived | Жизненный цикл |
|
||||
| `tags` | string[] | Теги |
|
||||
| `order` | int | Порядок среди siblings |
|
||||
| `createdAt` | RFC3339Nano | Создан |
|
||||
| `updatedAt` | RFC3339Nano | Обновлён |
|
||||
|
||||
### Хранение
|
||||
|
||||
`<vault>/.verstak/workspace.json` — атомарная запись (temp + rename).
|
||||
|
||||
### API
|
||||
|
||||
- `GetWorkspaceTree()` — полное дерево
|
||||
- `CreateWorkspaceNode(parentID, type, title)` — создать
|
||||
- `RenameWorkspaceNode(id, title)` — переименовать
|
||||
- `MoveWorkspaceNode(id, newParentID)` — переместить
|
||||
- `ArchiveWorkspaceNode(id)` — архивировать
|
||||
- `SetCurrentWorkspaceNode(id)` — выбрать текущую
|
||||
- `GetCurrentWorkspaceNode()` — получить текущую
|
||||
|
||||
### Capability
|
||||
|
||||
`verstak/core/workspace/v1` — регистрируется только когда vault открыт и workspace инициализирован.
|
||||
|
||||
### Правила
|
||||
|
||||
- Root node создаётся при создании vault
|
||||
- Порядок children стабилен (sort by order)
|
||||
- Нельзя переместить ноду в себя или в своего потомка
|
||||
- Архивирование — soft delete (status = archived)
|
||||
- Corrupt JSON → backup + defaults
|
||||
|
||||
### Типы нод
|
||||
|
||||
| Тип | Назначение |
|
||||
|-----|-----------|
|
||||
| `space` | Рабочее пространство (root) |
|
||||
| `case` | Дело |
|
||||
| `folder` | Папка |
|
||||
|
||||
НЕ добавляются: note, file, action, secret, worklog, link — это плагины.
|
||||
|
||||
### Lifecycle Events
|
||||
|
||||
- `workspace.node.created`
|
||||
- `workspace.node.renamed`
|
||||
- `workspace.node.moved`
|
||||
- `workspace.node.archived`
|
||||
- `workspace.node.selected`
|
||||
- `workspace.error`
|
||||
|
||||
### UI
|
||||
|
||||
WorkspaceTree в sidebar:
|
||||
- Дерево с expand/collapse
|
||||
- Создание case/folder
|
||||
- Выбор текущей ноды
|
||||
- Индикатор статуса (active/archived/sleeping)
|
||||
|
|
|
|||
Loading…
Reference in New Issue