Selected the least expensive known vision model only when no configured or active vision model is available, avoiding catalog-order surprises.
Added image-description regression coverage for unpriced candidates and explicit role precedence.
Fixescan1357#16755
Rows without a rate card rank last, declared free rows rank at 0, and prices come from getEffectiveTokenCost so dated rates apply.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters