Run reviews and nudges on the state-driven coordinator

This commit is contained in:
Ian Gulliver
2026-10-21 12:54:34 -07:00
parent 97b71416d5
commit b4a454bab1
16 changed files with 718 additions and 567 deletions
+16
View File
@@ -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)