"""Раз в час: пора ли сменить мастера (ночь, возраст, размер контекста). Запуск руками (кнопка в админке, `POST /api/jobs/ротация/run`) ротирует мастера сразу, с хендаутом: так новая сессия подхватывает свежие гранулы vault. """ from __future__ import annotations import logging from typing import TYPE_CHECKING if TYPE_CHECKING: from beaver_gateway.jobs.scheduler import JobRun _log = logging.getLogger(__name__) async def rotate(run: JobRun) -> None: force = "manual" if run.trigger == "manual" else None for master in await run.rotate(force=force): _log.info("rotated master -> %s", master.external_id)