Codex mid-turn delivery deletes input before the steer is accepted

This commit is contained in:
Ian Gulliver
2026-10-16 14:18:40 -07:00
parent a0e6a3953f
commit 8c7c3bee2e
9 changed files with 118 additions and 33 deletions
+6 -6
View File
@@ -119,7 +119,7 @@ type queued struct {
text string
}
func (m *Manager) takeQueuedMidTurn(ctx context.Context, l *live) []queued {
func (m *Manager) takeQueuedMidTurn(ctx context.Context, l *live) []store.TaskInput {
m.mu.Lock()
compacting := l.compacting
m.mu.Unlock()
@@ -132,13 +132,13 @@ func (m *Manager) takeQueuedMidTurn(ctx context.Context, l *live) []queued {
slog.Error("list queued messages", "session", l.id, "err", err)
return nil
}
out := []queued{}
out := []store.TaskInput{}
ids := []int64{}
for _, in := range inputs {
if len(in.Images) > 0 {
break
}
out = append(out, queued{actor: in.Actor, text: in.Text})
out = append(out, in)
ids = append(ids, in.ID)
}
if len(ids) == 0 {
@@ -152,7 +152,7 @@ func (m *Manager) takeQueuedMidTurn(ctx context.Context, l *live) []queued {
return out
}
func (m *Manager) takeLeadQueuedMidTurn(ctx context.Context, l *live) []queued {
func (m *Manager) takeLeadQueuedMidTurn(ctx context.Context, l *live) []store.LeadInput {
m.mu.Lock()
compacting := l.compacting
m.mu.Unlock()
@@ -168,7 +168,7 @@ func (m *Manager) takeLeadQueuedMidTurn(ctx context.Context, l *live) []queued {
slog.Error("list held lead messages", "session", l.id, "err", err)
return nil
}
out := []queued{}
out := []store.LeadInput{}
ids := []int64{}
for _, in := range inputs {
if in.Kind != store.LeadMessage {
@@ -177,7 +177,7 @@ func (m *Manager) takeLeadQueuedMidTurn(ctx context.Context, l *live) []queued {
if len(in.Images) > 0 {
break
}
out = append(out, queued{actor: in.Actor, text: in.Text})
out = append(out, in)
ids = append(ids, in.ID)
}
if len(ids) == 0 {