feat: revamp multicopy flow with include/exclude conflict dialogs

This commit is contained in:
matt 2026-03-21 19:23:21 -07:00
parent 4aa41adb20
commit 804c750bb2
14 changed files with 665 additions and 166 deletions

View file

@ -195,3 +195,18 @@ def cleanup_expired() -> int:
Number of sessions cleaned up
"""
return _get_manager().cleanup_state()
class _SessionsProxy:
"""Dict-like proxy exposing internal session state — for test isolation only."""
def clear(self) -> None:
_get_manager()._state.clear()
def get(self, key: str, default: Any = None) -> Any:
return _get_manager()._state.get(key, default)
def pop(self, key: str, *args: Any) -> Any:
return _get_manager()._state.pop(key, *args)
_SESSIONS = _SessionsProxy()