Codex mid-turn delivery deletes input before the steer is accepted
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
# Bugs
|
||||
|
||||
- Codex mid-turn delivery deletes input before the steer is accepted
|
||||
Queued inputs are deleted or marked delivered and recorded as `user.message` (`internal/agents/queue.go:119`, `:158`; `internal/agents/inbox.go:404`) before `Steer`, whose error is only logged (`internal/agents/codex.go:167–174`). Return the consumed ids from `deliverMidTurn`; when Steer fails, re-insert the inputs in order and clear `delivered_at` so the turn-end Deliver sends them.
|
||||
- Inbox answer validation isn't atomic with resolving the question
|
||||
`CheckResponse` reads open state outside the write transaction and `Respond` updates by id alone (`internal/agents/respond.go:26–34`, `:93`; `internal/store/inbox.go:140`), so two concurrent answers both land, or a withdrawal is overwritten. Condition the update on `state='open'`, check RowsAffected, roll back the batch on conflict and return 409.
|
||||
- A Codex RPC can deadlock the reader it waits on
|
||||
|
||||
Reference in New Issue
Block a user