class _ClientDb(_Clearable, _UpdatingAttrsMixin, SharedClientDbFields):
-    _updates_cache: dict[tuple[str, ...], Any] = {}
-    _keep_on_clear = set(IrcConnSetup.__annotations__.keys())
+    _updates_cache: dict[tuple[str, ...], Any]
+    _keep_on_clear = frozenset(IrcConnSetup.__annotations__.keys())
     caps: _UpdatingDict[_UpdatingServerCapability]
     channels: _UpdatingChannelsDict
     isupport: _UpdatingIsupportDict
     motd: _UpdatingCompletableStringsOrdered
     users: _UpdatingUsersDict
 
+    def __init__(self, **kwargs) -> None:
+        self._updates_cache = {}
+        super().__init__(**kwargs)
+
     def __getattribute__(self, key: str):
         attr = super().__getattribute__(key)
         if key == 'channels' and attr._create_if_none is None\
 
 
 # test setting up second client, but 432 irrecoverably
 > /connect baz.bar.foo ?foo foo:foo
+, $ DISCONNECTED
 8 $ isupport cleared
 8 $ isupport:CHANTYPES set to: [#&]
 8 $ isupport:PREFIX set to: [(ov)@+]
 8 $ isupport:USERLEN set to: [10]
+8 $ caps cleared
+8 $ users cleared
+8 $ channels cleared
 8 $ hostname set to: [baz.bar.foo]
 8 $ port set to: [-1]
 8 $ nick_wanted set to: [?foo]
 
 # test failing third connection
 > /connect baz.baz.baz baz baz:baz
+, $ DISCONNECTED
 9 $ isupport cleared
 9 $ isupport:CHANTYPES set to: [#&]
 9 $ isupport:PREFIX set to: [(ov)@+]
 9 $ isupport:USERLEN set to: [10]
+9 $ caps cleared
+9 $ users cleared
+9 $ channels cleared
 9 $ hostname set to: [baz.baz.baz]
 9 $ port set to: [-1]
 9 $ nick_wanted set to: [baz]