"""진행 중 동기화 task 의 메모리 저장소 (uuid → task_href).

폐쇄망 단일 인스턴스 가정. 다중 워커/프로세스로 띄우면 워커 간 공유되지 않으므로,
규모가 커지면 Redis 등 외부 저장소로 교체해야 한다. 폴링 자체는 화면(HTMX)이 한다(스펙 §7).
"""

from __future__ import annotations

_active: dict[str, str] = {}


def set_task(uuid: str, task_href: str) -> None:
    _active[uuid] = task_href


def get_task(uuid: str) -> str | None:
    return _active.get(uuid)


def clear_task(uuid: str) -> None:
    _active.pop(uuid, None)


def active_count() -> int:
    """대시보드 '동기화 중' 카드용 — 아직 완료/실패로 정리되지 않은 sync 수."""
    return len(_active)
