summaryrefslogtreecommitdiff
path: root/internal/storage/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/storage/db.go')
-rw-r--r--internal/storage/db.go17
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)