ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: resolver, commit и обновление доски Voice Tasker

This commit is contained in:
DCCONSTRUCTIONS
2026-04-24 18:50:07 +03:00
parent 1a20e19a93
commit d3b47326da
7 changed files with 685 additions and 17 deletions
+61 -4
View File
@@ -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.