Run reviews and nudges on the state-driven coordinator
This commit is contained in:
@@ -2,6 +2,7 @@ package agents
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
)
|
||||
|
||||
@@ -43,6 +44,9 @@ func (m *Manager) coordinatePass(ctx context.Context, started map[string]bool) {
|
||||
for _, id := range work.StartDiscards {
|
||||
m.startDiscard(ctx, id)
|
||||
}
|
||||
for _, r := range work.EndReviewers {
|
||||
go m.cleanUpReviewer(r)
|
||||
}
|
||||
|
||||
current := map[string]bool{}
|
||||
once := func(key string, run func()) {
|
||||
@@ -59,6 +63,18 @@ func (m *Manager) coordinatePass(ctx context.Context, started map[string]bool) {
|
||||
for _, id := range work.FinishDiscards {
|
||||
once("discard:"+id, func() { m.finishDiscard(id) })
|
||||
}
|
||||
for _, r := range work.StartReviews {
|
||||
once(fmt.Sprintf("review:%s:%d", r.TaskID, r.N), func() { m.startReviews(r) })
|
||||
}
|
||||
for _, s := range work.StartStages {
|
||||
once(fmt.Sprintf("stage:%s:%d:%s", s.TaskID, s.SnapshotN, s.Stage), func() { m.startReviewStage(s) })
|
||||
}
|
||||
for _, r := range work.SettleReviews {
|
||||
once(fmt.Sprintf("settle:%s:%d", r.TaskID, r.N), func() { m.settleReviews(r) })
|
||||
}
|
||||
for _, p := range work.ReadyPrompts {
|
||||
once("ready:"+p.TaskID, func() { m.promptReady(p) })
|
||||
}
|
||||
for key := range started {
|
||||
if !current[key] {
|
||||
delete(started, key)
|
||||
|
||||
Reference in New Issue
Block a user