Toggle the highlighted model as the screen's stored default.
If the highlighted model is already stored, clears it. Otherwise stores
it. Which preference is written — and how the footer names it — comes
from the screen's DefaultModelScope, so the /auto classifier picker
cannot silently retarget the main agent model. A screen constructed with
default_scope=None has nothing to write and returns early.
Rows whose provider integration is missing are refused rather than persisted: unlike the session-only Enter path (which offers to install the package), a stored spec that can never build would degrade every future launch with no prompt at the moment of the keypress. The refusal applies only to storing — when the highlighted row is already the stored spec, Ctrl+S must still clear it, since the clear path is the only in-app way to drop a persisted value whose provider integration was later removed.
Write failures leave their notice in place instead of scheduling a restore timer, and (when the screen is running) raise a toast naming the remedy — a 3-second footer flash is not enough to read, let alone act on. The install refusal is a different class: the user fixes it by moving the cursor to an installed row, so it restores on the usual timer rather than pinning the footer for the life of the modal.