The v1.69.0 caching refactor (f19033e0d) replaced the old Redis pub/sub
push mechanism with a global 30s client-side polling interval. This
caused widgets that previously refreshed every 5s (e.g. health-monitoring,
Dashdot, dns-hole) to only refresh every 30s.
Adds a widgetRefetchIntervalOverrides map in query-cache.ts that maps
tRPC path prefixes to refetch intervals matching the pre-v1.69.0
server-side cacheDuration values. The TRPC provider applies these
overrides via setQueryDefaults after the global default.
Also restores server-side cacheTtlMs on all request handlers to prevent
duplicate upstream API calls between client polls, and adds cacheTtlMs
support to createWidgetRequestHandler.
Beszel handlers are left untouched as they have their own cache handling.
Fixes#6268
* feat(pihole): add support for v6
* fix: add session-store to keep using same session for pi-hole requests
* chore: address pull request feedback
* fix: import issue
* fix: other import errors
* feat: add object base64 hash method
* chore: add script to add package
* feat: add request-handler package
* wip: add request handlers for all jobs and widget api procedures
* wip: remove errors shown in logs, add missing decryption for secrets in cached-request-job-handler
* wip: highly improve request handler, add request handlers for calendar, media-server, indexer-manager and more, add support for multiple inputs from job handler creator
* refactor: move media-server requests to request-handler, add invalidation logic for dns-hole and media requests
* refactor: remove unused integration item middleware
* feat: add invalidation to switch entity action of smart-home
* fix: lint issues
* chore: use integration-kind-by-category instead of union for request-handlers
* fix: build not working for tasks and websocket
* refactor: add more logs
* refactor: readd timestamp logic for diconnect status
* fix: lint and typecheck issue
* chore: address pull request feedback