feat(telemetry): integrate Sentry crash forensics and PostHog analytics pipeline - #408
Open
undead2146 wants to merge 12 commits into
Open
feat(telemetry): integrate Sentry crash forensics and PostHog analytics pipeline#408undead2146 wants to merge 12 commits into
undead2146 wants to merge 12 commits into
Conversation
…cs pipeline Implement cross-platform telemetry, crash reporting, and anonymous usage analytics for GenHub. Sentry captures unhandled application exceptions and crash forensics with automated stack trace sanitization, while PostHog ingests structured lifecycle and game session events under strict user privacy preferences. Implemented with Gemini 3.7 Flash (High) via Antigravity CLI.
- Fix variable naming conflict (CS0136) in DownloadService - Extract BuildSentryPayload helper and resolve nullability warnings in SentryTelemetrySink - Reorder static methods before instance methods in GameProcessManager (SA1204) and simplify runner detection - Simplify lambda expressions and null checks in App.axaml and TelemetryService - Fix trailing blank line warnings (SA1518) across telemetry sinks and module
…rom launch configuration - Add XML returns documentation on Task-returning test methods (SA1615) and remove trailing blank lines (SA1518) - Support inspecting launch configuration environment variables in DetectRunnerEnvironment - Register session tracking in DiscoverAndTrackProcessAsync and HandleImmediateProcessExit
…nings - Use null-coalescing on nullable strings for Sentry dictionary payload - Format multi-line Verify parameter invocations in TelemetryServiceTests
…ate telemetry channel
…in, and test naming
…e installation id save task
…s UI controls Add ContentName, ContentId, PublisherId, ContentType, and Strategy metadata to telemetry events, pass environment variables during child adoption, and expose the Diagnostics & Privacy settings card in SettingsView.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Integrates Sentry crash reporting / error forensics and PostHog anonymous product analytics into GenHub's cross-platform telemetry pipeline with strict client-side data sanitization and user privacy preference controls.
Motivation
GenHub requires proactive crash reporting (via Sentry) to catch unhandled exceptions, and anonymous lifecycle/performance metrics (via PostHog) to understand game session stability, download throughput, and update adoption across Windows, Linux, and macOS platforms.
Changes
TelemetryConstants.SentryTelemetrySink): Implemented Sentry DSN parsing, authorization signature headers (X-Sentry-Auth), and structured crash report payloads with exception stack frames, breadcrumbs, and tags.AnalyticsTelemetrySink): Implemented PostHog Capture API payload formatting, anonymous installation ID mapping, and offline queue buffer draining.TelemetryModule): RegisteredHttpClientfactory support and composed telemetry sanitizers and sinks intoAppServices.DownloadService), update checks/applies (VelopackUpdateManager), and game session lifecycle/heartbeats (GameProcessManager).SentryTelemetrySinkTests,AnalyticsTelemetrySinkTests, andTelemetryConstantsTests, and updateddocs/dev/constants.md.Verification
TelemetrySanitizerCreated with Gemini 3.7 Flash (High) via Antigravity CLI