-
Stefy Lanza (nextime / spora ) authored
A rotation provider entry whose provider_id is "rotations" or "autoselect" is a meta-provider: each model "name" is the id of a target rotation/autoselect, and the request is forwarded there (weighted like any other entry, with failover to the next entry on total failure). - handlers.py: detect meta-providers in model-building, delegate in the retry loop, and resolve rotation vs autoselect targets. - Loop protection: a delegation chain rides on request_data and is registered by both RotationHandler and AutoselectHandler; re-entering an id already in the chain (A->B->A) or exceeding depth 8 raises HTTP 508 (caught upstream -> fail over). Loops are also pre-filtered at model-build time. - Dashboard: the provider select in rotations.html / user_rotations.html now offers "rotations"/"autoselect"; the model row becomes a target picker. Co-Authored-By:Claude Opus 4.8 <noreply@anthropic.com>
c666aab2