diff options
| -rw-r--r-- | internal/api/server.go | 4 | ||||
| -rw-r--r-- | internal/task/task.go | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/internal/api/server.go b/internal/api/server.go index 18c58e9..5b027e4 100644 --- a/internal/api/server.go +++ b/internal/api/server.go @@ -66,7 +66,9 @@ func (s *Server) routes() { s.mux.HandleFunc("POST /api/tasks/{id}/reject", s.handleRejectTask) s.mux.HandleFunc("GET /api/tasks/{id}/subtasks", s.handleListSubtasks) s.mux.HandleFunc("GET /api/tasks/{id}/executions", s.handleListExecutions) + s.mux.HandleFunc("GET /api/executions", s.handleListRecentExecutions) s.mux.HandleFunc("GET /api/executions/{id}", s.handleGetExecution) + s.mux.HandleFunc("GET /api/executions/{id}/log", s.handleGetExecutionLog) s.mux.HandleFunc("GET /api/executions/{id}/logs/stream", s.handleStreamLogs) s.mux.HandleFunc("GET /api/templates", s.handleListTemplates) s.mux.HandleFunc("POST /api/templates", s.handleCreateTemplate) @@ -166,7 +168,7 @@ func (s *Server) handleAnswerQuestion(w http.ResponseWriter, r *http.Request) { ResumeSessionID: latest.SessionID, ResumeAnswer: input.Answer, } - if err := s.pool.SubmitResume(r.Context(), tk, resumeExec); err != nil { + if err := s.pool.SubmitResume(context.Background(), tk, resumeExec); err != nil { writeJSON(w, http.StatusServiceUnavailable, map[string]string{"error": err.Error()}) return } diff --git a/internal/task/task.go b/internal/task/task.go index 587993f..f6635cc 100644 --- a/internal/task/task.go +++ b/internal/task/task.go @@ -98,6 +98,7 @@ func ValidTransition(from, to State) bool { StateReady: {StateCompleted, StatePending}, StateFailed: {StateQueued}, // retry StateTimedOut: {StateQueued}, // retry + StateCancelled: {StateQueued}, // restart StateBlocked: {StateQueued}, // answer received → re-queue as resume execution } for _, allowed := range transitions[from] { |
