mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 16:02:26 +00:00
Three performance bottlenecks were causing slow list loading after NIP-07 login: 1. Each list service (blocks, subscriptions, hashtag preferences) maintained its own isolated decryptionSuccessCache. When blocks decrypted with nip44_v2, subscriptions and hashtag preferences had no way to know — they each had to independently probe all schemes through the NIP-07 extension queue, tripling the number of extension calls during the critical login path. 2. List loading was gated on both relaysReadyPromise AND permissionPromise in the coordinator. Since the NIP-07 extension already grants decrypt permissions during loginWithExtension(), the redundant pre-grant was adding 2-5 seconds of unnecessary latency before any list fetching could begin. 3. The DECRYPT_RETRY_DELAY_MS was 10 seconds across all services. When a decrypt attempt failed transiently (extension still initializing), the retry waited far too long before trying again. Changes: - Create shared decryptionSchemeCache module used by all three list services - Add fast-path: when shared cache knows the correct scheme, try ONLY that scheme before falling back to parallel Promise.any() probe - Remove permissionPromise from the list-loading gate in authSessionCoordinator - Reduce DECRYPT_RETRY_DELAY_MS from 10s to 3s in all three services - Clear shared cache on logout https://claude.ai/code/session_013QrGMnxtMTsGTPqaP35jMj