Skip to content

Conversation

@moreirawebmaster
Copy link
Owner

Changes

  • Added HTTP tracking functionality with EngineHttpTracking
  • Added Microsoft Clarity adapter for analytics
  • Enhanced configuration system with IEngineConfig interface
  • Updated all adapters with improved error handling
  • Added comprehensive test coverage for new features

Testing

  • All tests passing
  • HTTP tracking integration tested
  • Clarity adapter functionality verified
  • Configuration masking validated

Breaking Changes

None - all changes are backward compatible.

@moreirawebmaster moreirawebmaster merged commit 48b220f into main Jul 24, 2025
3 checks passed
@moreirawebmaster moreirawebmaster deleted the release/v1.5.0 branch July 24, 2025 02:30
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Bugbot free trial expires on July 29, 2025
Learn more in the Cursor dashboard.

try {
_authClient = await auth.clientViaServiceAccount(
auth.ServiceAccountCredentials.fromJson(_config.credentials),
auth.ServiceAccountCredentials.fromJson(config.credentials),
Copy link

Choose a reason for hiding this comment

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

Bug: Initialization Race Condition in Analytics Adapters

The _isInitialized flag is prematurely set to true before the actual initialization logic completes in several analytics and bug tracking adapters. This creates a race condition where an adapter may report as initialized even if the underlying service initialization fails.

Locations (7)

Fix in CursorFix in Web


try {
_faro!.setUserMeta(userId: null, userEmail: null, userName: null);
_faro?.setUserMeta(userId: null, userEmail: null, userName: null);
Copy link

Choose a reason for hiding this comment

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

Bug: Reset Method Executes Incorrectly

The reset() method in EngineFaroAnalyticsAdapter contains inverted logic. The condition if (isFaroInitialized) should be if (!isFaroInitialized). This prevents the reset functionality from executing when Faro is initialized and causes it to attempt a reset when it's not, contradicting the debug message and the method's intended purpose.

Locations (1)

Fix in CursorFix in Web

Future<void> didPush(final Route<dynamic> route, final Route<dynamic>? previousRoute) async {
super.didPush(route, previousRoute);
await EngineAnalytics.setPage(route.settings.name ?? rootRouteName, previousRoute?.settings.name ?? rootRouteName);
await EngineAnalytics.setPage(route.settings.name ?? rootRouteName, previousRoute?.settings.name);
Copy link

Choose a reason for hiding this comment

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

Bug: Analytics Bug: Inconsistent Previous Route Handling

The EngineNavigationObserver.didPush method inconsistently omits the ?? rootRouteName fallback for previousRoute?.settings.name when calling EngineAnalytics.setPage. This allows null to be passed, breaking the pattern used in didPop and didReplace and potentially causing issues in analytics systems expecting non-null previous screen names.

Locations (1)

Fix in CursorFix in Web


// Set the global override
HttpOverrides.global = engineOverride;
_isEnabled = true;
Copy link

Choose a reason for hiding this comment

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

Bug: HttpOverrides Initialization Fails to Save Original State

The initialize method retrieves the existing HttpOverrides.current but fails to store it in the _previousOverride field. This prevents the disable method from restoring the original HttpOverrides, causing it to always set HttpOverrides.global = null.

Locations (2)

Fix in CursorFix in Web

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