Match pending sends by a send id the server echoes

This commit is contained in:
Ian Gulliver
2026-10-20 15:22:50 -07:00
parent b8c5331a0c
commit 8fec4b9040
29 changed files with 437 additions and 327 deletions
+3 -3
View File
@@ -373,7 +373,7 @@ func (m *Manager) Deliver(ctx context.Context, sessionID string) error {
for _, p := range pending {
images = append(images, p.Response.Images...)
}
after, err := m.turn(ctx, sess, task, pending[0].Response.User, deliveryMessage(pending), images)
after, err := m.turn(ctx, sess, task, pending[0].Response.User, deliveryMessage(pending), "", images)
if errors.Is(err, ErrConflict) {
slog.Info("deliver held: session changed state", "session", sessionID, "err", err, "responses", ids)
return nil
@@ -412,7 +412,7 @@ func (m *Manager) deliverMidTurn(ctx context.Context, l *live) midTurn {
}
msgs := []queued{}
for _, in := range inputs {
msgs = append(msgs, queued{actor: in.Actor, text: in.Text})
msgs = append(msgs, queued{actor: in.Actor, text: in.Text, sendID: in.SendID})
}
return midTurn{text: m.recordQueued(ctx, l, msgs), leadInputs: inputs}
}
@@ -435,7 +435,7 @@ func (m *Manager) deliverMidTurn(ctx context.Context, l *live) midTurn {
if len(mt.taskInputs) > 0 {
msgs := []queued{}
for _, in := range mt.taskInputs {
msgs = append(msgs, queued{actor: in.Actor, text: in.Text})
msgs = append(msgs, queued{actor: in.Actor, text: in.Text, sendID: in.SendID})
}
parts = append(parts, m.recordQueued(ctx, l, msgs))
}