Ctrl K
ComunidadGuías…

butler/gateway/session_registry_ops.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""Gateway session registry best-effort helpers (P0-A)."""

from __future__ import annotations

import logging
from collections.abc import Callable

from butler.core.best_effort import safe_best_effort

logger = logging.getLogger(__name__)


def publish_session_gauges_safe(*, session_count: int, active_turns: int) -> None:
    def _run() -> None:
        from butler.ops.runtime_metrics import publish_gateway_session_gauges

        publish_gateway_session_gauges(
            session_count=session_count,
            active_turns=active_turns,
        )

    safe_best_effort(_run, label="session_registry.publish_gauges", default=None)


def run_evict_notify_hook_safe(hook: Callable[[str], None], session_key: str) -> None:
    def _run() -> None:
        hook(session_key)

    safe_best_effort(_run, label="session_registry.evict_notify", default=None)


def notify_session_removed_safe(
    callback: Callable[[str], None] | None,
    session_key: str,
) -> None:
    if callback is None:
        return
    try:
        callback(str(session_key or "default"))
    except Exception:
        return