Agent Skills: Sentry Integration

Sentry error tracking and monitoring for OneKey. Use when configuring Sentry, filtering errors, analyzing crash reports, or debugging production issues. Covers platform-specific setup (desktop/mobile/web/extension) and error filtering strategies.

UncategorizedID: onekeyhq/app-monorepo/1k-sentry

Repository

OneKeyHQLicense: NOASSERTION
2,337498

Install this agent skill to your local

pnpm dlx add-skill https://github.com/OneKeyHQ/app-monorepo/tree/HEAD/.skillshare/skills/1k-sentry

Skill Files

Browse the full folder contents for 1k-sentry.

Download Skill

Loading file tree…

.skillshare/skills/1k-sentry/SKILL.md

Skill Metadata

Name
1k-sentry
Description
Sentry error tracking and monitoring for OneKey. Use when configuring Sentry, filtering errors, analyzing crash reports, or debugging production issues. Covers platform-specific setup (desktop/mobile/web/extension) and error filtering strategies.

Sentry Integration

OneKey uses Sentry for error tracking across all platforms.

Architecture Overview

apps/
├── desktop/app/sentry.ts          # Desktop main process
├── ext/                           # Extension (uses shared)
├── mobile/                        # Mobile (uses shared)
└── web/                           # Web (uses shared)

packages/shared/src/modules3rdParty/sentry/
├── index.ts                       # Web/Extension entry
├── index.native.ts                # React Native entry
├── index.desktop.ts               # Desktop renderer entry
├── basicOptions.ts                # Shared config & error filtering
└── instance.ts                    # Sentry client instance

Platform Detection

import platformEnv from '@onekeyhq/shared/src/platformEnv';

platformEnv.isDesktop    // Electron desktop app
platformEnv.isNative     // React Native (iOS/Android)
platformEnv.isWeb        // Web browser
platformEnv.isExtension  // Browser extension
platformEnv.isWebEmbed   // Embedded web components

Common Tasks

Filter/Ignore Errors

See: references/rules/ignoring-errors.md

Key file: packages/shared/src/modules3rdParty/sentry/basicOptions.ts

Analyze Crash Reports

  1. Get crash details from Sentry dashboard
  2. Identify error type, message, and stack trace
  3. Check platform-specific context
  4. Use related skills for fixes:
    • Native crashes → /1k-patching-native-modules
    • JS errors → Fix in codebase

Add Custom Context

import * as Sentry from '@sentry/react-native'; // or @sentry/browser

// Add breadcrumb
Sentry.addBreadcrumb({
  category: 'action',
  message: 'User clicked button',
  level: 'info',
});

// Set user context
Sentry.setUser({ id: 'user-id' });

// Set tags
Sentry.setTag('feature', 'swap');

// Capture exception with context
Sentry.captureException(error, {
  extra: { additionalData: 'value' },
});

Key Files

| Purpose | File | |---------|------| | Error filtering | packages/shared/src/modules3rdParty/sentry/basicOptions.ts | | Desktop main | apps/desktop/app/sentry.ts | | Desktop renderer | packages/shared/src/modules3rdParty/sentry/index.desktop.ts | | Web/Extension | packages/shared/src/modules3rdParty/sentry/index.ts | | Native | packages/shared/src/modules3rdParty/sentry/index.native.ts |

Error Filtering Quick Reference

// Filter by error type
const FILTERED_ERROR_TYPES = new Set(['AxiosError', 'HTTPClientError']);

// Filter by exact message
const FILTER_ERROR_VALUES = ['AbortError: AbortError'];

// Filter by pattern (in isFilterErrorAndSkipSentry function)
if (error.value?.includes('PATTERN')) return true;

Related Skills

  • /1k-patching-native-modules - Fix native crashes found in Sentry
  • /1k-coding-patterns - Error handling best practices