diff options
Diffstat (limited to 'internal/storage/db.go')
| -rw-r--r-- | internal/storage/db.go | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/internal/storage/db.go b/internal/storage/db.go index cbbd97c..0a4f7a5 100644 --- a/internal/storage/db.go +++ b/internal/storage/db.go @@ -109,7 +109,7 @@ func isColumnExistsError(err error) bool { // CreateTask inserts a task into the database. func (s *DB) CreateTask(t *task.Task) error { - configJSON, err := json.Marshal(t.Claude) + configJSON, err := json.Marshal(t.Agent) if err != nil { return fmt.Errorf("marshaling config: %w", err) } @@ -242,7 +242,7 @@ func (s *DB) RejectTask(id, comment string) error { type TaskUpdate struct { Name string Description string - Config task.ClaudeConfig + Config task.AgentConfig Priority task.Priority TimeoutNS int64 Retry task.RetryConfig @@ -522,8 +522,17 @@ func scanTask(row scanner) (*task.Task, error) { t.State = task.State(state) t.Priority = task.Priority(priority) t.Timeout.Duration = time.Duration(timeoutNS) - if err := json.Unmarshal([]byte(configJSON), &t.Claude); err != nil { - return nil, fmt.Errorf("unmarshaling config: %w", err) + if err := json.Unmarshal([]byte(configJSON), &t.Agent); err != nil { + return nil, fmt.Errorf("unmarshaling agent config: %w", err) + } + // Fallback for legacy 'claude' field + if t.Agent.Instructions == "" { + var legacy struct { + Claude task.AgentConfig `json:"claude"` + } + if err := json.Unmarshal([]byte(configJSON), &legacy); err == nil && legacy.Claude.Instructions != "" { + t.Agent = legacy.Claude + } } if err := json.Unmarshal([]byte(retryJSON), &t.Retry); err != nil { return nil, fmt.Errorf("unmarshaling retry: %w", err) |
