Make task state store-owned and signal its changes to the lead

This commit is contained in:
Ian Gulliver
2026-10-16 11:15:32 -07:00
parent 34db128afe
commit d26c81ceb1
15 changed files with 451 additions and 199 deletions
+10 -6
View File
@@ -79,12 +79,16 @@ func New(dataDir string, portFirst int, spa fs.FS) (*Server, error) {
return s, nil
}
func (s *Server) publish(ev api.Event) {
s.hub.publish(ev)
s.agents.Observe(ev)
if (ev.Kind == "task.merged" || ev.Kind == "task.discarded") && ev.TaskId != nil {
s.terminals.close(*ev.TaskId)
go s.agents.Unexpose(context.Background(), *ev.TaskId)
func (s *Server) publish(events []api.Event) {
for _, ev := range events {
s.hub.publish(ev)
}
s.agents.Observe(events)
for _, ev := range events {
if (ev.Kind == "task.merged" || ev.Kind == "task.discarded") && ev.TaskId != nil {
s.terminals.close(*ev.TaskId)
go s.agents.Unexpose(context.Background(), *ev.TaskId)
}
}
}