* feat(analytics): migrate from Umami to PostHog server-side analytics
Replace @umami/node with posthog-node for all server-side telemetry.
Add singleton PostHog client, feature tracking POC, DAU heartbeat,
and tRPC analytics router. Cron job is now locked (no manual trigger,
no custom interval). Update consent copy to explain what we collect
and why.
* style: auto-fix lint and format
* refactor(analytics): simplify + add client-side posthog-js init
- Inline constants.ts and track.ts into client.ts (single source)
- Remove dead exports (shutdownPostHogAsync, getPostHogClient)
- Flatten all DB queries into one Promise.all (no waterfall)
- Derive integration/widget totals from group-by (drop redundant counts)
- Add posthog-js with dynamic import, gated on enableGeneral
- Move Analytics component to body, pass consent from server settings
* style: auto-fix lint and format
* feat(cron): add hidden flag to cron jobs, hide analytics from task panel
The analytics job runs silently in the background — users don't need
to see or interact with it. Hidden jobs are filtered out of getAllAsync
so they never appear in the management UI.
* refactor(analytics): simplify to single toggle, always collect all data
Remove granular enableWidgetData/enableIntegrationData/enableUserData
toggles. Analytics is now a single on/off switch. When enabled, all
anonymous usage data is collected in one flat Promise.all call.
Side effect: existing users with enableGeneral=true who had granular
flags off will now send all data. This is by design — the granular
controls added complexity without meaningful privacy benefit since
the data is already anonymous counts.
* style: auto-fix lint and format
* feat(widget): add proxmox integration
* fix: broken lock file
* fix: ci issues
* fix: ci issues
* fix: ci issues
* chore: debug temporary
* fix: name is not used correctly for nodes and storage in proxmox
* fix: remove temporary debu logs
* fix: job runs for both cluster and system health and throws error
* fix: ts-expect-error is unnecessary
* fix: remove unused import
* 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