//! Whether a finished turn may rewrite the session's model.
//!
//! A turn reports the model it actually ran on, which is how an alias becomes
//! concrete: ask a CLI for `opus` and it answers as the version it resolved.
//! Refreshing the session's model from that keeps the footer honest without a
//! restart.
//!
//! It is only honest while the turn stayed on the session's own provider. A
//! turn that ran somewhere else reports that provider's model, and writing it
//! back replaces the user's pick with one they never chose. `/models` then
//! looks ignored: the selection is accepted, the next turn falls elsewhere,
//! and the answer's model overwrites the choice on the way out.
/// May a turn's reported model replace the session's current one?
///
/// `started_on_session_provider` carries the same contract the persisted pair
/// obeys (#705): false means the turn ran on a provider that was not the
/// session's, so nothing it reports describes the session's own choice.