_host_set is computed once in __init__ — reserve() and is_free() were rebuilding the full host frozenset on every call. BaseRepository already existed; the Any annotations were just never updated.