Skip to content

Release/v1.4.0 connection ux sentry errors#12

Merged
rhughes42 merged 9 commits into
release/v1.3.0-natnet-abstractionfrom
release/v1.4.0-connection-ux-sentry-errors
May 14, 2026
Merged

Release/v1.4.0 connection ux sentry errors#12
rhughes42 merged 9 commits into
release/v1.3.0-natnet-abstractionfrom
release/v1.4.0-connection-ux-sentry-errors

Conversation

@rhughes42

Copy link
Copy Markdown
Owner

No description provided.

rhughes42 and others added 9 commits May 12, 2026 16:55
Agent-Logs-Url: https://github.com/rhughes42/optitrack-gh/sessions/9ffdcf42-ec1f-4db3-8007-0dd0620262ab

Co-authored-by: rhughes42 <31203021+rhughes42@users.noreply.github.com>
Agent-Logs-Url: https://github.com/rhughes42/optitrack-gh/sessions/5b12b35d-f41b-4568-b9fe-6c5a9792182e

Co-authored-by: rhughes42 <31203021+rhughes42@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 14, 2026 15:36
@rhughes42
rhughes42 merged commit 8480e00 into release/v1.3.0-natnet-abstraction May 14, 2026
11 checks passed

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 updates the Tracker Grasshopper component for v1.4.0 by expanding connection configuration (NatNet connection type + ports), adding runtime validation/warnings and richer outputs (frame metadata, latency), and introducing an optional, default-disabled Sentry-backed telemetry implementation behind ITelemetryService.

Changes:

  • Expanded OptiTrack Stream inputs/outputs and added validation + improved runtime warnings/messages.
  • Added NatNet support for configurable command/data ports and exposed frame timestamp + latency through core models.
  • Implemented optional Sentry telemetry (env/local-config driven) and updated docs/changelog/versioning to v1.4.0.

Reviewed changes

Copilot reviewed 22 out of 23 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/Tracker/TrackerComponent.cs Expands component IO, adds validation/warnings, telemetry toggle, scale factor, and additional outputs.
src/Tracker/Tracker.csproj Adds Sentry + supporting package references and compiles new telemetry classes.
src/Tracker/Properties/AssemblyInfo.cs Bumps assembly versions to 1.4.0.
src/Tracker/OptiTrack/Telemetry/SentryTelemetryService.cs Implements ITelemetryService using the Sentry .NET SDK with sanitization.
src/Tracker/OptiTrack/Telemetry/SentryTelemetryOptions.cs Loads Sentry options from env vars and tracker.telemetry.local.json.
src/Tracker/OptiTrack/Telemetry/NoOpTelemetryService.cs Adds Status support and status-aware constructors.
src/Tracker/OptiTrack/Telemetry/ITelemetryService.cs Extends the telemetry interface with a Status property.
src/Tracker/OptiTrack/NatNet/NatNetOptiTrackClient.cs Passes configurable command/data ports into NatNet connection params; forwards port info into connection info; updates frame conversion call.
src/Tracker/OptiTrack/NatNet/NatNetFrameConverter.cs Adds TimestampSeconds and LatencySeconds to converted frames.
src/Tracker/OptiTrack/Core/OptiTrackModels.cs Adds timestamp and latency fields to OptiTrackFrame.
src/Tracker/OptiTrack/Core/OptiTrackConnectionOptions.cs Adds command/data port options to the connection options model.
src/Tracker/OptiTrack/Core/OptiTrackConnectionInfo.cs Adds command/data port fields to connection info.
README.md Updates telemetry language and modernization target to v1.4.0.
examples/01-connect-to-motive.md Adds a user-facing connection walkthrough for the updated component inputs/outputs.
docs/troubleshooting.md Documents new validation, port configuration, and telemetry behavior.
docs/telemetry.md Updates policy to reflect v1.4.0 Sentry support and local config file format.
docs/setup.md Updates setup steps for new connection inputs and optional telemetry enablement.
docs/grasshopper-components.md Adds a detailed reference for the OptiTrack Stream component IO and compatibility notes.
docs/developer-guide.md Updates guidance to reflect optional SentryTelemetryService and default-disabled constraint.
docs/compatibility.md Documents the pinned Sentry SDK version and default-disabled behavior.
docs/architecture.md Updates architecture boundary notes to include optional Sentry activation conditions.
CHANGELOG.md Adds v1.4.0 release notes describing new UX/telemetry/IO.
.gitignore Ignores tracker.telemetry.local.json.

Comment on lines +23 to +30
private const double NoFrameWarningThresholdSeconds = 5.0;

private static ITelemetryService telemetry = new NoOpTelemetryService();
private static IOptiTrackClient optiTrackClient = CreateClient( telemetry );
private static OptiTrackFrame currentFrame;
private static DateTime connectionStartedUtc = DateTime.MinValue;
private static DateTime lastFrameUtc = DateTime.MinValue;
private static bool noFrameWarningReported;
Comment on lines +146 to +150
if ( connect && !connectionConfirmed ) {
ConnectClient( localIP, serverIP, connectionType, commandPort, dataPort, redrawThrottle );
} else if ( connect && connectionConfirmed ) {
ProcessFrameData( currentFrame, scaleFactor );
ReportNoFrameWarning();
Comment on lines +134 to +137
AddRuntimeMessage( GH_RuntimeMessageLevel.Error, "Tracker configuration is invalid. Fix warnings before connecting." );
telemetry.CaptureMessage( "invalid_tracker_configuration", TelemetrySeverity.Warning, new TelemetryContext().SetTag( "operation", "component_validation" ) );
SetOutputs( DA );
return;
Comment on lines 76 to +80
ConnectionType = ToNatNetConnectionType( options.ConnectionType ),
ServerAddress = options.ServerAddress,
LocalAddress = options.LocalAddress
LocalAddress = options.LocalAddress,
ServerCommandPort = (ushort) options.ServerCommandPort,
ServerDataPort = (ushort) options.ServerDataPort
Comment on lines +60 to +61
Exception sanitizedException = new Exception( TelemetrySanitizer.SanitizeValue( exception.GetType().Name + ": " + exception.Message ) );
SentrySdk.CaptureException( sanitizedException, scope => {
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.

3 participants