Add server-side workflows with YAML files, task freeze and lead tools

This commit is contained in:
Ian Gulliver
2026-10-15 21:17:58 -07:00
parent 2f02f5ac3c
commit 2ce10a6c65
19 changed files with 1293 additions and 199 deletions
+10 -4
View File
@@ -20,6 +20,7 @@ import (
"g.fc.run/misc/byre/internal/git"
"g.fc.run/misc/byre/internal/store"
"g.fc.run/misc/byre/internal/todo"
"g.fc.run/misc/byre/internal/workflow"
)
type Server struct {
@@ -275,9 +276,14 @@ func (s *Server) CreateTask(w http.ResponseWriter, r *http.Request, projectID st
return
}
t, err := s.agents.CreateTask(r.Context(), p, req.Title, actor(r), p.DefaultBranch, actor(r))
workflowName := ""
if req.Workflow != nil {
workflowName = *req.Workflow
}
t, err := s.agents.CreateTask(r.Context(), p, req.Title, actor(r), p.DefaultBranch, actor(r), workflowName)
if err != nil {
writeError(w, http.StatusInternalServerError, err)
writeAgentError(w, err)
return
}
writeJSON(w, http.StatusCreated, t)
@@ -326,7 +332,7 @@ func (s *Server) StartTodoItem(w http.ResponseWriter, r *http.Request, projectID
model = *req.Model
}
t, err := s.agents.StartTodo(r.Context(), p, u, req.Title, model, u.Login)
t, err := s.agents.StartTodo(r.Context(), p, u, req.Title, model, u.Login, "")
if err != nil {
writeAgentError(w, err)
return
@@ -694,7 +700,7 @@ func writeAgentError(w http.ResponseWriter, err error) {
writeError(w, http.StatusNotFound, err)
case errors.Is(err, agents.ErrConflict):
writeError(w, http.StatusConflict, err)
case errors.Is(err, agents.ErrInvalid), errors.Is(err, agents.ErrNoGitIdentity):
case errors.Is(err, agents.ErrInvalid), errors.Is(err, agents.ErrNoGitIdentity), errors.Is(err, workflow.ErrInvalid):
writeError(w, http.StatusBadRequest, err)
default:
writeError(w, http.StatusInternalServerError, err)