Simplify code found by simplicity audit of fa73b74

This commit is contained in:
Ian Gulliver
2026-10-23 13:50:09 -07:00
parent fa73b748c0
commit 8b8551a358
40 changed files with 222 additions and 561 deletions
+2 -2
View File
@@ -17,7 +17,7 @@ func (s *Server) GetTaskChanges(w http.ResponseWriter, r *http.Request, taskID s
return
}
step := deref(params.Step)
step := api.Deref(params.Step)
if params.Snapshot != nil {
if params.Since != nil {
writeError(w, http.StatusBadRequest, errors.New("since and snapshot can't be used together"))
@@ -93,7 +93,7 @@ func (s *Server) GetTaskDiff(w http.ResponseWriter, r *http.Request, taskID stri
return
}
patch, err := git.FileDiff(r.Context(), t.WorktreePath, params.Base, params.Tree, params.Path, deref(params.OldPath))
patch, err := git.FileDiff(r.Context(), t.WorktreePath, params.Base, params.Tree, params.Path, api.Deref(params.OldPath))
if err != nil {
writeError(w, http.StatusInternalServerError, err)
return
+1 -4
View File
@@ -79,10 +79,7 @@ func (s *Server) ExecClient(w http.ResponseWriter, r *http.Request) {
return
}
name := ""
if req.Client != nil {
name = *req.Client
}
name := api.Deref(req.Client)
if name == "" {
recent := s.clients.RecentMacs()
if len(recent) == 0 {
+1 -1
View File
@@ -42,7 +42,7 @@ func (s *Server) GetProjectDir(w http.ResponseWriter, r *http.Request, projectID
}
func serveDir(w http.ResponseWriter, r *http.Request, root string, p *string) {
rel := deref(p)
rel := api.Deref(p)
name, full := taskPath(root, rel)
f, err := os.Open(full)
+1 -1
View File
@@ -8,7 +8,7 @@ import (
)
func (s *Server) ListInbox(w http.ResponseWriter, r *http.Request, params api.ListInboxParams) {
f := store.InboxFilter{State: api.Open, ProjectID: deref(params.ProjectId), TaskID: deref(params.TaskId)}
f := store.InboxFilter{State: api.Open, ProjectID: api.Deref(params.ProjectId), TaskID: api.Deref(params.TaskId)}
if params.State != nil {
f.State = *params.State
}
+2 -14
View File
@@ -4,9 +4,7 @@ import (
"errors"
"math"
"net/http"
"strings"
"g.fc.run/ai/byre/internal/agents"
"g.fc.run/ai/byre/internal/api"
)
@@ -38,27 +36,17 @@ func (s *Server) ListLeadEvents(w http.ResponseWriter, r *http.Request, params a
}
func (s *Server) MessageLead(w http.ResponseWriter, r *http.Request) {
req := api.MessageCreate{}
if !readJSON(w, r, &req) {
return
}
images, ok := s.images(w, r, req.Images)
prompt, ok := s.readMessage(w, r)
if !ok {
return
}
if strings.TrimSpace(req.Text) == "" && len(images) == 0 {
writeError(w, http.StatusBadRequest, errors.New("text or images are required"))
return
}
u, ok := s.actingUser(w, r)
if !ok {
return
}
sess, err := s.agents.MessageLead(r.Context(), u, agents.Prompt{Text: req.Text, Model: deref(req.Model), Effort: deref(req.Effort), SendID: deref(req.SendId), Client: r.Header.Get("Byre-Client"), Images: images})
sess, err := s.agents.MessageLead(r.Context(), u, prompt)
if err != nil {
writeAgentError(w, err)
return
+22 -32
View File
@@ -273,14 +273,6 @@ func (s *Server) actingUser(w http.ResponseWriter, r *http.Request) (api.User, b
return u, true
}
func deref[T any](p *T) T {
var zero T
if p == nil {
return zero
}
return *p
}
func (s *Server) GetMe(w http.ResponseWriter, r *http.Request) {
u, ok := s.actingUser(w, r)
if !ok {
@@ -393,7 +385,7 @@ func (s *Server) CreateTask(w http.ResponseWriter, r *http.Request, projectID st
return
}
title := strings.TrimSpace(deref(req.Title))
title := strings.TrimSpace(api.Deref(req.Title))
p, err := s.store.GetProject(r.Context(), projectID)
if err != nil {
@@ -441,7 +433,7 @@ func (s *Server) CreateTask(w http.ResponseWriter, r *http.Request, projectID st
return
}
prompt := deref(req.Prompt)
prompt := api.Deref(req.Prompt)
if strings.TrimSpace(prompt) == "" && len(images) == 0 {
writeError(w, http.StatusBadRequest, errors.New("prompt is empty"))
return
@@ -450,7 +442,7 @@ func (s *Server) CreateTask(w http.ResponseWriter, r *http.Request, projectID st
if !ok {
return
}
t, err := s.agents.StartTask(r.Context(), p, u, title, agents.Prompt{Text: prompt, Model: deref(req.Model), Effort: deref(req.Effort), Client: r.Header.Get("Byre-Client"), Images: images})
t, err := s.agents.StartTask(r.Context(), p, u, title, agents.Prompt{Text: prompt, Model: api.Deref(req.Model), Effort: api.Deref(req.Effort), Client: r.Header.Get("Byre-Client"), Images: images})
if err != nil {
writeAgentError(w, err)
return
@@ -495,7 +487,7 @@ func (s *Server) StartTodoItem(w http.ResponseWriter, r *http.Request, projectID
return
}
tasks, err := s.agents.StartTodo(r.Context(), p, u, req.Title, deref(req.Model), deref(req.Effort), u.Login, "", deref(req.Discuss))
tasks, err := s.agents.StartTodo(r.Context(), p, u, req.Title, api.Deref(req.Model), api.Deref(req.Effort), u.Login, "", api.Deref(req.Discuss))
if err != nil {
writeAgentError(w, err)
return
@@ -536,8 +528,8 @@ func (s *Server) MergeTask(w http.ResponseWriter, r *http.Request, taskID string
}
target = *req.Target
}
afterReview := deref(req.AfterReview)
keepOpen := deref(req.KeepOpen)
afterReview := api.Deref(req.AfterReview)
keepOpen := api.Deref(req.KeepOpen)
if keepOpen && (target != api.MergeTargetMain || afterReview) {
writeError(w, http.StatusBadRequest, errors.New("keep_open is only for target main, without after_review"))
return
@@ -830,19 +822,27 @@ func (s *Server) ForkSnapshot(w http.ResponseWriter, r *http.Request, taskID str
writeJSON(w, http.StatusCreated, fork)
}
func (s *Server) ContinueSession(w http.ResponseWriter, r *http.Request, sessionID string) {
func (s *Server) readMessage(w http.ResponseWriter, r *http.Request) (agents.Prompt, bool) {
req := api.MessageCreate{}
if !readJSON(w, r, &req) {
return
return agents.Prompt{}, false
}
images, ok := s.images(w, r, req.Images)
if !ok {
return
return agents.Prompt{}, false
}
if strings.TrimSpace(req.Text) == "" && len(images) == 0 {
writeError(w, http.StatusBadRequest, errors.New("text or images are required"))
return agents.Prompt{}, false
}
return agents.Prompt{Text: req.Text, Model: api.Deref(req.Model), Effort: api.Deref(req.Effort), SendID: api.Deref(req.SendId), Client: r.Header.Get("Byre-Client"), Images: images}, true
}
func (s *Server) ContinueSession(w http.ResponseWriter, r *http.Request, sessionID string) {
prompt, ok := s.readMessage(w, r)
if !ok {
return
}
@@ -866,7 +866,7 @@ func (s *Server) ContinueSession(w http.ResponseWriter, r *http.Request, session
return
}
task, err := s.agents.Continue(r.Context(), src, t, p, u, agents.Prompt{Text: req.Text, Model: deref(req.Model), Effort: deref(req.Effort), SendID: deref(req.SendId), Client: r.Header.Get("Byre-Client"), Images: images})
task, err := s.agents.Continue(r.Context(), src, t, p, u, prompt)
if err != nil {
writeAgentError(w, err)
return
@@ -914,7 +914,7 @@ func (s *Server) CreateSession(w http.ResponseWriter, r *http.Request, taskID st
return
}
sess, err := s.agents.Create(r.Context(), t, u, agents.Prompt{Text: req.Prompt, Model: deref(req.Model), Effort: deref(req.Effort), SendID: deref(req.SendId), Client: r.Header.Get("Byre-Client"), Images: images})
sess, err := s.agents.Create(r.Context(), t, u, agents.Prompt{Text: req.Prompt, Model: api.Deref(req.Model), Effort: api.Deref(req.Effort), SendID: api.Deref(req.SendId), Client: r.Header.Get("Byre-Client"), Images: images})
if err != nil {
writeAgentError(w, err)
return
@@ -932,22 +932,12 @@ func (s *Server) GetSession(w http.ResponseWriter, r *http.Request, sessionID st
}
func (s *Server) SendMessage(w http.ResponseWriter, r *http.Request, sessionID string) {
req := api.MessageCreate{}
if !readJSON(w, r, &req) {
return
}
images, ok := s.images(w, r, req.Images)
prompt, ok := s.readMessage(w, r)
if !ok {
return
}
if strings.TrimSpace(req.Text) == "" && len(images) == 0 {
writeError(w, http.StatusBadRequest, errors.New("text or images are required"))
return
}
sess, _, err := s.agents.Message(r.Context(), sessionID, actor(r), agents.Prompt{Text: req.Text, Model: deref(req.Model), Effort: deref(req.Effort), SendID: deref(req.SendId), Client: r.Header.Get("Byre-Client"), Images: images})
sess, _, err := s.agents.Message(r.Context(), sessionID, actor(r), prompt)
if err != nil {
writeAgentError(w, err)
return
@@ -969,7 +959,7 @@ func (s *Server) CompactSession(w http.ResponseWriter, r *http.Request, sessionI
if !readJSON(w, r, &req) {
return
}
sess, err := s.agents.Compact(r.Context(), sessionID, deref(req.Model), deref(req.Effort))
sess, err := s.agents.Compact(r.Context(), sessionID, api.Deref(req.Model), api.Deref(req.Effort))
if err != nil {
writeAgentError(w, err)
return
+2 -2
View File
@@ -20,8 +20,8 @@ func (s *Server) StreamEvents(w http.ResponseWriter, r *http.Request, params api
last = *params.LastEventID
}
viewer := actor(r)
lead := deref(params.Lead)
taskID := deref(params.TaskId)
lead := api.Deref(params.Lead)
taskID := api.Deref(params.TaskId)
if params.TaskId != nil {
if !s.taskExists(w, r, taskID) {
return
+1 -4
View File
@@ -34,10 +34,7 @@ func (s *Server) PutWorkflow(w http.ResponseWriter, r *http.Request, name string
writeError(w, http.StatusBadRequest, fmt.Errorf("read workflow: %w", err))
return
}
from := ""
if params.From != nil {
from = *params.From
}
from := api.Deref(params.From)
summary, err := s.agents.SaveWorkflow(r.Context(), name, from, body, actor(r))
if err != nil {
writeAgentError(w, err)