You give a coding agent a task, watch it start going the wrong way, and type a correction. What should happen to that message?
There are two designs. Interrupt: the message goes in straight away and the agent changes course. Queue: it waits, and the agent reads it when the current turn ends.
Interrupting is quicker when you've caught a mistake early. But the agent may be halfway through an edit, and a correction can land at a bad moment. Queueing is safer for the work in progress, but a wrong turn keeps running until it's done.
Which one you get depends on how the agent exposes itself. In Styx, the app I'm building, Codex runs over codex app-server, so it takes a message at once and adjusts. Claude Code, Gemini CLI, Cursor's agent and OpenCode hold the message and send it when the turn ends, and a Send now button skips the wait.
If you could pick, would you want messages to interrupt by default, or queue by default? Does the answer change with how long the turn is?
Top comments (1)
A useful default may depend less on turn length than on whether the agent has crossed a side-effect boundary. Expose that boundary in the UI—planning, editing, awaiting confirmation, or performing a reserved action—then let a correction queue safely by default but offer an explicit interrupt with the expected rollback behavior. That gives the user a reasoned choice instead of a timing gamble.