Expose NextTaskID

This commit is contained in:
Ian Gulliver
2025-07-05 23:37:13 -07:00
parent b663adfdc6
commit 3cde954b6f

View File

@@ -39,9 +39,10 @@ type Task struct {
Error string `json:"-"` Error string `json:"-"`
Notes string `json:"-"` Notes string `json:"-"`
NextTaskID string `json:"-"`
projectID string projectID string
mcpService string mcpService string
nextTaskID string
completionCallback func(task *Task) error completionCallback func(task *Task) error
} }
@@ -79,8 +80,8 @@ func (p *Project) InsertTaskBefore(beforeID string, instructions string, complet
p.nextTaskID = task.ID p.nextTaskID = task.ID
} else { } else {
for t := range p.tasks() { for t := range p.tasks() {
if t.nextTaskID == beforeID { if t.NextTaskID == beforeID {
t.nextTaskID = task.ID t.NextTaskID = task.ID
break break
} }
} }
@@ -110,7 +111,7 @@ func (p *Project) SetTaskSuccess(id string, result string, notes string) (*Task,
return nil, err return nil, err
} }
p.nextTaskID = task.nextTaskID p.nextTaskID = task.NextTaskID
return p.GetNextTask(), nil return p.GetNextTask(), nil
} }
@@ -126,7 +127,7 @@ func (p *Project) SetTaskFailure(id string, error string, notes string) (*Task,
return nil, err return nil, err
} }
p.nextTaskID = task.nextTaskID p.nextTaskID = task.NextTaskID
return p.GetNextTask(), nil return p.GetNextTask(), nil
} }
@@ -135,7 +136,7 @@ func (p *Project) newTask(instructions string, completionCallback func(task *Tas
task := &Task{ task := &Task{
ID: uuid.New().String(), ID: uuid.New().String(),
State: TaskStatePending, State: TaskStatePending,
nextTaskID: nextTaskID, NextTaskID: nextTaskID,
Instructions: instructions, Instructions: instructions,
Data: map[string]any{}, Data: map[string]any{},
completionCallback: completionCallback, completionCallback: completionCallback,
@@ -152,7 +153,7 @@ func (p *Project) newTask(instructions string, completionCallback func(task *Tas
func (p *Project) tasks() iter.Seq[*Task] { func (p *Project) tasks() iter.Seq[*Task] {
return func(yield func(*Task) bool) { return func(yield func(*Task) bool) {
for tid := p.nextTaskID; tid != ""; tid = p.Tasks[tid].nextTaskID { for tid := p.nextTaskID; tid != ""; tid = p.Tasks[tid].NextTaskID {
t := p.Tasks[tid] t := p.Tasks[tid]
if !yield(t) { if !yield(t) {
return return