CtrlK
BlogDocsLog inGet started
Tessl Logo

1k-sentry

Configure OneKey Sentry and filter events across desktop, mobile, web, and extension.

64

Quality

76%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.skillshare/skills/1k-sentry/SKILL.md
SKILL.md
Quality
Evals
Security

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

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

PurposeFile
Error filteringpackages/shared/src/modules3rdParty/sentry/basicOptions.ts
Desktop mainapps/desktop/app/sentry.ts
Desktop rendererpackages/shared/src/modules3rdParty/sentry/index.desktop.ts
Web/Extensionpackages/shared/src/modules3rdParty/sentry/index.ts
Nativepackages/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-coding-patterns - Error handling best practices
Repository
OneKeyHQ/app-monorepo
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.