When the owner sends !model while a turn is in flight, the switch is queued rather than applied, but the !model listing still marks the queued override's predecessor with the current marker. The listing reads the checked-out agent's live state, and the queued override is not visible from there until the turn completes and the switch lands.
Repro: start a long-running turn, send !model <other-model>, then send !model before the turn finishes. The list replies, but the marker points at the model the agent is about to leave.
Reporting-only. The switch itself lands correctly once the turn completes. Fixing the marker means threading the desired model through the task metadata so the listing can read it while the agent is checked out, which touches every construction site of that struct, so it was split out of #3380 rather than bundled.
When the owner sends
!modelwhile a turn is in flight, the switch is queued rather than applied, but the!modellisting still marks the queued override's predecessor with the current marker. The listing reads the checked-out agent's live state, and the queued override is not visible from there until the turn completes and the switch lands.Repro: start a long-running turn, send
!model <other-model>, then send!modelbefore the turn finishes. The list replies, but the marker points at the model the agent is about to leave.Reporting-only. The switch itself lands correctly once the turn completes. Fixing the marker means threading the desired model through the task metadata so the listing can read it while the agent is checked out, which touches every construction site of that struct, so it was split out of #3380 rather than bundled.