fix: work through LOTUS_BUGS.md audit items

- ExportRoomHistory: make addEvents() async, call decryptEventIfNeeded()
  before inspecting type/content so E2EE rooms export decrypted text
- UrlPreviewCard: remove Google S2 favicon (privacy leak); show
  generic Icons.Link instead — no third-party external calls
- Profile: add statusDirtyRef so server presence sync cannot clobber
  in-flight emoji insertions or keystrokes; cleared on save/clear
- useLocalMessageSearch: include m.sticker, m.poll.start, and
  org.matrix.msc3381.poll.start in encrypted room search; index poll
  question and answer bodies
- SeasonalEffect: z-index 9997 → 9999 so overlays render above
  animated chat backgrounds
- LOTUS_BUGS.md: mark all resolved, document remaining blocked items

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-15 00:09:54 -04:00
parent 7f329e3b31
commit 6f9bdc4d50
6 changed files with 98 additions and 143 deletions
@@ -775,7 +775,7 @@ function SeasonalOverlay({
position: 'fixed',
inset: 0,
pointerEvents: 'none',
zIndex: 9997,
zIndex: 9999,
overflow: 'hidden',
}}
>
@@ -1652,7 +1652,6 @@ function GenericCard({
const description = prev['og:description'] ?? '';
const siteName = typeof prev['og:site_name'] === 'string' ? prev['og:site_name'] : undefined;
const domain = getDomain(url);
const faviconSrc = `https://www.google.com/s2/favicons?domain=${encodeURIComponent(domain)}&sz=16`;
return (
<>
@@ -1687,13 +1686,11 @@ function GenericCard({
priority="300"
>
{!thumbUrl && (
<img
className={previewCss.GenericFaviconImg}
src={faviconSrc}
alt=""
<Icon
src={Icons.Link}
size="50"
aria-hidden="true"
loading="lazy"
style={{ marginRight: '4px', verticalAlign: 'text-bottom' }}
style={{ marginRight: '4px', verticalAlign: 'text-bottom', opacity: 0.5 }}
/>
)}
{siteName ? `${siteName} | ` : ''}