igrate to IndexedDB-backed KV storage and async xxdk-wasm API
- Replace RemoteKV context with new useKVStorage hook backed by xxdk-wasm's createKVStore (IndexedDB)
- Convert synchronous xxdk-wasm calls to async/Promise-based API (GetIdentity, GetNickname, SetNickname, IsChannelAdmin, AreDMsEnabled, GetMutedUsers, Decrypt, etc.)
- Replace IsReadyInfo (howClose percentage) with NodeRegistrationReport providing discrete node registration counts
- Remove synchronized CMix functions and RemoteStore dependency
- Add storage migration utility for localStorage to KV storage transition
- Remove one-tab enforcer (no longer needed)
- Update all consuming components/hooks to handle async operations
- Fix interval cleanup leak in Join route
- Update npm dependencies to latest versions- Fix DMs