Tag every PostHog event with app/OS/device context
Register a stable set of super properties on PostHog setup so every
captured event carries app_version, build_number, os_version (+ major/
minor split for easy aggregation), device_model (sysctlbyname hw.model),
cpu_arch (Apple Silicon vs Intel), and locale. Without these, the
existing 16 events are essentially uncuttable in the dashboard.
Sentry environment now follows updateChannel — "tip" channel users get
their own bucket separate from "production" so a regression on the tip
release doesn't pollute stable's crash rate.
Add session_duration_seconds to the app_quit event so we can see how
long users actually keep Prowl running per session, which is the natural
denominator for the long-running memory growth investigation in P2.
script_run / terminal_tab_closed enrichment moved to P2 — both need
TerminalClient.Event to grow scriptFinished / tabClosed payloads, which
is the same terminal-layer surgery P2 needs for memory probing anyway.