|
Пачка 2 ревью: общий путь закрытия — MCP-награды и анти-дюп спавна
- Новый services/closing.py: handle_task_closed — спавн регулярной + XP + монеты + бонус уровня; используют и HTTP-API, и MCP-инструменты. Закрытие агентом теперь даёт те же награды, что и UI (ТЗ 3.5, 3.13, 3.10). - Задача.spawned_at (+миграция): спавн — один раз на цепочку; раньше MCP спавнил следующий экземпляр при каждом обновлении закрытой задачи. - Выход из done сбрасывает done_at (HTTP и MCP): повторное закрытие снова проходит через ветку закрытия без дублей наград (открытый вопрос ТЗ 7). - MCP create_task: микронаграда за создание, как в HTTP-API; broadcast xp.changed (celebrate:true при закрытии, false при создании). - Тесты: MCP-награды при закрытии и создании, спавн ровно один раз, un-done/повторное закрытие без дублей (HTTP и MCP). 109 passed. ТЗ 0.28. Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| backend/alembic/versions/d5e6a7b8c9d0_task_spawned_at.py 0 → 100644 |
|---|
| backend/app/api/tasks.py |
|---|
| backend/app/mcp_server.py |
|---|
| backend/app/models.py |
|---|
| backend/app/services/closing.py 0 → 100644 |
|---|
| backend/tests/test_mcp.py |
|---|
| backend/tests/test_recurrence.py |
|---|
| docs/TZ.md |
|---|