Add a per-user lead agent and make the right pane task-focused
This commit is contained in:
@@ -61,7 +61,7 @@ func New(dataDir string, spa fs.FS) (*Server, error) {
|
||||
return nil, fmt.Errorf("start push notifier: %w", err)
|
||||
}
|
||||
|
||||
s.agents = agents.New(s.store, agents.DefaultLimits, filepath.Join(dataDir, "worktrees"))
|
||||
s.agents = agents.New(s.store, agents.DefaultLimits, filepath.Join(dataDir, "worktrees"), filepath.Join(dataDir, "leads"))
|
||||
err = s.agents.Recover(context.Background())
|
||||
if err != nil {
|
||||
s.notifier.Close()
|
||||
@@ -78,6 +78,7 @@ const pushWindow = 3 * time.Second
|
||||
func (s *Server) publish(ev api.Event) {
|
||||
s.hub.publish(ev)
|
||||
s.notifier.Observe(ev)
|
||||
s.agents.Observe(ev)
|
||||
}
|
||||
|
||||
func (s *Server) Close() error {
|
||||
@@ -414,13 +415,7 @@ func (s *Server) DiscardTask(w http.ResponseWriter, r *http.Request, taskID stri
|
||||
return
|
||||
}
|
||||
|
||||
err := s.agents.RemoveTask(r.Context(), t, p, actor(r))
|
||||
if err != nil {
|
||||
writeError(w, http.StatusInternalServerError, err)
|
||||
return
|
||||
}
|
||||
|
||||
t, err = s.store.DiscardTask(r.Context(), taskID, actor(r))
|
||||
t, err := s.agents.Discard(r.Context(), t, p, actor(r))
|
||||
if err != nil {
|
||||
writeStoreError(w, err)
|
||||
return
|
||||
@@ -652,7 +647,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.ErrNoGitIdentity):
|
||||
case errors.Is(err, agents.ErrInvalid), errors.Is(err, agents.ErrNoGitIdentity):
|
||||
writeError(w, http.StatusBadRequest, err)
|
||||
default:
|
||||
writeError(w, http.StatusInternalServerError, err)
|
||||
|
||||
Reference in New Issue
Block a user