feat: воркер берёт задачи только после одобрения (approved)
Исправляет баг: воркер захватывал задачу на выполнение по статусу ready ещё до «создавай» (consent был заглушкой). Теперь: - новый статус approved: «создавай» → ready→approved; - воркер (pollAndDispatch + runTask) берёт ТОЛЬКО approved, ready = черновик готов, ждёт одобрения; - правка/текст в approved запрещены (финальное одобрение); - e2e-тест TestE2EWorkerDoesNotTakeUnconfirmed: в ready воркер задачу не трогает, запускает только после «создавай» → success; - обновлены все затронутые тесты (models/core/worker) и retry-фикстуры.
This commit is contained in:
@@ -113,7 +113,7 @@ func (w *Worker) pollAndDispatch(ctx context.Context) error {
|
||||
}
|
||||
|
||||
tasks, err := w.Store.ListTasks(ctx, storage.TaskFilter{
|
||||
Status: storage.StatusReady,
|
||||
Status: storage.StatusApproved,
|
||||
Limit: slots,
|
||||
})
|
||||
if err != nil {
|
||||
@@ -142,7 +142,7 @@ func (w *Worker) pollAndDispatch(ctx context.Context) error {
|
||||
// dev дорабатывает по комментариям; прошло → push ветки + success.
|
||||
func (w *Worker) runTask(ctx context.Context, task *storage.Task) (err error) {
|
||||
// 1. проверяем статус
|
||||
if task.Status != storage.StatusReady {
|
||||
if task.Status != storage.StatusApproved {
|
||||
return fmt.Errorf("%w: task %d status=%q", ErrLaunch, task.ID, task.Status)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user