kin: KIN-045 добавить в GUI третью кнопку Revise (🔄) рядом с Approve/Reject. Revise = вернуть задачу агенту с комментарием человека. Модалка с textarea 'что доисследовать/доработать'. Задача возвращается в in_progress, агент получает свой предыдущий output + комментарий директора и дорабатывает

This commit is contained in:
Gros Frumos 2026-03-16 07:21:36 +02:00
parent 4fd825dc58
commit 01c39cc45c
3 changed files with 147 additions and 0 deletions

View file

@ -1412,6 +1412,36 @@ class TestCompletionMode:
"KIN-063: project-level 'review' должен применяться когда задача не имеет override"
)
@patch("core.followup.generate_followups")
@patch("agents.runner.run_hooks")
@patch("agents.runner.subprocess.run")
def test_auto_complete_not_broken_by_revise_comment(self, mock_run, mock_hooks, mock_followup, conn):
"""Регрессия KIN-045: revise_comment в задаче не ломает auto_complete flow.
Задача прошла ревизию (revise_comment != None, status=in_progress),
затем повторно запускается пайплайн в auto_complete режиме.
Последний шаг tester задача должна получить status='done'.
"""
mock_run.return_value = _mock_claude_success({"result": "all tests pass"})
mock_hooks.return_value = []
mock_followup.return_value = {"created": [], "pending_actions": []}
models.update_project(conn, "vdol", execution_mode="auto_complete")
models.update_task(
conn, "VDOL-001",
status="in_progress",
revise_comment="Добавь тест для пустого массива",
)
steps = [{"role": "developer", "brief": "fix"}, {"role": "tester", "brief": "test"}]
result = run_pipeline(conn, "VDOL-001", steps)
assert result["success"] is True
task = models.get_task(conn, "VDOL-001")
assert task["status"] == "done", (
"KIN-045: revise_comment не должен мешать auto_complete авто-завершению"
)
# ---------------------------------------------------------------------------
# KIN-048: _run_autocommit — флаг, git path, env=