2ecd557430
openDatabase() now catches errors from idb's openDB() (which throws synchronously when indexedDB is undefined) and returns null. All consumers — profileCache, nip05Cache, dmMessageStore — check for null and silently degrade to in-memory only. The DM message store also stops re-throwing errors, which previously could produce unhandled rejections in DMProvider.