Tell the model when a message was a steer
A message typed during a turn reaches the model at the next model call if the turn has one left, and otherwise as the opening line of the next turn -- Claude's read out of the fifo after the turn ended, Codex's requeued when turn/steer is refused. Read there it is indistinguishable from a reply, so the model treats the answer it just gave as seen. Both drivers now compose the text the CLI receives through driver::message_body, which prefixes a note saying the message was written without having seen the rest of that turn. The transcript still holds the words that were typed; only the CLI's copy carries the note. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
59ebd75b46
commit
3af2502982
4 files changed
+107
-18
No files matched your search
@@ -453,6 +453,27 @@ error row a screen away.
|
||||
`Unknown` is not "we could not find out": a driver that is gone reported
|
||||
everything it was holding when it closed.
|
||||
|
||||
### A steer says that it is one (2026-09-13)
|
||||
|
||||
A message typed during a turn reaches the model with a bracketed note in
|
||||
front of it saying it was written without having seen the rest of that turn
|
||||
(`driver::message_body`, and `STEERING_NOTE` beside it). The transcript keeps
|
||||
the words that were typed; only the copy the CLI is handed carries the note.
|
||||
|
||||
The reason is that where a steer lands is not ours to choose. It reaches the
|
||||
model at the next model call if the turn has one left, and otherwise as the
|
||||
opening line of the *next* turn -- Claude's read out of the fifo after the
|
||||
turn ended, Codex's requeued when `turn/steer` is refused as
|
||||
`activeTurnNotSteerable`. In that second case nothing distinguishes it from
|
||||
an ordinary reply, so the model treats the answer it just gave as read and
|
||||
answers around it. Bryan reported this as the ordinary experience of steering
|
||||
from the phone: the interruption is meant to arrive mid-work, and it lands
|
||||
after the fact often enough to matter.
|
||||
|
||||
It is prefixed on every steer rather than only on the ones that land late,
|
||||
because the two are the same message until the CLI reads it, and the note is
|
||||
true either way: a steer never saw the rest of the turn it was typed into.
|
||||
|
||||
### Session processes outlive the backend (2026-08-29)
|
||||
|
||||
A session's process is **left running when the backend stops and adopted
|
||||
|
||||
Reference in new issue
Block a user