Skip to content

Feature/telemetry catalog schema segmentation - #140

Merged
dimitar-radenkov merged 2 commits into
masterfrom
feature/telemetry-catalog-schema-segmentation-2026-07-25
Jul 25, 2026
Merged

Feature/telemetry catalog schema segmentation#140
dimitar-radenkov merged 2 commits into
masterfrom
feature/telemetry-catalog-schema-segmentation-2026-07-25

Conversation

@dimitar-radenkov

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings July 25, 2026 05:16

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a centralized telemetry event/property catalog with schema validation and channel segmentation (product vs. diagnostic), then migrates existing telemetry call sites to use the catalog constants and the new diagnostic tracking APIs.

Changes:

  • Added TelemetryEventCatalog / TelemetryEvents / TelemetryPropertyKeys and runtime schema validation, including per-event telemetry channel selection.
  • Updated many event emissions to use catalog constants and structured property keys (and routed exception telemetry through diagnostic tracking).
  • Extended telemetry plumbing (service interface, DI wiring, and tests) to support the new schema + channels.

Reviewed changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Pointframe/Views/OverlayWindow.Recording.cs Switches recording-related telemetry to catalog constants/keys.
Pointframe/ViewModels/TrimViewModel.cs Uses catalog events and diagnostic exception tracking for trim flow.
Pointframe/ViewModels/SettingsViewModel.cs Adds telemetry for settings open/save/cancel/section interactions.
Pointframe/ViewModels/RecordingHudViewModel.cs Adds HUD interaction telemetry and duration reporting.
Pointframe/ViewModels/OverlayViewModel.cs Replaces string event names with catalog constants.
Pointframe/ViewModels/LibraryViewModel.cs Updates events to catalog constants; expands NullTelemetryService for new interface.
Pointframe/ViewModels/BeautifierViewModel.cs Migrates beautifier telemetry events to catalog constants.
Pointframe/ViewModels/AnnotationViewModel.cs Migrates annotation commit telemetry to catalog constants/keys.
Pointframe/ViewModels/AboutViewModel.cs Adds telemetry for About open/close and URL host tracking.
Pointframe/Services/Update/AutoUpdateService.cs Migrates update confirm/dismiss telemetry to catalog constants/keys.
Pointframe/Services/Infrastructure/TrayIconManager.cs Migrates tray actions (update check/trim/gif export) telemetry to catalog constants and diagnostic exception tracking.
Pointframe/Services/Infrastructure/TelemetryService.cs Implements channel-aware tracking + schema validation and adds schema/channel metadata to scope.
Pointframe/Services/Infrastructure/TelemetryHeartbeatService.cs Migrates heartbeat telemetry to catalog constants/keys.
Pointframe/Services/Infrastructure/TelemetryEventCatalog.cs New centralized telemetry schema (events, required properties, channels, validation result types).
Pointframe/Services/Infrastructure/ITelemetryService.cs Extends telemetry interface with product/diagnostic event tracking + diagnostic exception tracking.
Pointframe/Services/Infrastructure/AppErrorHandler.cs Routes exception telemetry through diagnostic exception tracking.
Pointframe/Services/Infrastructure/ActivationTelemetryService.cs Migrates activation telemetry to catalog constants/keys.
Pointframe/Services/Capture/CaptureLaunchService.cs Migrates snip/capture/recording telemetry to catalog constants/keys.
Pointframe/Services/Annotation/OcrLassoController.cs Migrates OCR telemetry to catalog constants/keys.
Pointframe/AppServiceRegistration.cs Injects telemetry into RecordingHudViewModel creation.
Pointframe/App.xaml.cs Migrates app lifecycle + open-image/library/update telemetry to catalog constants/keys.
Pointframe.Tests/Services/TelemetryServiceTests.cs Updates tests for channel/scope behavior and schema warnings.
Pointframe.Tests/Services/TelemetryEventCatalogTests.cs Adds coverage for catalog validation and diagnostic event classification.
Pointframe.Tests/Services/ActivationTelemetryServiceTests.cs Updates tests to assert catalog constants/keys.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 150 to +154
var scope = new Dictionary<string, object?>
{
["version"] = _appVersion,
[TelemetryPropertyKeys.Version] = _appVersion,
["session_id"] = _sessionId,
["telemetry_channel"] = channel.ToString().ToLowerInvariant(),
Comment on lines +291 to 299
private int GetElapsedSeconds()
{
if (TimeSpan.TryParseExact(ElapsedText, @"mm\:ss", null, out var elapsed))
{
return (int)elapsed.TotalSeconds;
}

return 0;
}
@dimitar-radenkov
dimitar-radenkov merged commit 998b173 into master Jul 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants