"""진행 중 동기화 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)