// run. ID is the ID of a logged message. Source names the client that sent a
// user message, such as terminal or telegram, so that each client can show the
// messages of the others, or the subagent of a report. Status tells how the run
-// of a report ended: finished, stopped, or failed.
+// of a report ended: finished, stopped, or failed. A private notify receipt
+// uses ID for its queue sequence and Status for accepted or duplicate, not
+// processed.
type Event struct {
Kind string `json:"kind"`
ID int `json:"id,omitempty"`
}
for {
- for ctx.Err() == nil && l.waiting() {
+ for ctx.Err() == nil {
err := l.failed()
if err != nil {
return fmt.Errorf("check turn loop failure: %w", err)
}
+ if l.messages != nil {
+ err = l.messages.Notifications(l)
+ if err != nil {
+ return fmt.Errorf("prepare external events: %w", err)
+ }
+ }
+
+ if !l.waiting() {
+ break
+ }
+
err = l.turn(ctx)
if err != nil {
return fmt.Errorf("run turn: %w", err)