diff --git a/frontend/src/lib/components/admin/WidgetSection.svelte b/frontend/src/lib/components/admin/WidgetSection.svelte
index ca697a3..63b39ec 100644
--- a/frontend/src/lib/components/admin/WidgetSection.svelte
+++ b/frontend/src/lib/components/admin/WidgetSection.svelte
@@ -3,18 +3,24 @@
// Minimized by default — Weather/Stocks/Bookmarks/PoE2 stacked at full height would
// make the consolidated "Widgets" tab unwieldy as more get added over time. Enabled
- // state is independent of expanded state: disabling a widget only hides it from the
- // sidebar (see Sidebar.svelte's widgetsEnabled gate), it doesn't stop the admin from
- // expanding this section to keep configuring it.
+ // state is independent of expanded state: disabling a widget hides it from the
+ // sidebar AND stops its backend poller from making outbound requests (see
+ // scheduler.ts's widgets.* gate) — it just doesn't stop the admin from expanding
+ // this section to keep configuring it while it's off.
let {
title,
enabled,
onToggle,
+ // Weather/Stocks/PoE2 have a backend poller that scheduler.ts gates on this same
+ // flag (see scheduler.ts); Bookmarks doesn't poll anything, so disabling it only
+ // ever affects sidebar visibility — the tooltip shouldn't claim otherwise.
+ hasBackendPoller = true,
children
}: {
title: string;
enabled: boolean;
onToggle: () => void;
+ hasBackendPoller?: boolean;
children: Snippet;
} = $props();
@@ -26,9 +32,18 @@
-