Block ws:// relay connections and http:// resource loading by default
to prevent browser mixed content warnings. When blocked, resources
show clickable URL links instead of error placeholders so users can
open them manually.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The userEmojiListEvents and emojiSetEvents stores were not included in
the cleanUp() method, causing their cached data to never expire. Add
both stores with a 7-day expiration period.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Apply NFKD normalization to both indexed text and search queries so
that stylized Unicode characters (e.g. 𝚋𝚊𝚝𝚜𝚒𝚚) are decomposed to
their ASCII equivalents and can be matched by search.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace hardcoded SEARCHABLE_RELAY_URLS with user-configurable search
relays stored in localStorage. Add SearchRelaysSetting UI in System
settings page with add/remove/reset functionality.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use compareEvents (which considers both created_at and id) instead of
simple created_at comparison for sorting events in timeline subscription
and load-more logic. This ensures consistent ordering with mergeTimelines
and handleNewEvent deduplication, preventing duplicates when events share
the same timestamp. Also add Set-based dedup in notification list memo
as an additional safety net.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a toggle in General Settings to enable/disable video loop playback,
following the same pattern as the existing autoplay setting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>