From be151fd6f7e7860cc60bee67bab815c155e86fcd Mon Sep 17 00:00:00 2001
From: Fuwn <contact@fuwn.net>
Date: Fri, 29 May 2026 23:05:37 +0000
Subject: feat(analytics): track umami events across core actions

Add a guarded track() wrapper (src/lib/analytics.ts) so programmatic
events no-op instead of throwing when umami is absent (localhost),
lazily loaded, or ad-blocked. Instrument the core loop (progress
increment, roulette, list filter, force refresh), the auth funnel
(log in/out, command palette), settings toggles/selects at the wrapper
level, sync/debug/feed actions, and tool/sharing actions.
---
 src/lib/Announcement.svelte | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'src/lib/Announcement.svelte')

diff --git a/src/lib/Announcement.svelte b/src/lib/Announcement.svelte
index 8bbdfe67..4338f8ff 100644
--- a/src/lib/Announcement.svelte
+++ b/src/lib/Announcement.svelte
@@ -47,7 +47,9 @@ const maxWidth = (input: string, max = 100) => {
 
     <Spacer />
 
-    <button onclick={dismiss} class="dismiss">{dismissButton || 'Dismiss'}</button>
+    <button onclick={dismiss} class="dismiss" data-umami-event="Dismiss Announcement"
+      >{dismissButton || 'Dismiss'}</button
+    >
   </Popup>
 {/if}
 
-- 
cgit v1.2.3

