From e0e81bbdaae37353803d47fa59a36d0472f8146d Mon Sep 17 00:00:00 2001 From: Claudomator Agent Date: Sat, 14 Mar 2026 07:04:47 +0000 Subject: feat: persist agent assignment before task execution - Add UpdateTaskAgent to Store interface and DB implementation - Call UpdateTaskAgent in Pool.execute to persist assigned agent/model to database before the runner starts - Update runTask in app.js to pass selected agent as query param Co-Authored-By: Claude Sonnet 4.6 --- internal/storage/db.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'internal/storage/db.go') diff --git a/internal/storage/db.go b/internal/storage/db.go index b8a7085..043009c 100644 --- a/internal/storage/db.go +++ b/internal/storage/db.go @@ -251,6 +251,18 @@ func (s *DB) ResetTaskForRetry(id string) (*task.Task, error) { return t, nil } +// UpdateTaskAgent updates only the agent configuration of a task. +func (s *DB) UpdateTaskAgent(id string, agent task.AgentConfig) error { + configJSON, err := json.Marshal(agent) + if err != nil { + return fmt.Errorf("marshaling agent config: %w", err) + } + now := time.Now().UTC() + _, err = s.db.Exec(`UPDATE tasks SET config_json = ?, updated_at = ? WHERE id = ?`, + string(configJSON), now, id) + return err +} + // RejectTask sets a task's state to PENDING and stores the rejection comment. func (s *DB) RejectTask(id, comment string) error { now := time.Now().UTC() -- cgit v1.2.3