ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: resolver, commit и обновление доски Voice Tasker
This commit is contained in:
@@ -293,7 +293,9 @@ idle - обычная кнопка микрофона
|
||||
recording - идет запись
|
||||
uploading - отправка аудио
|
||||
processing - транскрибация и разбор
|
||||
success - задача создана / обновлена
|
||||
success - draft разобран
|
||||
committing - создание задачи
|
||||
committed - задача создана / обновлена
|
||||
error - ошибка
|
||||
```
|
||||
|
||||
@@ -318,6 +320,8 @@ error - ошибка
|
||||
- `Редактировать`;
|
||||
- `Отмена`.
|
||||
|
||||
После успешного commit frontend обязан выполнить точечный mutation-refresh активного issue-store, если пользователь находится на проектной доске, project view или global view, куда может попасть созданная задача. Это не polling и не reload страницы: обновляется только уже открытый список/доска через существующую Plane store-модель.
|
||||
|
||||
Auto-create допустим только если:
|
||||
|
||||
```txt
|
||||
@@ -485,6 +489,30 @@ Response:
|
||||
},
|
||||
"questions": []
|
||||
},
|
||||
"resolution": {
|
||||
"project": {
|
||||
"id": "project_uuid",
|
||||
"name": "Бухгалтерия",
|
||||
"identifier": "BUH",
|
||||
"confidence": 0.91,
|
||||
"source": "project_hint"
|
||||
},
|
||||
"assignee": {
|
||||
"id": "user_uuid",
|
||||
"name": "Настя",
|
||||
"email": "nastya@example.com",
|
||||
"confidence": 0.84,
|
||||
"source": "assignee_hint"
|
||||
},
|
||||
"labels": [
|
||||
{
|
||||
"id": "label_uuid",
|
||||
"name": "voice"
|
||||
}
|
||||
],
|
||||
"warnings": [],
|
||||
"can_commit": true
|
||||
},
|
||||
"warnings": [],
|
||||
"requires_confirmation": true,
|
||||
"models": {
|
||||
@@ -539,12 +567,38 @@ Response:
|
||||
|
||||
```json
|
||||
{
|
||||
"ok": true,
|
||||
"status": "created",
|
||||
"voice_session_id": "uuid",
|
||||
"task_id": "task_uuid",
|
||||
"task_url": "/nodedc/projects/.../work-items/..."
|
||||
"task_key": "BUH-128",
|
||||
"task_url": "/nodedc/browse/BUH-128/",
|
||||
"project_id": "project_uuid",
|
||||
"sequence_id": 128,
|
||||
"resolution": {
|
||||
"project": {
|
||||
"id": "project_uuid",
|
||||
"name": "Бухгалтерия",
|
||||
"identifier": "BUH",
|
||||
"confidence": 0.91,
|
||||
"source": "project_hint"
|
||||
},
|
||||
"assignee": {
|
||||
"id": "user_uuid",
|
||||
"name": "Настя",
|
||||
"email": "nastya@example.com",
|
||||
"confidence": 0.84,
|
||||
"source": "assignee_hint"
|
||||
},
|
||||
"labels": [{ "id": "label_uuid", "name": "voice" }],
|
||||
"warnings": [],
|
||||
"can_commit": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
На Stage 4 commit поддерживает только `create_task`. `update_task` и `delete_task` остаются в следующих этапах, потому что требуют voice memory и отдельного confirmation policy.
|
||||
|
||||
---
|
||||
|
||||
## 8. Database
|
||||
@@ -943,6 +997,7 @@ voice_task.error
|
||||
- commit endpoint;
|
||||
- создание `Issue` через внутренний Plane layer;
|
||||
- activity log/model activity как у обычного work item;
|
||||
- точечное обновление активного issue-store после commit без reload/polling;
|
||||
- `voice_task_memory` для created action.
|
||||
|
||||
### Stage 5 - Memory commands
|
||||
@@ -967,6 +1022,7 @@ voice_task.error
|
||||
- monthly budget/soft cap;
|
||||
- multi-provider AI;
|
||||
- streaming/realtime voice;
|
||||
- realtime task event stream для ситуационных панелей без reload/polling;
|
||||
- audio debug retention для dev/staging;
|
||||
- автоматическое создание label `voice` / `needs-assignee-review` по настройке.
|
||||
|
||||
@@ -986,8 +1042,9 @@ voice_task.error
|
||||
10. Assignee resolver назначает только уверенно найденного project member.
|
||||
11. Если assignee не найден - задача может быть создана без assignee.
|
||||
12. Commit создает обычную `Issue` через внутренний Plane backend layer.
|
||||
13. `due_date` маппится в `target_date`.
|
||||
14. `due_time` сохраняется как note в description и parsed JSON, без новой колонки в MVP.
|
||||
13. После commit активная доска/список обновляется без reload страницы.
|
||||
14. `due_date` маппится в `target_date`.
|
||||
15. `due_time` сохраняется как note в description и parsed JSON, без новой колонки в MVP.
|
||||
15. Voice session сохраняется.
|
||||
16. Последняя voice-задача сохраняется в memory.
|
||||
17. Update last task работает минимум для `target_date` и description.
|
||||
|
||||
Reference in New Issue
Block a user