feat: воркер берёт задачи только после одобрения (approved)
Some checks failed
CI / test (push) Failing after 49s
CI / build-and-package (amd64, linux) (push) Successful in 42s
CI / build-and-package (amd64, windows) (push) Successful in 45s

Исправляет баг: воркер захватывал задачу на выполнение по статусу ready
ещё до «создавай» (consent был заглушкой). Теперь:

- новый статус approved: «создавай» → ready→approved;
- воркер (pollAndDispatch + runTask) берёт ТОЛЬКО approved,
  ready = черновик готов, ждёт одобрения;
- правка/текст в approved запрещены (финальное одобрение);
- e2e-тест TestE2EWorkerDoesNotTakeUnconfirmed: в ready воркер задачу
  не трогает, запускает только после «создавай» → success;
- обновлены все затронутые тесты (models/core/worker) и retry-фикстуры.
This commit is contained in:
Hermes
2026-08-17 19:03:42 +05:00
parent f12ff04966
commit 43266ea04f
7 changed files with 152 additions and 31 deletions

View File

@@ -25,6 +25,12 @@ func TestIsValidTransition(t *testing.T) {
{StatusTimeout, StatusReady, true}, // retry
{StatusTimeout, StatusCollecting, true}, // retry: перезапуск сбора
{StatusTimeout, StatusRunning, false},
{StatusReady, StatusApproved, true}, // «создавай» → одобрено
{StatusReady, StatusRunning, false}, // без одобрения воркер не запускает
{StatusApproved, StatusRunning, true}, // воркер берёт approved
{StatusApproved, StatusCancelled, true}, // отмена до запуска
{StatusApproved, StatusReady, false}, // финал: назад нельзя
{StatusApproved, StatusCollecting, false},
{StatusClosed, StatusDraft, false},
{StatusClosed, StatusRunning, false},
}